Estoy buscando una forma de obtener compatibilidad con Flex/Bison (o Lex/Yacc, et al.) En PHP. Específicamente, estoy implementando un analizador de consultas booleanas en una IU web y prefiero mantener todas las operaciones dentro de PHP (en lugar de llamar a un analizador C o pasar cosas a Python, etc.).Funcionalidad tipo Flex/Bison dentro de PHP
Respuesta
LIME Analizador generador para PHP:
LALR completo (1) generador de análisis y motor (como un bisonte o YACC) pero es todo hecho en PHP, y la gramática de entrada es más fácil y más fácil de mantener . Escriba sus acciones en PHP. Genere código de salida PHP . Conduzca su analizador con PHP. ¿Quieres hacer un lenguaje?
actualización:
Desde que escribí lo anterior, veo que hay algunas otras herramientas para la generación de analizador, anunció aquí:
http://wezfurlong.org/blog/2006/nov/parser-and-lexer-generators-for-php/
No estoy seguro si estos son mejor conservado ahora en 2014, pero conozco a Wez Furlong, fue el desarrollador original de PDO, y es un muy buen desarrollador.
La biblioteca PEAR tiene las clases LexerGenerator y ParserGenerator. La sintaxis de LexerGenerator es compatible con re2c, la sintaxis de ParserGenerator es compatible con Lemon Parser generator.
¿Has probado los generadores de analizadores PEG en PHP: https://github.com/maetl/php-peg?
O un enfoque combinador de analizador: http://qntm.org/locoparser?
- 1. php Funcionalidad DateTime createFromFormat
- 2. PHP `` preg_match_all` funcionalidad en Java
- 3. ¿Funcionalidad del tipo de autodocumentación para Fortran?
- 4. inversa funcionalidad gama-como en matrices php
- 5. PHP: necesita funcionalidad json_encode() 5.3 en 5.2
- 6. Funcionalidad de arrastrar y soltar dentro del lienzo utilizando HTML5
- 7. PHP dentro de otra clase
- 8. Implementación de la funcionalidad de páginas maestras. PHP
- 9. Forma correcta de utilizar la funcionalidad "Recordarme" en PHP
- 10. Echo PHP dentro de Javascript?
- 11. Ejecutando javascript dentro de PHP
- 12. funcionalidad de threadscope
- 13. Tipo específico de devolución dentro de Haskell
- 14. PHP Tipo de compensación ilegal
- 15. PHP mysqli_fetch_field tipo de datos
- 16. Tipo decimal en php
- 17. android como la funcionalidad de repetidor
- 18. ¿Hay algún tipo de funcionalidad de página maestra en Ruby on Rails?
- 19. dcomcnfg funcionalidad programáticamente
- 20. Funcionalidad emergente Django Admin
- 21. Destacando js-code dentro del archivo php
- 22. Detectando tipo MIME en PHP
- 23. PHP - Variable dentro de la variable?
- 24. php dentro de js-file Wordpress
- 25. Constante de PHP dentro del archivo JS
- 26. ¿Cómo poner php dentro de JavaScript?
- 27. PHP Insertar variable dentro de EOT
- 28. PHP incluye dentro de una variable
- 29. Alcance variable Dentro de la clase PHP
- 30. PHP - Reemplazar color dentro de la imagen
¿Alguna vez ha usado esto? No se ha actualizado en casi dos años, y no tiene fallas archivadas, abiertas o cerradas, así que dudo en confiar en que haya sido probado o realmente utilizado. – Wang
No, nunca he necesitado implementar un analizador completo en PHP. El hecho de que se trata de abandware, y no existe otra herramienta, puede ser una pista de que PHP no es la herramienta adecuada para analizar trabajos. –
Alguien parece estar intentando actualizarlo: https://github.com/rvanvelzen/lime (no se ha tocado en 2 años, pero es un comienzo!) – Andrea