MarPA :: XSXS extensión de MarPA | |
Descargar ahora |
MarPA :: XS Clasificación y resumen
Anuncio publicitario
- Licencia:
- LGPL
- Nombre del editor:
- Jeffrey Kegler
- Sitio web del editor:
- http://search.cpan.org/~jkegl/
MarPA :: XS Etiquetas
MarPA :: XS Descripción
Extensión XS de MarPA MARPA :: XS es un módulo Perl que analiza cualquier idioma cuya gramática se puede escribir en BNF. Eso incluye gramáticas recursivas, gramáticas ambiguas, gramáticas y gramáticas infinitamente ambiguas con producciones inútiles o vacías. Este documento contiene una descripción general de nivel superior de la API para el motor de parse MARPA. Los dos ejemplos en este documento muestran los flujos típicos de las llamadas del método de MarPA. Este documento utilizará estos ejemplos para describir las características básicas de MarPA en la moda semi-tutorial. Las funciones avanzadas de MarPA, y los detalles de referencia completos de todas las características, se pueden encontrar en los otros documentos de MARPA API.Synopsis My $ gramática = Marpa :: XS :: gramática-> nuevo ({start => 'expresión', acciones => ' My_acciones ', default_action =>' first_arg ', reglas => }, {lhs =>' término ', rhs => }, {lhs => 'factor', rhs => }, {lhs => 'término', rhs => , acción => 'do_add'}, { lhs => 'factor', rhs => , acción => 'do_multiply'},],}); $ gramática-> precomputo (); MY $ RECCE = MARPA :: XS :: Reconocer-> Nuevo ({grammat => $ gramática}); $ Reccidez-> Leer ('Número', 42); $ Reccidez-> Leer ('Multiplicar',); $ Reccidez-> Leer ('Número', 1); $ Reccidez-> Leer ('Agregar',); $ Reccidez-> Leer ('Número', 7); Sub my_acciones :: do_add {my (UNDEF, $ T1, UNDEF, $ T2) = @_; Devuelve $ T1 + $ T2; } Sub my_acciones :: do_multiply {my (UNDEF, $ T1, UNDEF, $ T2) = @_; Devuelve $ T1 * $ T2; } Sub My_acciones :: First_arg {Shift; cambio de devolución; } My $ value_ref = $ recce-> valor; mi valor $ = $ valor_ref? $ {$ value_ref}: 'Ningún Parse'; Requisitos: · Perl
MarPA :: XS Software relacionado