Pergunta

Eu estou procurando uma maneira de obter Flex / Bison (ou Lex / Yacc, et. Al.) Suporte no PHP. Especificamente, eu estou implementando um analisador de consulta booleana em uma interface Web e prefere manter todas as operações dentro de PHP (em oposição ao chamar um analisador C, ou passar as coisas fora para Python, etc.).

Foi útil?

Solução

LIME Parser Generator para PHP:

LALR Completo (1) gerador de analisador e motor (como BISON ou YACC), mas é tudo feito em PHP, e a gramática de entrada é mais fácil e mais sustentável. Escrever suas ações em PHP. gerar PHP código de saída. Conduzir o seu analisador com PHP. Quero fazer uma língua?


atualização:

Desde que eu escrevi acima, eu ver que existem algumas outras ferramentas para a geração de parser, anunciou aqui:

http://wezfurlong.org/ Blog / 2006 / nov / analisador-e-lexer-geradores-de-php /

Não tenho certeza se estes são melhor mantido agora em 2014, mas eu sei Wez Furlong, ele foi o desenvolvedor original do DOP, e ele é um bom desenvolvedor.

Outras dicas

A biblioteca PEAR tem as classes LexerGenerator e ParserGenerator . A sintaxe LexerGenerator é compatível com re2c , sintaxe ParserGenerator é compatível com o Lemon Analisador gerador .

Você já tentou olhar para geradores de analisador de PEG em PHP: https://github.com/maetl/php PEG ?

Ou uma abordagem combinator analisador: http://qntm.org/locoparser

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