2011-11-03 13 views
13

Sé que la pregunta Lex and Yacc in PHP se me preguntó antes, pero hace 1 año.PHP Lexer and Parser Generator?

¿Hay algún nuevo generador de analizador de PHP maduro ahora? Mis búsquedas me llevaron a las siguientes, ¿qué piensas de ellas, de las demás?

  • code.google.com/p/antlrphpruntime/: La versión antlr PHP, pero parece ser muy versión beta y creo que hay mucho trabajo por hacer. La ventaja es que puedo escribir la gramática en la herramienta ANTLR Works.
  • pear.php.net/package/PHP_ParserGenerator/docs/0.1.7/: Lo intenté pero parece muy complicado, para ser utilizado con PHP_LexerGenerator.
  • sourceforge.net/projects/lime-php/: no probé
  • bitbucket.org/wez/lemon-php/downloads: Yo no probar
  • bitbucket.org/wez/jlexphp/ descargas: yo no probar

[respuesta:] Alguien me dio esta maravillosa enlace a una vieja pregunta: Is there an alternative for flex/bison that is usable on 8-bit embedded systems?

este mensajes me permitieron comprender la mayor parte del código generado antlr. Entonces mi elección sigue siendo la misma: ANTLR aunque el proyecto parece muerto. Espero no tener que modificar el código ya que me gustaría mantenerlo.

Voy a esperar un poco para ver si hay otra respuesta de lo contrario voy a aceptar sus consejos a seguir usando antlr

+0

Si tiene la gramática atribuida para PHP, intente CoCo/R (ssw.jku.at/coco/). Lo estoy usando ahora mismo para un proyecto en el trabajo y funciona bastante bien. – xbonez

+0

No utilizaría code.google.com/p/antlrphpruntime: no se está desarrollando activamente (AFAIK), y solo admite el mínimo de lo que admiten la mayoría de los otros objetivos ANTLR. Es por eso que no está incluido por defecto en la herramienta ANTLR. Lo mismo ocurre con PHP_ParserGenerator: no me gustaría ir (no mucha documentación, y es un proyecto abandonado). Las otras 3 herramientas tampoco son familiares para mí: sugiero que las pruebes. –

+0

@xbonez: No estoy 100% seguro, pero no creo que haya entendido mis necesidades. Necesito generar un analizador escrito en PHP para analizar una gramática específica (no para analizar el lenguaje php). CoCo/R se ve bien, pero no puedo encontrar un generador de php. –

Respuesta

6

Me propongo dar antlr intentarlo. ANTLRWorks podría ser útil.

Escribí un generador de analizadores LL (1) en PHP puro, ya que no conocía otras soluciones basadas en PHP.

+0

Estoy probando ANTLR por el momento, pero hay muchos errores en el código generado. Por ejemplo, algunas excepciones faltan y el analizador genera excepciones inesperadas. ¿Usaste ese componente? http://code.google.com/p/antlrphpruntime/ –

+0

Hm, en realidad no. Recientemente probé el tiempo de ejecución de ActionScript, que actualmente está roto. Pero recuerdo que revisé el juego con ANTLR y el tiempo de ejecución PHP. En ese momento, las cosas parecían funcionar. – SteAp

+0

la URL está rota –

2
+0

Gracias. Aunque ahora estoy bastante contento con el Analizador generado por ANTLR, todavía estoy interesado en otros porque antlr se ve muy lento. ¿Probaste ese PEG, tiene buenas actuaciones? –

+0

Por cierto, creo que este proyecto PEG está casi MUERTO .... Última confirmación 03/2011, 10 errores declarados en agosto de 2011. –

+0

No sé sobre el rendimiento, pero me gusta PEG y esto es, creo, la única implementación de PEG en php. – jcubic

6

he portado Jison, un clon de bisonte en javascript, a php. Los resultados son un analizador asesino, capaz de manejar lexing/parsing muy simple y muy complejo. Ahora es parte de Jison, pero hay algunas actualizaciones en my fork.

Los archivos son here. Consulte el archivo Léame en esa página, cree un analizador de JavaScript y php al mismo tiempo que sean capaces de hacer lo mismo o cosas diferentes.

Es estable, rápido, fácil y divertido de usar.

+0

Comprobaré que tan pronto como sea posible, se lee genial. –

+0

enlace muerto en PHP portado: / – Dennis