| Marpa. Analise qualquer idioma que você possa descrever no BNF |
Baixe Agora |
Marpa. Classificação e resumo
- Licença:
- Perl Artistic License
- Nome do editor:
- Jeffrey Kegler
- Site do editor:
- http://search.cpan.org/~jkegl/
Marpa. Tag
Marpa. Descrição
Analise qualquer idioma que você possa descrever no BNF O Marpa é um módulo Perl que analisa qualquer idioma cuja gramática possa ser escrita em BNF. Isso inclui gramáticas recursivas, gramáticas ambíguas, gramáticas infinitamente ambíguas e gramáticas com produções inúteis ou vazias.Este documento contém uma visão geral de nível superior da API para o motor Parse Marpa. Os dois exemplos na sinopse mostram o fluxo típico de chamadas na API da Marpa. Este documento usará esses exemplos para descrever os recursos básicos do Marpa em moda semi-tutorial. Recursos avançados de Marpa, e detalhes completos de referência de todos os recursos, podem ser encontrados nos outros documentos da API do Marpa.synopsis My $ Grammar = Marpa :: Gramática-> Novo ({Start => 'Expression', Ações => 'My_Ass', default_action => 'first_arg', regras => }, {lhs => 'term', rhs => }, { lhs => 'fator', rhs => }, {lhs => 'termo', rhs => , ação => 'do_add'}, {lhs => 'Fator', rhs => , ação => 'do_multiply'},],}); $ grammar-> Precomputo (); Meu $ Rece = Marpa :: Reconhecedor-> Novo ({Grammar => $ Grammar}); Meu @tokens = (, , , , , $ recce-> tokens (\ @tokens); Sub My_Actions :: Do_add {My (Redef, $ T1, Redef, $ T2) = @_; Retornar $ T1 + $ T2; } Sub My_Actions :: Do_Multiply {My (UNDEF, $ T1, UNDEF, $ T2) = @_; retornar $ T1 * $ T2; } Sub My_Actions :: First_arg {Shift; turno de retorno; } meu $ value_ref = $ rece-> valor; meu valor $ valor = $ value_ref? $ {$ value_ref}: 'sem análise'; Requisitos: · Perl.
Marpa. Software Relacionado