Parse :: hengst

EBNF-gebaseerde Regexp Backtracking Parser en Tree Evaluator
Download nu

Parse :: hengst Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Arthur Goldstein
  • Uitgever website:
  • http://search.cpan.org/~arthur/

Parse :: hengst Tags


Parse :: hengst Beschrijving

EBNF gebaseerde regexp backtracking parser and tree evaluator Parse :: Hengst is een EBNF-gebaseerde Regexp Backtracking Parser en Tree Evaluator.Synopsis Gebruik Parse :: Hengst; Mijn% regels = (Regel_Name_1 => .. ..Definition .., Regel_name_2 => .. ..definitie .., ...); Mijn $ Hengst = NIEUW PARSE :: Hengst (\% regels, # De volgende parameters zijn optioneel {Start_RULE => 'Regel_name_1', #default de regel die geen subrule is_evaluation_in_parsing => 0, #default 0 no_evaluation => 0, #default 0 max_steps => 200000, #default 1000000; do_NOT_COMPRESS_EVAL => 0, #DEFAULT 0 Separator => '__xz__', #default '__xz__' need_not_match_wwole_string => 0, #default 0 pars_forward => sub {...}, #default no sub parsse_backtrack => sub {...}, #default no sub traversal_only => 0, #default 0 onbereikbaar_rules_allowed => 0, #default 0 fast_move_back => 1, #default 1 tenzij elke ongewenste / parse_backtrack}); mijn $ parse_info = {}; # Optioneel, weinig impact op prestaties Mijn $ pars_hash = {}; # Optioneel, weinig impact op prestaties Mijn $ PARSE_TRACE = []; # Optioneel, sommige impact op de prestaties Mijn $ resultaat = $ Hengst-> Parse_and_Evaluate ($ GIDE_STRING, # laat het volgende weg om {max_steps => 30000, #default van parser's creatie pars_info => $ PARSE_INFO, #IF melding, parse info geretourneerd parse_trace => $ PARSE_TRACE, # Indien verstrekt, Trace geretourneerde start_position => 0, #default 0 START_RULE => $ START_RULE, # Standaard van Parser Creatie Parse_hash => $ Parms_hash, #Used als parse_hash in de naam Routines}); # Retourneert undeve indien niet in staat om de definities niet te volgen (kan worden afgekort tot de eerste letter): en ('Subrule_1', 'Subrule_2', ..., evaluatie (sub {...})) of ('SUBRULE_1', 'SUBRULE_2' , ..., evaluatie (sub {...})) meerdere ('subrule_1', evaluatie (sub {...})) blad (QR / Regex /, evaluatie (sub {...})) Hengst parseert en evalueert een string met ingevoerde grammatica-regels. De parsering wordt via een startregel bovenaan gedaan, op een diepte eerste zoekopdracht die een parse-boom vormt. Wanneer een regel niet overeenkomt met de backtracks van de parser op een knooppunt dat een andere optie heeft. Voor het evalueren van een boomknooppunt krijgt de evaluatie-subroutine een verwijzing naar een hash die de geretourneerde waarden van de kinderknooppunten vertegenwoordigt. De evaluatie kan worden gedaan tijdens het creëren van de parse-boom en weigeren een match die beïnvloedt welke snaren parseren; Dit maakt complexe grammatica's mogelijk. Als de evaluatie niet wordt gedaan tijdens het parseren, op een succesvolle parse, wordt de boom geëvalueerd onderaan, links naar de juiste volgorde. De erkende gramels zijn contextvrij en zijn vergelijkbaar met die uitgesproken in verlengde backus-naur-vorm (EBNF). Het object dat wordt geparseerd, hoeft geen string te zijn. Met uitzondering van het gedeelte over niet-snaren, gaat de documentatie ervan uit dat snaren worden geparseerd. Vereisten: · Perl


Parse :: hengst Gerelateerde software