Pular para o conteúdo

tokens, ast, ir e percurso

O que o lexer, o parser e o compilador viram — quando o código é lido de outro jeito.

Quatro comandos que mostram o programa como a linguagem o vê. São os primeiros a usar quando o código não faz o que parece — e a suspeita é de que ele está sendo lido de outro jeito.

bash
dataforge tokens app.df              # o que o lexer viu
dataforge ast app.df                 # a arvore que o parser montou
dataforge ir app.df                  # HIR, MIR, analises, SSA, LIR
dataforge ir app.df --fase=mir --acao=total   # o grafo de fluxo de uma acao
dataforge percurso app.df            # todas as fases, em ordem, medidas
dataforge percurso app.df --desenho  # o caminho desenhado, com as ausencias

O caso clássico: `//`#

// é comentário por padrão, e só vira divisão inteira seguido de dígito, (, ou chamada/índice/membro. x // 2 é divisão; x // nota é comentário. dataforge tokens mostra na hora qual das duas o lexer escolheu — e ~/ é a divisão inteira sem ambiguidade.

FaseO que ela mostra
hira árvore depois do açúcar — e quanto dele o arquivo usa
miro grafo de fluxo: bloco básico, aresta, laço, tratador
analisesalcance, constantes, escapatória, nome talvez não definido
ssauma definição por nome, com os nós φ das junções
liro que o compilador de fechamentos compilou — e o que recuou

Continue em Arquitetura e Gramática.