JavaCC

JavaCC
Dados básicos

Versão atual  7.0.10
(23 de novembro de 2020)
sistema operacional Sistemas operacionais com ambiente de execução Java
linguagem de programação Java
categoria Gerador de analisador
Licença Licença BSD
https://www.javacc.org

JavaCC ( Java C ompiler C ompiler ) é um Lexer- e parser , que em Java é implementado e como uma saída Java e ++ C código-fonte gerado. JavaCC é um código aberto e publicado sob os termos da licença BSD .

JavaCC funciona de forma semelhante ao conhecido programa Yacc , mas usa um método diferente para analisar os dados: JavaCC gera um analisador LL (k) , enquanto Yacc gera um analisador LALR (1) . A gramática deve ser estruturada de maneira um pouco diferente do que seria com o Yacc.

Programas e bibliotecas que usam JavaCC internamente

  • A estrutura do mecanismo de pesquisa de software livre Lucene usa JavaCC para gerar o lexer e o analisador de consulta.
  • O mecanismo de template de código aberto Velocity usa JavaCC para suas funções de analisador.
  • A ferramenta PMD usada para análise de código estático de textos fonte usa JavaCC internamente para processar as regras definidas pelo usuário.
  • A API Java do projeto de ontologia Cyc usa JavaCC para suas funções de analisador.

Veja também

  • JFlex (gerador de scanner para Java escrito em Java)
  • SableCC (Compilador-Compilador para LALR (1) -Parser em Java)
  • ANTLR (Compilador-Compilador para LL (*) - Analisador em diferentes idiomas de destino)
  • Coco / R (compilador-compilador para LL (k) -Parser em diferentes idiomas de destino)

literatura

  • Tom Copeland: Gerando analisadores com JavaCC . 2ª Edição. Centennial Books, Alexandria, 2009, ISBN 978-0-9762214-3-2 .
  • Anthony J. Dos Reis, Laura L. Dos Reis: Construção do Compilador Usando Java, JavaCC e Yacc . 1ª edição. John Wiley & Sons, 2012, ISBN 978-0-470-94959-7 .

Evidência individual

  1. https://github.com/javacc/javacc/releases/tag/javacc-7.0.10
  2. JavaCC anuncia a lista de discussão em Java.net. (Não está mais disponível online.) Arquivado do original em 11 de abril de 2016 ; acessado em 9 de setembro de 2013 . Informação: O link do arquivo foi inserido automaticamente e ainda não foi verificado. Verifique o link original e o arquivo de acordo com as instruções e, em seguida, remova este aviso. @ 1@ 2Modelo: Webachiv / IABot / java.net
  3. Documentação do pacote Apache Lucene. Recuperado em 9 de setembro de 2013 .
  4. ^ O projeto Apache Velocity - Ferramentas necessárias. Recuperado em 9 de setembro de 2013 .
  5. Customizing PMD - Como escrever uma regra PMD. Recuperado em 9 de setembro de 2013 .