Pergunta

Eu gostaria de saber como é a melhor maneira de criar a árvore de sintaxe.

Foi útil?

Solução 2

O recurso padrão de estilância de pilha para aprender a escrever compiladores e intérpretes é Aprendendo a escrever um compilador

Outras dicas

Aqui está alguma explicação sobre Resumo Sintaxe Árvores (AST) do projeto LLVM.

Teaser:

O AST para um programa captura seu comportamento de tal maneira que é fácil para os estágios posteriores do compilador (por exemplo, geração de código) interpretar. Basicamente, queremos um objeto para cada construto no idioma, e o AST deve modelar de perto o idioma.

Não é diferente de qualquer outro idioma, na verdade. A diferença entre idiomas interpretados e compilados está principalmente no back -end, não no front -end. Idiomas específicos podem ter requisitos específicos de análise, mas você não pode fazer uma comparação significativa nas tecnologias de análise entre as duas classes de idiomas.

Você não liste um requisito de idioma para o seu analisador; portanto, se C ou C ++ for uma possibilidade, você deve começar olhando para YACC: http://en.wikipedia.org/wiki/yacc

O YACC gera um analisador C para sua sintaxe específica. Começar com isso pode ser um pouco extra, mas depois que você levanta a coisa e o rolamento, deve ser mais fácil de manter.

Isenção de responsabilidade: eu só usei o YACC em um projeto e foi há mais de 10 anos, para que sua milhagem possa variar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top