2009-06-16 15 views
11

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

11

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.

+1

¿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

+1

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. –

+0

Alguien parece estar intentando actualizarlo: https://github.com/rvanvelzen/lime (no se ha tocado en 2 años, pero es un comienzo!) – Andrea