Pergunta
Eu estou trabalhando em um projeto de design do compilador em Java. análise léxica é feito (usando jflex) e eu estou querendo saber qual yacc-como ferramenta seria melhor (mais eficiente, mais fácil de usar, etc.) para fazer a análise sintática e por quê.
Solução
Outras dicas
No passado, eu usei ANLTR tanto para lexer e analisador, e a página inicial JFlex diz que pode interoperar com ANTLR. Eu não diria que a documentação on-line do ANTLR é assim tão grande. Acabei investir em 'A referência ANTLR definitivo' , que ajudou consideravelmente.
GNU Bison tem uma interface Java,
http://www.gnu.org /software/bison/manual/html_node/Java-Bison-Interface.html
Você pode usá-lo ir gerar código Java.
Há também jacc.
JACC é quase tão perto de yacc como você pode começar, mas ele é implementado em java puro e gera um analisador java.
Ele interage bem com jFlex
Outra opção seria a OURO Analisador .
Ao contrário de muitas das alternativas, o analisador OURO gera as tabelas parsing da gramática e coloca-los em um arquivo binário, não-executável. Cada idioma suportado, em seguida, tem um motor que lê as tabelas binárias e analisa o seu arquivo de origem.
Eu não usei a implementação Java especificamente, mas usaram o motor de Delphi com resultados bastante positivos.