Marpa :: XSXS-verlenging van Marpa | |
Download nu |
Marpa :: XS Rangschikking & Samenvatting
Advertentie
- Vergunning:
- LGPL
- Naam uitgever:
- Jeffrey Kegler
- Uitgever website:
- http://search.cpan.org/~jkegl/
Marpa :: XS Tags
Marpa :: XS Beschrijving
XS-verlenging van Marpa Marpa :: XS is een PERL-module die elke taal parerteert waarvan de grammatica in BNF kan worden geschreven. Dat omvat recursieve grammatica, dubbelzinnige grammatica's, oneindig dubbelzinnige grammatica's en grammatica's met nutteloze of lege productie. Dit document bevat een overzicht op het hoogste niveau van de API voor de MARPA-parse-engine. De twee voorbeelden in dit document tonen de typische stromen van Marpa-methode-oproepen. Dit document zal deze voorbeelden gebruiken om de basiskenmerken van Marpa in semi-tutorial mode te beschrijven. Marpa's geavanceerde functies en volledige referentiedetails van alle functies, zijn te vinden in de andere Marpa API-documenten.Synopsis My $ Grammar = Marpa :: XS :: Grammatica-> Nieuw ({Start => 'Expression', Acties => ' My_Actions ', standaard_action =>' first_arg ', regels => }, {lhs =>' term ', rhs => }, {LHS => 'Factor', RHS => }, {LHS => 'Term', RHS => , ACTION => 'DO_ADD'}, { LHS => 'factor', rhs => , actie => 'do_multiply'},],}); $ grammatica-> precompute (); Mijn $ RecCCE = Marpa :: XS :: Herkenning-> Nieuw ({grammatica => $ grammatica}); $ Recrece-> Lezen ('nummer', 42); $ reccce-> lezen ('vermenigvuldig',); $ Recrece-> Lezen ('nummer', 1); $ reccce-> lezen ('toevoegen',); $ Recrece-> Lezen ('nummer', 7); Sub My_Actions :: do_add {mijn (undef, $ t1, undef, $ t2) = @_; retourneer $ T1 + $ T2; } Sub My_Actions :: do_multiply {mijn (undef, $ t1, undeve, $ t2) = @_; return $ t1 * $ t2; } Sub My_Actions :: First_ARG {Shift; Retourverschuiving; } Mijn $ value_ref = $ Recrece-> Waarde; mijn $ value = $ value_ref? $ {$ value_ref}: 'Geen parse'; Vereisten: · Perl
Marpa :: XS Gerelateerde software