use 5.010; use utf8; { package STD;BEGIN { $STD::VERSION = 20101111 } use Moose ':all' => { -prefix => "moose_" }; use Encode; moose_extends('STD::Cursor'); our $ALLROLES = { 'STD', 1 }; our $REGEXES = { ALL => [ qw/alnumint apostrophe babble backslash begid binint binints category charname charnames charspec circumfix comment dec_number decint decints dotty embeddedblock endid escale escape hexint hexints ident identifier infix infix_circumfix_meta_operator infix_postfix_meta_operator infix_prefix_meta_operator integer is_ok longname module_name morename multi_declarator name nibbler nofun octint octints opener package_declarator pod_comment postcircumfix postfix postfix_prefix_meta_operator prefix prefix_circumfix_meta_operator prefix_postfix_meta_operator quibble quote quote_mod quotepair rad_number radint regex_declarator routine_declarator scope_declarator sigil spacey special_variable starter statement_control statement_mod_cond statement_mod_loop statement_prefix stdstopper stopper strtonum term terminator trait_mod twigil type_declarator unitstopper unsp unspacey unv value version vws ws/ ], category => [ qw/category__S_000category__PEEK category__S_001sigil__PEEK category__S_002twigil__PEEK category__S_003special_variable__PEEK category__S_004comment__PEEK category__S_005version__PEEK category__S_006module_name__PEEK category__S_007value__PEEK category__S_008term__PEEK category__S_009strtonum__PEEK category__S_010quote__PEEK category__S_011prefix__PEEK category__S_012infix__PEEK category__S_013postfix__PEEK category__S_014dotty__PEEK category__S_015circumfix__PEEK category__S_016postcircumfix__PEEK category__S_017quote_mod__PEEK category__S_018trait_mod__PEEK category__S_019type_declarator__PEEK category__S_020scope_declarator__PEEK category__S_021package_declarator__PEEK category__S_022multi_declarator__PEEK category__S_023routine_declarator__PEEK category__S_024regex_declarator__PEEK category__S_025statement_prefix__PEEK category__S_026statement_control__PEEK category__S_027statement_mod_cond__PEEK category__S_028statement_mod_loop__PEEK category__S_029infix_prefix_meta_operator__PEEK category__S_030infix_postfix_meta_operator__PEEK category__S_031infix_circumfix_meta_operator__PEEK category__S_032postfix_prefix_meta_operator__PEEK category__S_033prefix_postfix_meta_operator__PEEK category__S_034prefix_circumfix_meta_operator__PEEK category__S_035terminator__PEEK/ ], circumfix => [ qw/circumfix__S_051Fre_Nch__PEEK circumfix__S_052LtLt_GtGt__PEEK circumfix__S_053Lt_Gt__PEEK/ ], comment => [ qw/comment__S_054SharpGraveParenDotDotDotThesis__PEEK comment__S_055SharpParenDotDotDotThesis__PEEK comment__S_056SharpEqualParenDotDotDotThesis__PEEK comment__S_057SharpEqual__PEEK comment__S_058Sharp__PEEK/ ], escape => [ qw/escape__S_048none__PEEK/ ], quote => [ qw/quote__S_049Single_Single__PEEK quote__S_050Double_Double__PEEK/ ], sigil => [ qw/sigil__S_036Dollar__PEEK sigil__S_037At__PEEK sigil__S_038Percent__PEEK sigil__S_039Amp__PEEK/ ], term => [ qw/term__S_062miscbad__PEEK/ ], terminator => [ qw/terminator__S_059Thesis__PEEK terminator__S_060Ket__PEEK terminator__S_061Ly__PEEK/ ], twigil => [ qw/twigil__S_040Dot__PEEK twigil__S_041Bang__PEEK twigil__S_042Caret__PEEK twigil__S_043Colon__PEEK twigil__S_044Star__PEEK twigil__S_045Question__PEEK twigil__S_046Equal__PEEK twigil__S_047Tilde__PEEK/ ], }; no warnings 'qw', 'recursion'; my $retree; $DB::deep = $DB::deep = 1000; # suppress used-once warning use YAML::XS; $SIG{__WARN__} = sub { die @_," statement started at line ", 'STD::Cursor'->lineof($::LASTSTATE), " " } if $::DEBUG; $retree = YAML::XS::Load(Encode::encode_utf8(<<'RETREE_END')); --- alnumint: !!perl/hash:RE_ast dba: alnumint dic: STD re: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[ 0..9 a..z A..Z ]' quant: - + - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: _ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[ 0..9 a..z A..Z ]' quant: - + quant: - '*' apostrophe: !!perl/hash:RE_ast dba: apostrophe dic: STD re: !!perl/hash:RE_cclass i: 0 text: '[ '' \- ]' babble: !!perl/hash:RE_ast dba: babble dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: quotepair rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} quant: - '*' - !!perl/hash:RE_block {} backslash:*: dic: STD begid: !!perl/hash:RE_ast dba: begid dic: STD re: !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \w binint: !!perl/hash:RE_ast dba: binint dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[ 0..1 ]' quant: - + - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: _ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[ 0..1 ]' quant: - + quant: - '*' binints: !!perl/hash:RE_ast dba: binints dic: STD re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: binint rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '**' - ':' - !!perl/hash:RE_string a: 0 dba: binints dic: STD i: 0 i_needed: 1 r: 1 s: 0 text: ',' category:*: dic: STD category__S_000category: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: category category__S_001sigil: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: sigil category__S_002twigil: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: twigil category__S_003special_variable: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: special_variable category__S_004comment: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: comment category__S_005version: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: version category__S_006module_name: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: module_name category__S_007value: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: value category__S_008term: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: term category__S_009strtonum: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: strtonum category__S_010quote: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: quote category__S_011prefix: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: prefix category__S_012infix: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: infix category__S_013postfix: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: postfix category__S_014dotty: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: dotty category__S_015circumfix: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: circumfix category__S_016postcircumfix: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: postcircumfix category__S_017quote_mod: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: quote_mod category__S_018trait_mod: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: trait_mod category__S_019type_declarator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: type_declarator category__S_020scope_declarator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: scope_declarator category__S_021package_declarator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: package_declarator category__S_022multi_declarator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: multi_declarator category__S_023routine_declarator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: routine_declarator category__S_024regex_declarator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: regex_declarator category__S_025statement_prefix: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: statement_prefix category__S_026statement_control: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: statement_control category__S_027statement_mod_cond: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: statement_mod_cond category__S_028statement_mod_loop: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: statement_mod_loop category__S_029infix_prefix_meta_operator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: infix_prefix_meta_operator category__S_030infix_postfix_meta_operator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: infix_postfix_meta_operator category__S_031infix_circumfix_meta_operator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: infix_circumfix_meta_operator category__S_032postfix_prefix_meta_operator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: postfix_prefix_meta_operator category__S_033prefix_postfix_meta_operator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: prefix_postfix_meta_operator category__S_034prefix_circumfix_meta_operator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: prefix_circumfix_meta_operator category__S_035terminator: !!perl/hash:RE_ast dba: category dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: terminator charname: !!perl/hash:RE_ast dba: charname dic: STD re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_bracket re: &1 !!perl/hash:RE_any altname: charname_0 dba: charname dic: STD zyg: - !!perl/hash:RE_method alt: charname_0 0 name: radint rest: '' - !!perl/hash:RE_sequence alt: charname_0 1 zyg: - !!perl/hash:RE_method name: alpha rest: '' - !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \s quant: - '*' - !!perl/hash:RE_bracket re: &2 !!perl/hash:RE_any altname: charname_1 dba: charname dic: STD zyg: - !!perl/hash:RE_string alt: charname_1 0 i: 0 text: ',' - !!perl/hash:RE_string alt: charname_1 1 i: 0 text: '#' - !!perl/hash:RE_string alt: charname_1 2 i: 0 text: ']' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: terminator rest: '' charname_0: *1 charname_1: *2 charnames: !!perl/hash:RE_ast dba: charnames dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \s quant: - '*' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: charname rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '**' - ':' - !!perl/hash:RE_bracket a: 0 dba: charnames decl: [] dic: STD i: 0 r: 1 re: !!perl/hash:RE_sequence a: 0 dba: charnames dic: STD i: 0 r: 1 s: 0 zyg: - !!perl/hash:RE_string a: 0 dba: charnames dic: STD i: 0 i_needed: 1 r: 1 s: 0 text: ',' - !!perl/hash:RE_quantified_atom a: 0 atom: !!perl/hash:RE_meta a: 0 dba: charnames dic: STD i: 0 min: 1 r: 1 s: 0 text: \s dba: charnames dic: STD i: 0 quant: - '*' - ':' - '' - 0 r: 1 s: 0 s: 0 charspec: !!perl/hash:RE_ast dba: charspec dic: STD re: !!perl/hash:RE_bracket re: &3 !!perl/hash:RE_any altname: charspec_0 dba: character name dic: STD zyg: - !!perl/hash:RE_bracket alt: charspec_0 0 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: charnames rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_quantified_atom alt: charspec_0 1 atom: !!perl/hash:RE_meta min: 1 text: \d quant: - + - !!perl/hash:RE_cclass alt: charspec_0 2 i: 0 text: '[ ?..Z \\.._ ]' - !!perl/hash:RE_sequence alt: charspec_0 3 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_meta min: 1 text: . charspec_0: *3 circumfix:*: dic: STD circumfix__S_051Fre_Nch: !!perl/hash:RE_ast dba: shell-quote words dic: STD re: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: « - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: » - !!perl/hash:RE_method name: FAILGOAL rest: 1 circumfix__S_052LtLt_GtGt: !!perl/hash:RE_ast dba: shell-quote words dic: STD re: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: << - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '>>' - !!perl/hash:RE_method name: FAILGOAL rest: 1 circumfix__S_053Lt_Gt: !!perl/hash:RE_ast dba: quote words dic: STD re: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: STDIN> - !!perl/hash:RE_method name: obs rest: 1 quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_method name: obs rest: 1 quant: - '?' - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_method name: FAILGOAL rest: 1 comment:*: dic: STD comment__S_054SharpGraveParenDotDotDotThesis: !!perl/hash:RE_ast dba: comment dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '#`' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: opener rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: quibble rest: 1 comment__S_055SharpParenDotDotDotThesis: !!perl/hash:RE_ast dba: comment dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '#' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: opener rest: '' - !!perl/hash:RE_method_re name: suppose nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: quibble rest: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[,;:]' quant: - '*' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_bracket re: &4 !!perl/hash:RE_any altname: comment__S_055SharpParenDotDotDotThesis_0 dba: comment dic: STD zyg: - !!perl/hash:RE_string alt: comment__S_055SharpParenDotDotDotThesis_0 0 i: 0 text: '#' - !!perl/hash:RE_meta alt: comment__S_055SharpParenDotDotDotThesis_0 1 text: $$ - !!perl/hash:RE_method name: worry rest: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_noop nobind: 1 comment__S_055SharpParenDotDotDotThesis_0: *4 comment__S_056SharpEqualParenDotDotDotThesis: !!perl/hash:RE_ast dba: comment dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '#=' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: opener rest: '' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_method name: quibble rest: 1 comment__S_057SharpEqual: !!perl/hash:RE_ast dba: comment dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '#=' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' comment__S_058Sharp: !!perl/hash:RE_ast dba: comment dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '#' - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' dec_number: !!perl/hash:RE_ast dba: decimal number dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &5 !!perl/hash:RE_any altname: dec_number_0 dba: decimal number dic: STD zyg: - !!perl/hash:RE_sequence alt: dec_number_0 0 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: decint rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: escale rest: '' quant: - '?' - !!perl/hash:RE_sequence alt: dec_number_0 1 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: decint rest: '' - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: decint rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: escale rest: '' quant: - '?' - !!perl/hash:RE_sequence alt: dec_number_0 2 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: decint rest: '' - !!perl/hash:RE_method name: escale rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_meta min: 1 text: \d - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \d quant: - + quant: - + quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: _ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: _ quant: - + - !!perl/hash:RE_meta min: 1 text: \d - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' dec_number_0: *5 decint: !!perl/hash:RE_ast dba: decint dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \d quant: - + - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: _ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \d quant: - + quant: - '*' decints: !!perl/hash:RE_ast dba: decints dic: STD re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: decint rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '**' - ':' - !!perl/hash:RE_string a: 0 dba: decints dic: STD i: 0 i_needed: 1 r: 1 s: 0 text: ',' dotty:*: dic: STD embeddedblock: !!perl/hash:RE_ast dba: embedded block dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: newlex rest: '' - !!perl/hash:RE_method name: finishlex rest: '' - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_decl {} - !!perl/hash:RE_method name: statementlist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_method name: panic rest: 1 endid: !!perl/hash:RE_ast dba: endid dic: STD re: !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: -[ \- \' \w ] escale: !!perl/hash:RE_ast dba: escale dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_cclass i: 0 text: '[Ee]' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[+\-]' quant: - '?' - !!perl/hash:RE_method name: decint rest: '' escape:*: dic: STD escape__S_048none: !!perl/hash:RE_ast dba: escape dic: STD re: !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_noop nobind: 1 hexint: !!perl/hash:RE_ast dba: hexint dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[ 0..9 a..f A..F ]' quant: - + - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: _ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[ 0..9 a..f A..F ]' quant: - + quant: - '*' hexints: !!perl/hash:RE_ast dba: hexints dic: STD re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: hexint rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '**' - ':' - !!perl/hash:RE_string a: 0 dba: hexints dic: STD i: 0 i_needed: 1 r: 1 s: 0 text: ',' ident: !!perl/hash:RE_ast dba: ident dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: alpha rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \w quant: - '*' identifier: !!perl/hash:RE_ast dba: identifier dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ident rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: apostrophe rest: '' - !!perl/hash:RE_method name: ident rest: '' quant: - '*' infix:*: dic: STD infix_circumfix_meta_operator:*: dic: STD infix_postfix_meta_operator:*: dic: STD infix_prefix_meta_operator:*: dic: STD integer: !!perl/hash:RE_ast dba: integer dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &6 !!perl/hash:RE_any altname: integer_0 dba: integer dic: STD zyg: - !!perl/hash:RE_sequence alt: integer_0 0 zyg: - !!perl/hash:RE_string i: 0 text: '0' - !!perl/hash:RE_bracket re: &7 !!perl/hash:RE_any altname: integer_1 dba: integer dic: STD zyg: - !!perl/hash:RE_sequence alt: integer_1 0 zyg: - !!perl/hash:RE_string i: 0 text: b - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: _ quant: - '?' - !!perl/hash:RE_method name: binint rest: '' - !!perl/hash:RE_sequence alt: integer_1 1 zyg: - !!perl/hash:RE_string i: 0 text: o - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: _ quant: - '?' - !!perl/hash:RE_method name: octint rest: '' - !!perl/hash:RE_sequence alt: integer_1 2 zyg: - !!perl/hash:RE_string i: 0 text: x - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: _ quant: - '?' - !!perl/hash:RE_method name: hexint rest: '' - !!perl/hash:RE_sequence alt: integer_1 3 zyg: - !!perl/hash:RE_string i: 0 text: d - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: _ quant: - '?' - !!perl/hash:RE_method name: decint rest: '' - !!perl/hash:RE_sequence alt: integer_1 4 zyg: - !!perl/hash:RE_method name: decint rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_assertion assert: '!' nobind: 1 re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method alt: integer_0 1 name: decint rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_assertion assert: '!' nobind: 1 re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &8 !!perl/hash:RE_any altname: integer_2 dba: integer dic: STD zyg: - !!perl/hash:RE_meta alt: integer_2 0 min: 1 text: \s - !!perl/hash:RE_string alt: integer_2 1 i: 0 text: ',' - !!perl/hash:RE_string alt: integer_2 2 i: 0 text: = - !!perl/hash:RE_method alt: integer_2 3 name: terminator rest: '' - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: _ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: _ quant: - + - !!perl/hash:RE_meta min: 1 text: \d - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' integer_0: *6 integer_1: *7 integer_2: *8 is_ok: !!perl/hash:RE_ast dba: is_ok dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' - !!perl/hash:RE_string i: 0 text: '#OK' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_meta text: $$ longname: !!perl/hash:RE_ast dba: longname dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: name rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_cclass i: 0 text: '[ a..z A..Z _ \< \[ \« ]' - !!perl/hash:RE_method name: colonpair rest: '' quant: - '*' module_name:*: dic: STD morename: !!perl/hash:RE_ast dba: morename dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '::' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &9 !!perl/hash:RE_any altname: morename_0 dba: morename dic: STD zyg: - !!perl/hash:RE_string alt: morename_0 0 i: 0 text: ( - !!perl/hash:RE_method alt: morename_0 1 name: alpha rest: '' - !!perl/hash:RE_bracket re: &10 !!perl/hash:RE_any altname: morename_1 dba: indirect name dic: STD zyg: - !!perl/hash:RE_method alt: morename_1 0 name: identifier rest: '' - !!perl/hash:RE_bracket alt: morename_1 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: EXPR rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '::' - !!perl/hash:RE_method name: panic rest: 1 quant: - '?' morename_0: *9 morename_1: *10 multi_declarator:*: dic: STD name: !!perl/hash:RE_ast dba: name dic: STD re: !!perl/hash:RE_bracket re: &11 !!perl/hash:RE_any altname: name_0 dba: name dic: STD zyg: - !!perl/hash:RE_sequence alt: name_0 0 zyg: - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: morename rest: '' quant: - '*' - !!perl/hash:RE_quantified_atom alt: name_0 1 atom: !!perl/hash:RE_method name: morename rest: '' quant: - + name_0: *11 nibbler: !!perl/hash:RE_ast dba: nibbler dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_method name: stopper rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: starter rest: '' - !!perl/hash:RE_method name: nibbler rest: '' - !!perl/hash:RE_method name: stopper rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: escape rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta min: 1 text: . - !!perl/hash:RE_block {} quant: - '*' - !!perl/hash:RE_block {} nofun: !!perl/hash:RE_ast dba: nofun dic: STD re: !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &12 !!perl/hash:RE_any altname: nofun_0 dba: nofun dic: STD zyg: - !!perl/hash:RE_string alt: nofun_0 0 i: 0 text: ( - !!perl/hash:RE_string alt: nofun_0 1 i: 0 text: .( - !!perl/hash:RE_string alt: nofun_0 2 i: 0 text: \ - !!perl/hash:RE_string alt: nofun_0 3 i: 0 text: '''' - !!perl/hash:RE_string alt: nofun_0 4 i: 0 text: '-' - !!perl/hash:RE_double alt: nofun_0 5 i: 0 text: '''' - !!perl/hash:RE_meta alt: nofun_0 6 min: 1 text: \w nofun_0: *12 octint: !!perl/hash:RE_ast dba: octint dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[ 0..7 ]' quant: - + - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: _ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[ 0..7 ]' quant: - + quant: - '*' octints: !!perl/hash:RE_ast dba: octints dic: STD re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: octint rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '**' - ':' - !!perl/hash:RE_string a: 0 dba: octints dic: STD i: 0 i_needed: 1 r: 1 s: 0 text: ',' opener: !!perl/hash:RE_ast dba: opener dic: STD re: !!perl/hash:RE_cclass i: 0 text: "[\n\\x{0028} \\x{003C} \\x{005B} \\x{007B} \\x{00AB} \\x{0F3A} \\x{0F3C} \\x{169B} \\x{2018} \\x{201A} \\x{201B}\n\\x{201C} \\x{201E} \\x{201F} \\x{2039} \\x{2045} \\x{207D} \\x{208D} \\x{2208} \\x{2209} \\x{220A} \\x{2215}\n\\x{223C} \\x{2243} \\x{2252} \\x{2254} \\x{2264} \\x{2266} \\x{2268} \\x{226A} \\x{226E} \\x{2270} \\x{2272}\n\\x{2274} \\x{2276} \\x{2278} \\x{227A} \\x{227C} \\x{227E} \\x{2280} \\x{2282} \\x{2284} \\x{2286} \\x{2288}\n\\x{228A} \\x{228F} \\x{2291} \\x{2298} \\x{22A2} \\x{22A6} \\x{22A8} \\x{22A9} \\x{22AB} \\x{22B0} \\x{22B2}\n\\x{22B4} \\x{22B6} \\x{22C9} \\x{22CB} \\x{22D0} \\x{22D6} \\x{22D8} \\x{22DA} \\x{22DC} \\x{22DE} \\x{22E0}\n\\x{22E2} \\x{22E4} \\x{22E6} \\x{22E8} \\x{22EA} \\x{22EC} \\x{22F0} \\x{22F2} \\x{22F3} \\x{22F4} \\x{22F6}\n\\x{22F7} \\x{2308} \\x{230A} \\x{2329} \\x{23B4} \\x{2768} \\x{276A} \\x{276C} \\x{276E} \\x{2770} \\x{2772}\n\\x{2774} \\x{27C3} \\x{27C5} \\x{27D5} \\x{27DD} \\x{27E2} \\x{27E4} \\x{27E6} \\x{27E8} \\x{27EA} \\x{2983}\n\\x{2985} \\x{2987} \\x{2989} \\x{298B} \\x{298D} \\x{298F} \\x{2991} \\x{2993} \\x{2995} \\x{2997} \\x{29C0}\n\\x{29C4} \\x{29CF} \\x{29D1} \\x{29D4} \\x{29D8} \\x{29DA} \\x{29F8} \\x{29FC} \\x{2A2B} \\x{2A2D} \\x{2A34}\n\\x{2A3C} \\x{2A64} \\x{2A79} \\x{2A7D} \\x{2A7F} \\x{2A81} \\x{2A83} \\x{2A8B} \\x{2A91} \\x{2A93} \\x{2A95}\n\\x{2A97} \\x{2A99} \\x{2A9B} \\x{2AA1} \\x{2AA6} \\x{2AA8} \\x{2AAA} \\x{2AAC} \\x{2AAF} \\x{2AB3} \\x{2ABB}\n\\x{2ABD} \\x{2ABF} \\x{2AC1} \\x{2AC3} \\x{2AC5} \\x{2ACD} \\x{2ACF} \\x{2AD1} \\x{2AD3} \\x{2AD5} \\x{2AEC}\n\\x{2AF7} \\x{2AF9} \\x{2E02} \\x{2E04} \\x{2E09} \\x{2E0C} \\x{2E1C} \\x{2E20} \\x{3008} \\x{300A} \\x{300C}\n\\x{300E} \\x{3010} \\x{3014} \\x{3016} \\x{3018} \\x{301A} \\x{301D} \\x{FD3E} \\x{FE17} \\x{FE35} \\x{FE37}\n\\x{FE39} \\x{FE3B} \\x{FE3D} \\x{FE3F} \\x{FE41} \\x{FE43} \\x{FE47} \\x{FE59} \\x{FE5B} \\x{FE5D} \\x{FF08}\n\\x{FF1C} \\x{FF3B} \\x{FF5B} \\x{FF5F} \\x{FF62}\n ]" package_declarator:*: dic: STD pod_comment: !!perl/hash:RE_ast dba: pod_comment dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta text: ^^ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_bracket re: &13 !!perl/hash:RE_any altname: pod_comment_0 dba: pod_comment dic: STD zyg: - !!perl/hash:RE_sequence alt: pod_comment_0 0 zyg: - !!perl/hash:RE_string i: 0 text: begin - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - + - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_double i: 0 text: ' ' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_string i: 0 text: end - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - + - !!perl/hash:RE_var var: $M->{'identifier'} - !!perl/hash:RE_meta text: » - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: . quant: - '*' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: pod_comment_0 1 zyg: - !!perl/hash:RE_string i: 0 text: begin - !!perl/hash:RE_meta text: » - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_meta text: $$ - !!perl/hash:RE_string i: 0 text: '#' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_double i: 0 text: ' ' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_string i: 0 text: end - !!perl/hash:RE_meta text: » - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: pod_comment_0 2 zyg: - !!perl/hash:RE_string i: 0 text: for - !!perl/hash:RE_meta text: » - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_meta text: $$ - !!perl/hash:RE_string i: 0 text: '#' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_meta text: ^^ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_meta text: $$ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: . quant: - '*' - !!perl/hash:RE_sequence alt: pod_comment_0 3 zyg: - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_meta text: ^^ - !!perl/hash:RE_string i: 0 text: =cut - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: panic rest: 1 quant: - '?' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: alpha rest: '' - !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' pod_comment_0: *13 postcircumfix:*: dic: STD postfix:*: dic: STD postfix_prefix_meta_operator:*: dic: STD prefix:*: dic: STD prefix_circumfix_meta_operator:*: dic: STD prefix_postfix_meta_operator:*: dic: STD quibble: !!perl/hash:RE_ast dba: quibble dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: babble rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_var var: $start - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_var var: $stop - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_block {} quote:*: dic: STD quote__S_049Single_Single: !!perl/hash:RE_ast dba: single quotes dic: STD re: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_double i: 0 text: '''' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '''' - !!perl/hash:RE_method name: FAILGOAL rest: 1 quote__S_050Double_Double: !!perl/hash:RE_ast dba: double quotes dic: STD re: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '"' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '"' - !!perl/hash:RE_method name: FAILGOAL rest: 1 quote_mod:*: dic: STD quotepair: !!perl/hash:RE_ast dba: colon pair (restricted) dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_bracket re: &14 !!perl/hash:RE_any altname: quotepair_0 dba: colon pair (restricted) dic: STD zyg: - !!perl/hash:RE_sequence alt: quotepair_0 0 zyg: - !!perl/hash:RE_string i: 0 text: '!' - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_method name: circumfix rest: '' quant: - '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: quotepair_0 1 zyg: - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: circumfix rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: quotepair_0 2 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_paren re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \d quant: - + - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_paren re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[a..z]' quant: - + - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_method name: circumfix rest: '' quant: - '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} quotepair_0: *14 rad_number: !!perl/hash:RE_ast dba: number in radix notation dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \d quant: - + - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_bracket re: &15 !!perl/hash:RE_any altname: rad_number_0 dba: number in radix notation dic: STD zyg: - !!perl/hash:RE_bindnamed alt: rad_number_0 0 atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: alnumint rest: '' - !!perl/hash:RE_bindnamed alt: rad_number_0 1 atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: alnumint rest: '' - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: alnumint rest: '' - !!perl/hash:RE_bindnamed alt: rad_number_0 2 atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: alnumint rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '*' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: radint rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '**' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: radint rest: '' - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' - !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_method name: circumfix rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: circumfix rest: '' - !!perl/hash:RE_method name: panic rest: 1 rad_number_0: *15 radint: !!perl/hash:RE_ast dba: radint dic: STD re: !!perl/hash:RE_bracket re: &16 !!perl/hash:RE_any altname: radint_0 dba: radint dic: STD zyg: - !!perl/hash:RE_method alt: radint_0 0 name: integer rest: '' - !!perl/hash:RE_sequence alt: radint_0 1 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_meta min: 1 text: \d - !!perl/hash:RE_method name: rad_number rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 radint_0: *16 regex_declarator:*: dic: STD routine_declarator:*: dic: STD scope_declarator:*: dic: STD sigil:*: dic: STD sigil__S_036Dollar: !!perl/hash:RE_ast dba: sigil dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $ sigil__S_037At: !!perl/hash:RE_ast dba: sigil dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '@' sigil__S_038Percent: !!perl/hash:RE_ast dba: sigil dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '%' sigil__S_039Amp: !!perl/hash:RE_ast dba: sigil dic: STD re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '&' spacey: !!perl/hash:RE_ast dba: spacey dic: STD re: !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[ \s \# ]' special_variable:*: dic: STD starter: !!perl/hash:RE_ast dba: starter dic: STD re: !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_noop nobind: 1 statement_control:*: dic: STD statement_mod_cond:*: dic: STD statement_mod_loop:*: dic: STD statement_prefix:*: dic: STD stdstopper: !!perl/hash:RE_ast dba: standard stopper dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &17 !!perl/hash:RE_any altname: stdstopper_0 dba: standard stopper dic: STD zyg: - !!perl/hash:RE_assertion alt: stdstopper_0 0 assert: '?' re: !!perl/hash:RE_method name: terminator rest: '' - !!perl/hash:RE_assertion alt: stdstopper_0 1 assert: '?' re: !!perl/hash:RE_method name: unitstopper rest: '' - !!perl/hash:RE_assertion alt: stdstopper_0 2 assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_method name: stopper rest: '' - !!perl/hash:RE_meta alt: stdstopper_0 3 text: $ - !!perl/hash:RE_block {} stdstopper_0: *17 stopper: !!perl/hash:RE_ast dba: stopper dic: STD re: !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_noop nobind: 1 strtonum:*: dic: STD term:*: dic: STD term__S_062miscbad: !!perl/hash:RE_ast dba: term dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_noop nobind: 1 terminator:*: dic: STD terminator__S_059Thesis: !!perl/hash:RE_ast dba: terminator dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ) - !!perl/hash:RE_method name: O rest: 1 terminator__S_060Ket: !!perl/hash:RE_ast dba: terminator dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: O rest: 1 terminator__S_061Ly: !!perl/hash:RE_ast dba: terminator dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_method name: O rest: 1 trait_mod:*: dic: STD twigil:*: dic: STD twigil__S_040Dot: !!perl/hash:RE_ast dba: twigil dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: begid i: 0 name: sym rest: '' sym: . - !!perl/hash:RE_method name: begid rest: '' twigil__S_041Bang: !!perl/hash:RE_ast dba: twigil dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: begid i: 0 name: sym rest: '' sym: '!' - !!perl/hash:RE_method name: begid rest: '' twigil__S_042Caret: !!perl/hash:RE_ast dba: twigil dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: begid i: 0 name: sym rest: '' sym: ^ - !!perl/hash:RE_method name: begid rest: '' twigil__S_043Colon: !!perl/hash:RE_ast dba: twigil dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: begid i: 0 name: sym rest: '' sym: ':' - !!perl/hash:RE_method name: begid rest: '' twigil__S_044Star: !!perl/hash:RE_ast dba: twigil dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: begid i: 0 name: sym rest: '' sym: '*' - !!perl/hash:RE_method name: begid rest: '' twigil__S_045Question: !!perl/hash:RE_ast dba: twigil dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: begid i: 0 name: sym rest: '' sym: '?' - !!perl/hash:RE_method name: begid rest: '' twigil__S_046Equal: !!perl/hash:RE_ast dba: twigil dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: begid i: 0 name: sym rest: '' sym: = - !!perl/hash:RE_method name: begid rest: '' twigil__S_047Tilde: !!perl/hash:RE_ast dba: twigil dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: begid i: 0 name: sym rest: '' sym: '~' - !!perl/hash:RE_method name: begid rest: '' type_declarator:*: dic: STD unitstopper: !!perl/hash:RE_ast dba: unitstopper dic: STD re: !!perl/hash:RE_meta text: $ unsp: !!perl/hash:RE_ast dba: unspace dic: STD re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta min: 1 text: \\ - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_bracket re: &18 !!perl/hash:RE_any altname: unsp_0 dba: unsp dic: STD zyg: - !!perl/hash:RE_meta alt: unsp_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: unsp_0 1 i: 0 text: '#' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &19 !!perl/hash:RE_any altname: unsp_1 dba: unspace dic: STD zyg: - !!perl/hash:RE_method alt: unsp_1 0 name: vws rest: '' - !!perl/hash:RE_method alt: unsp_1 1 name: unv rest: '' - !!perl/hash:RE_sequence alt: unsp_1 2 zyg: - !!perl/hash:RE_meta text: $ - !!perl/hash:RE_block {} quant: - '*' unsp_0: *18 unsp_1: *19 unspacey: !!perl/hash:RE_ast dba: unspacey dic: STD re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' unv: !!perl/hash:RE_ast dba: horizontal whitespace dic: STD re: !!perl/hash:RE_bracket re: &20 !!perl/hash:RE_any altname: unv_0 dba: horizontal whitespace dic: STD zyg: - !!perl/hash:RE_quantified_atom alt: unv_0 0 atom: !!perl/hash:RE_meta min: 1 text: \h quant: - + - !!perl/hash:RE_sequence alt: unv_0 1 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_bracket re: &21 !!perl/hash:RE_any altname: unv_1 dba: horizontal whitespace dic: STD zyg: - !!perl/hash:RE_meta alt: unv_1 0 min: 1 text: \w - !!perl/hash:RE_string alt: unv_1 1 i: 0 text: \ - !!perl/hash:RE_meta text: ^^ - !!perl/hash:RE_method name: pod_comment rest: '' - !!perl/hash:RE_sequence alt: unv_0 2 zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_method name: comment rest: '' unv_0: *20 unv_1: *21 value:*: dic: STD version:*: dic: STD vws: !!perl/hash:RE_ast dba: vertical whitespace dic: STD re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_bracket re: &22 !!perl/hash:RE_any altname: vws_0 dba: vertical whitespace dic: STD zyg: - !!perl/hash:RE_meta alt: vws_0 0 min: 1 text: \v - !!perl/hash:RE_sequence alt: vws_0 1 zyg: - !!perl/hash:RE_string i: 0 text: '#DEBUG -1' - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \V quant: - '*' - !!perl/hash:RE_meta min: 1 text: \v - !!perl/hash:RE_sequence alt: vws_0 2 zyg: - !!perl/hash:RE_string i: 0 text: <<<<<<< - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_meta min: 1 text: \v - !!perl/hash:RE_string i: 0 text: ======= - !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_meta min: 1 text: \v - !!perl/hash:RE_string i: 0 text: '>>>>>>>' - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \V quant: - '*' - !!perl/hash:RE_meta min: 1 text: \v - !!perl/hash:RE_sequence alt: vws_0 3 zyg: - !!perl/hash:RE_string i: 0 text: ======= - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_meta min: 1 text: \v - !!perl/hash:RE_string i: 0 text: '>>>>>>>' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \V quant: - '*' - !!perl/hash:RE_meta min: 1 text: \v quant: - + vws_0: *22 ws: !!perl/hash:RE_ast dba: whitespace dic: STD re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_bracket re: &23 !!perl/hash:RE_any altname: ws_0 dba: whitespace dic: STD zyg: - !!perl/hash:RE_sequence alt: ws_0 0 zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - + - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_cclass i: 0 nobind: 1 text: '[\#\s\\]' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: ws_0 1 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \w - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: after nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \w - !!perl/hash:RE_meta text: ':::' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &24 !!perl/hash:RE_any altname: ws_1 dba: whitespace dic: STD zyg: - !!perl/hash:RE_method alt: ws_1 0 name: unsp rest: '' - !!perl/hash:RE_sequence alt: ws_1 1 zyg: - !!perl/hash:RE_method name: vws rest: '' - !!perl/hash:RE_method name: heredoc rest: '' - !!perl/hash:RE_method alt: ws_1 2 name: unv rest: '' - !!perl/hash:RE_sequence alt: ws_1 3 zyg: - !!perl/hash:RE_meta text: $ - !!perl/hash:RE_block {} quant: - '*' - !!perl/hash:RE_block {} ws_0: *23 ws_1: *24 RETREE_END ; use DEBUG; use NAME; use Stash; use STD::Cursor; our $ALL; ## method p6class () sub p6class { no warnings 'recursion'; my $self = shift; 'STD::P6' }; ## method TOP ($STOP = '') sub TOP { no warnings 'recursion'; my $self = shift; my $STOP = @_ ? shift() : ''; my $lang = $self->cursor_fresh( $self->p6class ); if ($STOP) { local $::GOAL = $STOP; $lang->unitstop($STOP)->comp_unit; } else { $lang->comp_unit}; }; our %term = ('dba' => ('term') , 'prec' => 'z='); our %methodcall = ('dba' => ('methodcall') , 'prec' => 'y=', 'assoc' => 'unary', 'uassoc' => 'left', 'fiddly' => 1, 'pure' => 0); our %autoincrement = ('dba' => ('autoincrement') , 'prec' => 'x=', 'assoc' => 'unary', 'uassoc' => 'non', 'pure' => 0); our %exponentiation = ('dba' => ('exponentiation') , 'prec' => 'w=', 'assoc' => 'right', 'pure' => 1); our %symbolic_unary = ('dba' => ('symbolic unary') , 'prec' => 'v=', 'assoc' => 'unary', 'uassoc' => 'left', 'pure' => 1); our %multiplicative = ('dba' => ('multiplicative') , 'prec' => 'u=', 'assoc' => 'left', 'pure' => 1); our %additive = ('dba' => ('additive') , 'prec' => 't=', 'assoc' => 'left', 'pure' => 1); our %replication = ('dba' => ('replication') , 'prec' => 's=', 'assoc' => 'left', 'pure' => 1); our %concatenation = ('dba' => ('concatenation') , 'prec' => 'r=', 'assoc' => 'list', 'pure' => 1); our %junctive_and = ('dba' => ('junctive and') , 'prec' => 'q=', 'assoc' => 'list', 'pure' => 1); our %junctive_or = ('dba' => ('junctive or') , 'prec' => 'p=', 'assoc' => 'list', 'pure' => 1); our %named_unary = ('dba' => ('named unary') , 'prec' => 'o=', 'assoc' => 'unary', 'uassoc' => 'left', 'pure' => 1); our %structural = ('dba' => ('structural infix'), 'prec' => 'n=', 'assoc' => 'non', 'diffy' => 1); our %chaining = ('dba' => ('chaining') , 'prec' => 'm=', 'assoc' => 'chain', 'diffy' => 1, 'iffy' => 1, 'pure' => 1); our %tight_and = ('dba' => ('tight and') , 'prec' => 'l=', 'assoc' => 'list'); our %tight_or = ('dba' => ('tight or') , 'prec' => 'k=', 'assoc' => 'list'); our %conditional = ('dba' => ('conditional') , 'prec' => 'j=', 'assoc' => 'right', 'fiddly' => 1); our %item_assignment = ('dba' => ('item assignment') , 'prec' => 'i=', 'assoc' => 'right', 'pure' => 0); our %list_assignment = ('dba' => ('list assignment') , 'prec' => 'i=', 'assoc' => 'right', 'sub' => 'e=', 'fiddly' => 1, 'pure' => 0); our %loose_unary = ('dba' => ('loose unary') , 'prec' => 'h=', 'assoc' => 'unary', 'uassoc' => 'left', 'pure' => 1); our %comma = ('dba' => ('comma') , 'prec' => 'g=', 'assoc' => 'list', 'nextterm' => 'nulltermish', 'fiddly' => 1, 'pure' => 1); our %list_infix = ('dba' => ('list infix') , 'prec' => 'f=', 'assoc' => 'list', 'pure' => 1); our %list_prefix = ('dba' => ('list prefix') , 'prec' => 'e=', 'assoc' => 'unary', 'uassoc' => 'left'); our %loose_and = ('dba' => ('loose and') , 'prec' => 'd=', 'assoc' => 'list'); our %loose_or = ('dba' => ('loose or') , 'prec' => 'c=', 'assoc' => 'list'); our %sequencer = ('dba' => ('sequencer') , 'prec' => 'b=', 'assoc' => 'list', 'nextterm' => 'statement', 'fiddly' => 1); our %LOOSEST = ('dba' => ('LOOSEST') , 'prec' => 'a=!'); our %terminator = ('dba' => ('terminator') , 'prec' => 'a=', 'assoc' => 'list'); our $LOOSEST = "a=!"; our $item_assignment_prec = 'i='; our $methodcall_prec = 'y='; local $::endsym = "null"; local $::endargs = -1; ## token category {*} sub category__PEEK { $_[0]->_AUTOLEXpeek('category:*',$retree); } sub category { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE category'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'category') { $C->deb("Fate passed to category: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT category'; } else { $x = 'ALTLTM category'; } } else { $x = 'ALTLTM category'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'category:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("category trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "category", @gather); }; @result; } ; ## token category:category { } sub category__S_000category__PEEK { $_[0]->_AUTOLEXpeek('category__S_000category', $retree) } sub category__S_000category { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_000category"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "category"; $self->_MATCHIFYr($S, "category__S_000category", $C->_EXACT("category")); } ; ## token category:sigil { } sub category__S_001sigil__PEEK { $_[0]->_AUTOLEXpeek('category__S_001sigil', $retree) } sub category__S_001sigil { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_001sigil"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "sigil"; $self->_MATCHIFYr($S, "category__S_001sigil", $C->_EXACT("sigil")); } ; ## token sigil {*} sub sigil__PEEK { $_[0]->_AUTOLEXpeek('sigil:*',$retree); } sub sigil { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE sigil'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'sigil') { $C->deb("Fate passed to sigil: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT sigil'; } else { $x = 'ALTLTM sigil'; } } else { $x = 'ALTLTM sigil'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'sigil:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("sigil trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "sigil", @gather); }; @result; } ; ## token category:twigil { } sub category__S_002twigil__PEEK { $_[0]->_AUTOLEXpeek('category__S_002twigil', $retree) } sub category__S_002twigil { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_002twigil"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "twigil"; $self->_MATCHIFYr($S, "category__S_002twigil", $C->_EXACT("twigil")); } ; ## token twigil (:$*endsym = 'begid') {*} sub twigil__PEEK { $_[0]->_AUTOLEXpeek('twigil:*',$retree); } sub twigil { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE twigil'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'twigil') { $C->deb("Fate passed to twigil: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT twigil'; } else { $x = 'ALTLTM twigil'; } } else { $x = 'ALTLTM twigil'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'twigil:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("twigil trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "twigil", @gather); }; @result; } ; ## token category:special_variable { } sub category__S_003special_variable__PEEK { $_[0]->_AUTOLEXpeek('category__S_003special_variable', $retree) } sub category__S_003special_variable { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_003special_variable"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "special_variable"; $self->_MATCHIFYr($S, "category__S_003special_variable", $C->_EXACT("special_variable")); } ; ## token special_variable {*} sub special_variable__PEEK { $_[0]->_AUTOLEXpeek('special_variable:*',$retree); } sub special_variable { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE special_variable'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'special_variable') { $C->deb("Fate passed to special_variable: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable'; } else { $x = 'ALTLTM special_variable'; } } else { $x = 'ALTLTM special_variable'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'special_variable:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "special_variable", @gather); }; @result; } ; ## token category:comment { } sub category__S_004comment__PEEK { $_[0]->_AUTOLEXpeek('category__S_004comment', $retree) } sub category__S_004comment { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_004comment"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "comment"; $self->_MATCHIFYr($S, "category__S_004comment", $C->_EXACT("comment")); } ; ## token comment {*} sub comment__PEEK { $_[0]->_AUTOLEXpeek('comment:*',$retree); } sub comment { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE comment'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'comment') { $C->deb("Fate passed to comment: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT comment'; } else { $x = 'ALTLTM comment'; } } else { $x = 'ALTLTM comment'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'comment:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("comment trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "comment", @gather); }; @result; } ; ## token category:version { } sub category__S_005version__PEEK { $_[0]->_AUTOLEXpeek('category__S_005version', $retree) } sub category__S_005version { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_005version"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "version"; $self->_MATCHIFYr($S, "category__S_005version", $C->_EXACT("version")); } ; ## token version {*} sub version__PEEK { $_[0]->_AUTOLEXpeek('version:*',$retree); } sub version { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE version'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'version') { $C->deb("Fate passed to version: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT version'; } else { $x = 'ALTLTM version'; } } else { $x = 'ALTLTM version'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'version:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("version trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "version", @gather); }; @result; } ; ## token category:module_name { } sub category__S_006module_name__PEEK { $_[0]->_AUTOLEXpeek('category__S_006module_name', $retree) } sub category__S_006module_name { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_006module_name"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "module_name"; $self->_MATCHIFYr($S, "category__S_006module_name", $C->_EXACT("module_name")); } ; ## token module_name {*} sub module_name__PEEK { $_[0]->_AUTOLEXpeek('module_name:*',$retree); } sub module_name { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE module_name'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'module_name') { $C->deb("Fate passed to module_name: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT module_name'; } else { $x = 'ALTLTM module_name'; } } else { $x = 'ALTLTM module_name'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'module_name:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("module_name trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "module_name", @gather); }; @result; } ; ## token category:value { } sub category__S_007value__PEEK { $_[0]->_AUTOLEXpeek('category__S_007value', $retree) } sub category__S_007value { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_007value"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "value"; $self->_MATCHIFYr($S, "category__S_007value", $C->_EXACT("value")); } ; ## token value {*} sub value__PEEK { $_[0]->_AUTOLEXpeek('value:*',$retree); } sub value { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE value'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'value') { $C->deb("Fate passed to value: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT value'; } else { $x = 'ALTLTM value'; } } else { $x = 'ALTLTM value'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'value:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("value trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "value", @gather); }; @result; } ; ## token category:term { } sub category__S_008term__PEEK { $_[0]->_AUTOLEXpeek('category__S_008term', $retree) } sub category__S_008term { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_008term"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "term"; $self->_MATCHIFYr($S, "category__S_008term", $C->_EXACT("term")); } ; ## token term {*} sub term__PEEK { $_[0]->_AUTOLEXpeek('term:*',$retree); } sub term { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE term'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'term') { $C->deb("Fate passed to term: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT term'; } else { $x = 'ALTLTM term'; } } else { $x = 'ALTLTM term'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'term:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("term trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "term", @gather); }; @result; } ; ## token category:strtonum { } sub category__S_009strtonum__PEEK { $_[0]->_AUTOLEXpeek('category__S_009strtonum', $retree) } sub category__S_009strtonum { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_009strtonum"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "strtonum"; $self->_MATCHIFYr($S, "category__S_009strtonum", $C->_EXACT("strtonum")); } ; ## token strtonum {*} sub strtonum__PEEK { $_[0]->_AUTOLEXpeek('strtonum:*',$retree); } sub strtonum { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE strtonum'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'strtonum') { $C->deb("Fate passed to strtonum: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT strtonum'; } else { $x = 'ALTLTM strtonum'; } } else { $x = 'ALTLTM strtonum'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'strtonum:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("strtonum trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "strtonum", @gather); }; @result; } ; ## token category:quote { } sub category__S_010quote__PEEK { $_[0]->_AUTOLEXpeek('category__S_010quote', $retree) } sub category__S_010quote { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_010quote"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "quote"; $self->_MATCHIFYr($S, "category__S_010quote", $C->_EXACT("quote")); } ; ## token quote () {*} sub quote__PEEK { $_[0]->_AUTOLEXpeek('quote:*',$retree); } sub quote { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE quote'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'quote') { $C->deb("Fate passed to quote: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT quote'; } else { $x = 'ALTLTM quote'; } } else { $x = 'ALTLTM quote'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'quote:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("quote trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "quote", @gather); }; @result; } ; ## token category:prefix { } sub category__S_011prefix__PEEK { $_[0]->_AUTOLEXpeek('category__S_011prefix', $retree) } sub category__S_011prefix { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_011prefix"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "prefix"; $self->_MATCHIFYr($S, "category__S_011prefix", $C->_EXACT("prefix")); } ; ## token prefix is unary is defequiv(%symbolic_unary) {*} sub prefix__PEEK { $_[0]->_AUTOLEXpeek('prefix:*',$retree); } sub prefix { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE prefix'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'prefix') { $C->deb("Fate passed to prefix: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT prefix'; } else { $x = 'ALTLTM prefix'; } } else { $x = 'ALTLTM prefix'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'prefix:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("prefix trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "prefix", @gather); }; @result; } ; ## token category:infix { } sub category__S_012infix__PEEK { $_[0]->_AUTOLEXpeek('category__S_012infix', $retree) } sub category__S_012infix { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_012infix"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "infix"; $self->_MATCHIFYr($S, "category__S_012infix", $C->_EXACT("infix")); } ; ## token infix is binary is defequiv(%additive) {*} sub infix__PEEK { $_[0]->_AUTOLEXpeek('infix:*',$retree); } sub infix { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE infix'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'infix') { $C->deb("Fate passed to infix: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT infix'; } else { $x = 'ALTLTM infix'; } } else { $x = 'ALTLTM infix'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'infix:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("infix trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "infix", @gather); }; @result; } ; ## token category:postfix { } sub category__S_013postfix__PEEK { $_[0]->_AUTOLEXpeek('category__S_013postfix', $retree) } sub category__S_013postfix { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_013postfix"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "postfix"; $self->_MATCHIFYr($S, "category__S_013postfix", $C->_EXACT("postfix")); } ; ## token postfix is unary is defequiv(%autoincrement) {*} sub postfix__PEEK { $_[0]->_AUTOLEXpeek('postfix:*',$retree); } sub postfix { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE postfix'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'postfix') { $C->deb("Fate passed to postfix: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT postfix'; } else { $x = 'ALTLTM postfix'; } } else { $x = 'ALTLTM postfix'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'postfix:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("postfix trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "postfix", @gather); }; @result; } ; ## token category:dotty { } sub category__S_014dotty__PEEK { $_[0]->_AUTOLEXpeek('category__S_014dotty', $retree) } sub category__S_014dotty { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_014dotty"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "dotty"; $self->_MATCHIFYr($S, "category__S_014dotty", $C->_EXACT("dotty")); } ; ## token dotty (:$*endsym = 'unspacey') {*} sub dotty__PEEK { $_[0]->_AUTOLEXpeek('dotty:*',$retree); } sub dotty { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE dotty'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'dotty') { $C->deb("Fate passed to dotty: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT dotty'; } else { $x = 'ALTLTM dotty'; } } else { $x = 'ALTLTM dotty'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'dotty:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("dotty trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "dotty", @gather); }; @result; } ; ## token category:circumfix { } sub category__S_015circumfix__PEEK { $_[0]->_AUTOLEXpeek('category__S_015circumfix', $retree) } sub category__S_015circumfix { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_015circumfix"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "circumfix"; $self->_MATCHIFYr($S, "category__S_015circumfix", $C->_EXACT("circumfix")); } ; ## token circumfix {*} sub circumfix__PEEK { $_[0]->_AUTOLEXpeek('circumfix:*',$retree); } sub circumfix { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE circumfix'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'circumfix') { $C->deb("Fate passed to circumfix: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT circumfix'; } else { $x = 'ALTLTM circumfix'; } } else { $x = 'ALTLTM circumfix'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'circumfix:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("circumfix trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "circumfix", @gather); }; @result; } ; ## token category:postcircumfix { } sub category__S_016postcircumfix__PEEK { $_[0]->_AUTOLEXpeek('category__S_016postcircumfix', $retree) } sub category__S_016postcircumfix { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_016postcircumfix"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "postcircumfix"; $self->_MATCHIFYr($S, "category__S_016postcircumfix", $C->_EXACT("postcircumfix")); } ; ## token postcircumfix is unary {*} # unary as far as EXPR knows... sub postcircumfix__PEEK { $_[0]->_AUTOLEXpeek('postcircumfix:*',$retree); } sub postcircumfix { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE postcircumfix'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'postcircumfix') { $C->deb("Fate passed to postcircumfix: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT postcircumfix'; } else { $x = 'ALTLTM postcircumfix'; } } else { $x = 'ALTLTM postcircumfix'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'postcircumfix:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("postcircumfix trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "postcircumfix", @gather); }; @result; } ; ## token category:quote_mod { } sub category__S_017quote_mod__PEEK { $_[0]->_AUTOLEXpeek('category__S_017quote_mod', $retree) } sub category__S_017quote_mod { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_017quote_mod"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "quote_mod"; $self->_MATCHIFYr($S, "category__S_017quote_mod", $C->_EXACT("quote_mod")); } ; ## token quote_mod {*} sub quote_mod__PEEK { $_[0]->_AUTOLEXpeek('quote_mod:*',$retree); } sub quote_mod { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE quote_mod'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'quote_mod') { $C->deb("Fate passed to quote_mod: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT quote_mod'; } else { $x = 'ALTLTM quote_mod'; } } else { $x = 'ALTLTM quote_mod'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'quote_mod:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("quote_mod trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "quote_mod", @gather); }; @result; } ; ## token category:trait_mod { } sub category__S_018trait_mod__PEEK { $_[0]->_AUTOLEXpeek('category__S_018trait_mod', $retree) } sub category__S_018trait_mod { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_018trait_mod"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "trait_mod"; $self->_MATCHIFYr($S, "category__S_018trait_mod", $C->_EXACT("trait_mod")); } ; ## token trait_mod (:$*endsym = 'spacey') {*} sub trait_mod__PEEK { $_[0]->_AUTOLEXpeek('trait_mod:*',$retree); } sub trait_mod { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE trait_mod'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'trait_mod') { $C->deb("Fate passed to trait_mod: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT trait_mod'; } else { $x = 'ALTLTM trait_mod'; } } else { $x = 'ALTLTM trait_mod'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'trait_mod:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("trait_mod trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "trait_mod", @gather); }; @result; } ; ## token category:type_declarator { } sub category__S_019type_declarator__PEEK { $_[0]->_AUTOLEXpeek('category__S_019type_declarator', $retree) } sub category__S_019type_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_019type_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "type_declarator"; $self->_MATCHIFYr($S, "category__S_019type_declarator", $C->_EXACT("type_declarator")); } ; ## token type_declarator (:$*endsym = 'spacey') {*} sub type_declarator__PEEK { $_[0]->_AUTOLEXpeek('type_declarator:*',$retree); } sub type_declarator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE type_declarator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'type_declarator') { $C->deb("Fate passed to type_declarator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT type_declarator'; } else { $x = 'ALTLTM type_declarator'; } } else { $x = 'ALTLTM type_declarator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'type_declarator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("type_declarator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "type_declarator", @gather); }; @result; } ; ## token category:scope_declarator { } sub category__S_020scope_declarator__PEEK { $_[0]->_AUTOLEXpeek('category__S_020scope_declarator', $retree) } sub category__S_020scope_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_020scope_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "scope_declarator"; $self->_MATCHIFYr($S, "category__S_020scope_declarator", $C->_EXACT("scope_declarator")); } ; ## token scope_declarator (:$*endsym = 'nofun') {*} sub scope_declarator__PEEK { $_[0]->_AUTOLEXpeek('scope_declarator:*',$retree); } sub scope_declarator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE scope_declarator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'scope_declarator') { $C->deb("Fate passed to scope_declarator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT scope_declarator'; } else { $x = 'ALTLTM scope_declarator'; } } else { $x = 'ALTLTM scope_declarator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'scope_declarator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("scope_declarator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "scope_declarator", @gather); }; @result; } ; ## token category:package_declarator { } sub category__S_021package_declarator__PEEK { $_[0]->_AUTOLEXpeek('category__S_021package_declarator', $retree) } sub category__S_021package_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_021package_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "package_declarator"; $self->_MATCHIFYr($S, "category__S_021package_declarator", $C->_EXACT("package_declarator")); } ; ## token package_declarator (:$*endsym = 'spacey') {*} sub package_declarator__PEEK { $_[0]->_AUTOLEXpeek('package_declarator:*',$retree); } sub package_declarator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE package_declarator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'package_declarator') { $C->deb("Fate passed to package_declarator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT package_declarator'; } else { $x = 'ALTLTM package_declarator'; } } else { $x = 'ALTLTM package_declarator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'package_declarator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("package_declarator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "package_declarator", @gather); }; @result; } ; ## token category:multi_declarator { } sub category__S_022multi_declarator__PEEK { $_[0]->_AUTOLEXpeek('category__S_022multi_declarator', $retree) } sub category__S_022multi_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_022multi_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "multi_declarator"; $self->_MATCHIFYr($S, "category__S_022multi_declarator", $C->_EXACT("multi_declarator")); } ; ## token multi_declarator (:$*endsym = 'spacey') {*} sub multi_declarator__PEEK { $_[0]->_AUTOLEXpeek('multi_declarator:*',$retree); } sub multi_declarator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE multi_declarator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'multi_declarator') { $C->deb("Fate passed to multi_declarator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT multi_declarator'; } else { $x = 'ALTLTM multi_declarator'; } } else { $x = 'ALTLTM multi_declarator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'multi_declarator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("multi_declarator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "multi_declarator", @gather); }; @result; } ; ## token category:routine_declarator { } sub category__S_023routine_declarator__PEEK { $_[0]->_AUTOLEXpeek('category__S_023routine_declarator', $retree) } sub category__S_023routine_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_023routine_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "routine_declarator"; $self->_MATCHIFYr($S, "category__S_023routine_declarator", $C->_EXACT("routine_declarator")); } ; ## token routine_declarator (:$*endsym = 'nofun') {*} sub routine_declarator__PEEK { $_[0]->_AUTOLEXpeek('routine_declarator:*',$retree); } sub routine_declarator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE routine_declarator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'routine_declarator') { $C->deb("Fate passed to routine_declarator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT routine_declarator'; } else { $x = 'ALTLTM routine_declarator'; } } else { $x = 'ALTLTM routine_declarator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'routine_declarator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("routine_declarator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "routine_declarator", @gather); }; @result; } ; ## token category:regex_declarator { } sub category__S_024regex_declarator__PEEK { $_[0]->_AUTOLEXpeek('category__S_024regex_declarator', $retree) } sub category__S_024regex_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_024regex_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "regex_declarator"; $self->_MATCHIFYr($S, "category__S_024regex_declarator", $C->_EXACT("regex_declarator")); } ; ## token regex_declarator (:$*endsym = 'spacey') {*} sub regex_declarator__PEEK { $_[0]->_AUTOLEXpeek('regex_declarator:*',$retree); } sub regex_declarator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE regex_declarator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'regex_declarator') { $C->deb("Fate passed to regex_declarator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT regex_declarator'; } else { $x = 'ALTLTM regex_declarator'; } } else { $x = 'ALTLTM regex_declarator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'regex_declarator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("regex_declarator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "regex_declarator", @gather); }; @result; } ; ## token category:statement_prefix { } sub category__S_025statement_prefix__PEEK { $_[0]->_AUTOLEXpeek('category__S_025statement_prefix', $retree) } sub category__S_025statement_prefix { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_025statement_prefix"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "statement_prefix"; $self->_MATCHIFYr($S, "category__S_025statement_prefix", $C->_EXACT("statement_prefix")); } ; ## rule statement_prefix () {*} sub statement_prefix__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix:*',$retree); } sub statement_prefix { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE statement_prefix'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'statement_prefix') { $C->deb("Fate passed to statement_prefix: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_prefix'; } else { $x = 'ALTLTM statement_prefix'; } } else { $x = 'ALTLTM statement_prefix'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'statement_prefix:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_prefix trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "statement_prefix", @gather); }; @result; } ; ## token category:statement_control { } sub category__S_026statement_control__PEEK { $_[0]->_AUTOLEXpeek('category__S_026statement_control', $retree) } sub category__S_026statement_control { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_026statement_control"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "statement_control"; $self->_MATCHIFYr($S, "category__S_026statement_control", $C->_EXACT("statement_control")); } ; ## rule statement_control (:$*endsym = 'spacey') {*} sub statement_control__PEEK { $_[0]->_AUTOLEXpeek('statement_control:*',$retree); } sub statement_control { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE statement_control'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'statement_control') { $C->deb("Fate passed to statement_control: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_control'; } else { $x = 'ALTLTM statement_control'; } } else { $x = 'ALTLTM statement_control'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'statement_control:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_control trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "statement_control", @gather); }; @result; } ; ## token category:statement_mod_cond { } sub category__S_027statement_mod_cond__PEEK { $_[0]->_AUTOLEXpeek('category__S_027statement_mod_cond', $retree) } sub category__S_027statement_mod_cond { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_027statement_mod_cond"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "statement_mod_cond"; $self->_MATCHIFYr($S, "category__S_027statement_mod_cond", $C->_EXACT("statement_mod_cond")); } ; ## rule statement_mod_cond (:$*endsym = 'nofun') {*} sub statement_mod_cond__PEEK { $_[0]->_AUTOLEXpeek('statement_mod_cond:*',$retree); } sub statement_mod_cond { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE statement_mod_cond'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'statement_mod_cond') { $C->deb("Fate passed to statement_mod_cond: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_mod_cond'; } else { $x = 'ALTLTM statement_mod_cond'; } } else { $x = 'ALTLTM statement_mod_cond'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'statement_mod_cond:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_mod_cond trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "statement_mod_cond", @gather); }; @result; } ; ## token category:statement_mod_loop { } sub category__S_028statement_mod_loop__PEEK { $_[0]->_AUTOLEXpeek('category__S_028statement_mod_loop', $retree) } sub category__S_028statement_mod_loop { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_028statement_mod_loop"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "statement_mod_loop"; $self->_MATCHIFYr($S, "category__S_028statement_mod_loop", $C->_EXACT("statement_mod_loop")); } ; ## rule statement_mod_loop (:$*endsym = 'nofun') {*} sub statement_mod_loop__PEEK { $_[0]->_AUTOLEXpeek('statement_mod_loop:*',$retree); } sub statement_mod_loop { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE statement_mod_loop'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'statement_mod_loop') { $C->deb("Fate passed to statement_mod_loop: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_mod_loop'; } else { $x = 'ALTLTM statement_mod_loop'; } } else { $x = 'ALTLTM statement_mod_loop'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'statement_mod_loop:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_mod_loop trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "statement_mod_loop", @gather); }; @result; } ; ## token category:infix_prefix_meta_operator { } sub category__S_029infix_prefix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('category__S_029infix_prefix_meta_operator', $retree) } sub category__S_029infix_prefix_meta_operator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_029infix_prefix_meta_operator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "infix_prefix_meta_operator"; $self->_MATCHIFYr($S, "category__S_029infix_prefix_meta_operator", $C->_EXACT("infix_prefix_meta_operator")); } ; ## token infix_prefix_meta_operator is binary {*} sub infix_prefix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('infix_prefix_meta_operator:*',$retree); } sub infix_prefix_meta_operator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE infix_prefix_meta_operator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'infix_prefix_meta_operator') { $C->deb("Fate passed to infix_prefix_meta_operator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT infix_prefix_meta_operator'; } else { $x = 'ALTLTM infix_prefix_meta_operator'; } } else { $x = 'ALTLTM infix_prefix_meta_operator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'infix_prefix_meta_operator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("infix_prefix_meta_operator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "infix_prefix_meta_operator", @gather); }; @result; } ; ## token category:infix_postfix_meta_operator { } sub category__S_030infix_postfix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('category__S_030infix_postfix_meta_operator', $retree) } sub category__S_030infix_postfix_meta_operator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_030infix_postfix_meta_operator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "infix_postfix_meta_operator"; $self->_MATCHIFYr($S, "category__S_030infix_postfix_meta_operator", $C->_EXACT("infix_postfix_meta_operator")); } ; ## token infix_postfix_meta_operator ($op) is binary {*} sub infix_postfix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('infix_postfix_meta_operator:*',$retree); } sub infix_postfix_meta_operator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE infix_postfix_meta_operator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'infix_postfix_meta_operator') { $C->deb("Fate passed to infix_postfix_meta_operator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT infix_postfix_meta_operator'; } else { $x = 'ALTLTM infix_postfix_meta_operator'; } } else { $x = 'ALTLTM infix_postfix_meta_operator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'infix_postfix_meta_operator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("infix_postfix_meta_operator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "infix_postfix_meta_operator", @gather); }; @result; } ; ## token category:infix_circumfix_meta_operator { } sub category__S_031infix_circumfix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('category__S_031infix_circumfix_meta_operator', $retree) } sub category__S_031infix_circumfix_meta_operator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_031infix_circumfix_meta_operator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "infix_circumfix_meta_operator"; $self->_MATCHIFYr($S, "category__S_031infix_circumfix_meta_operator", $C->_EXACT("infix_circumfix_meta_operator")); } ; ## token infix_circumfix_meta_operator is binary {*} sub infix_circumfix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('infix_circumfix_meta_operator:*',$retree); } sub infix_circumfix_meta_operator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE infix_circumfix_meta_operator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'infix_circumfix_meta_operator') { $C->deb("Fate passed to infix_circumfix_meta_operator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT infix_circumfix_meta_operator'; } else { $x = 'ALTLTM infix_circumfix_meta_operator'; } } else { $x = 'ALTLTM infix_circumfix_meta_operator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'infix_circumfix_meta_operator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("infix_circumfix_meta_operator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "infix_circumfix_meta_operator", @gather); }; @result; } ; ## token category:postfix_prefix_meta_operator { } sub category__S_032postfix_prefix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('category__S_032postfix_prefix_meta_operator', $retree) } sub category__S_032postfix_prefix_meta_operator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_032postfix_prefix_meta_operator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "postfix_prefix_meta_operator"; $self->_MATCHIFYr($S, "category__S_032postfix_prefix_meta_operator", $C->_EXACT("postfix_prefix_meta_operator")); } ; ## token postfix_prefix_meta_operator is unary {*} sub postfix_prefix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('postfix_prefix_meta_operator:*',$retree); } sub postfix_prefix_meta_operator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE postfix_prefix_meta_operator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'postfix_prefix_meta_operator') { $C->deb("Fate passed to postfix_prefix_meta_operator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT postfix_prefix_meta_operator'; } else { $x = 'ALTLTM postfix_prefix_meta_operator'; } } else { $x = 'ALTLTM postfix_prefix_meta_operator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'postfix_prefix_meta_operator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("postfix_prefix_meta_operator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "postfix_prefix_meta_operator", @gather); }; @result; } ; ## token category:prefix_postfix_meta_operator { } sub category__S_033prefix_postfix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('category__S_033prefix_postfix_meta_operator', $retree) } sub category__S_033prefix_postfix_meta_operator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_033prefix_postfix_meta_operator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "prefix_postfix_meta_operator"; $self->_MATCHIFYr($S, "category__S_033prefix_postfix_meta_operator", $C->_EXACT("prefix_postfix_meta_operator")); } ; ## token prefix_postfix_meta_operator is unary {*} sub prefix_postfix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('prefix_postfix_meta_operator:*',$retree); } sub prefix_postfix_meta_operator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE prefix_postfix_meta_operator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'prefix_postfix_meta_operator') { $C->deb("Fate passed to prefix_postfix_meta_operator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT prefix_postfix_meta_operator'; } else { $x = 'ALTLTM prefix_postfix_meta_operator'; } } else { $x = 'ALTLTM prefix_postfix_meta_operator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'prefix_postfix_meta_operator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("prefix_postfix_meta_operator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "prefix_postfix_meta_operator", @gather); }; @result; } ; ## token category:prefix_circumfix_meta_operator { } sub category__S_034prefix_circumfix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('category__S_034prefix_circumfix_meta_operator', $retree) } sub category__S_034prefix_circumfix_meta_operator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_034prefix_circumfix_meta_operator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "prefix_circumfix_meta_operator"; $self->_MATCHIFYr($S, "category__S_034prefix_circumfix_meta_operator", $C->_EXACT("prefix_circumfix_meta_operator")); } ; ## token prefix_circumfix_meta_operator is unary {*} sub prefix_circumfix_meta_operator__PEEK { $_[0]->_AUTOLEXpeek('prefix_circumfix_meta_operator:*',$retree); } sub prefix_circumfix_meta_operator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE prefix_circumfix_meta_operator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'prefix_circumfix_meta_operator') { $C->deb("Fate passed to prefix_circumfix_meta_operator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT prefix_circumfix_meta_operator'; } else { $x = 'ALTLTM prefix_circumfix_meta_operator'; } } else { $x = 'ALTLTM prefix_circumfix_meta_operator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'prefix_circumfix_meta_operator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("prefix_circumfix_meta_operator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "prefix_circumfix_meta_operator", @gather); }; @result; } ; ## token category:terminator { } sub category__S_035terminator__PEEK { $_[0]->_AUTOLEXpeek('category__S_035terminator', $retree) } sub category__S_035terminator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE category__S_035terminator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "terminator"; $self->_MATCHIFYr($S, "category__S_035terminator", $C->_EXACT("terminator")); } ; ## token terminator {*} sub terminator__PEEK { $_[0]->_AUTOLEXpeek('terminator:*',$retree); } sub terminator { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE terminator'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'terminator') { $C->deb("Fate passed to terminator: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT terminator'; } else { $x = 'ALTLTM terminator'; } } else { $x = 'ALTLTM terminator'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'terminator:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("terminator trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "terminator", @gather); }; @result; } ; ## token unspacey { <.unsp>? } sub unspacey__PEEK { $_[0]->_AUTOLEXpeek('unspacey', $retree) } sub unspacey { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE unspacey"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "unspacey", $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } })); } ; ## token begid { } sub begid__PEEK { $_[0]->_AUTOLEXpeek('begid', $retree) } sub begid { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE begid"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "begid", $C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\w/) }))) { ($C) } else { () } })); } ; ## token endid { > } sub endid__PEEK { $_[0]->_AUTOLEXpeek('endid', $retree) } sub endid { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE endid"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "endid", $C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[^\-\'\w]/) }))) { ($C) } else { () } })); } ; ## token spacey { > } sub spacey__PEEK { $_[0]->_AUTOLEXpeek('spacey', $retree) } sub spacey { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE spacey"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "spacey", $C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\s\#]/) }))) { ($C) } else { () } })); } ; ## token nofun { } sub nofun__PEEK { $_[0]->_AUTOLEXpeek('nofun', $retree) } sub nofun { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE nofun"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "nofun", $C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'nofun_0') { $C->deb("Fate passed to nofun_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT nofun_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM nofun_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'nofun_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("nofun_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\(") }, sub { my $C=shift; $C->_EXACT("\.\(") }, sub { my $C=shift; $C->_EXACT("\\") }, sub { my $C=shift; $C->_EXACT("\'") }, sub { my $C=shift; $C->_EXACT("\-") }, sub { my $C=shift; $C->_EXACT("\'") }, sub { my $C=shift; $C->_PATTERN(qr/\G\w/) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })); } ; ## token sigil:sym<$> { } sub sigil__S_036Dollar__PEEK { $_[0]->_AUTOLEXpeek('sigil__S_036Dollar', $retree) } sub sigil__S_036Dollar { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE sigil__S_036Dollar"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$"; $self->_MATCHIFYr($S, "sigil__S_036Dollar", $C->_EXACT("\$")); } ; ## token sigil:sym<@> { } sub sigil__S_037At__PEEK { $_[0]->_AUTOLEXpeek('sigil__S_037At', $retree) } sub sigil__S_037At { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE sigil__S_037At"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\@"; $self->_MATCHIFYr($S, "sigil__S_037At", $C->_EXACT("\@")); } ; ## token sigil:sym<%> { } sub sigil__S_038Percent__PEEK { $_[0]->_AUTOLEXpeek('sigil__S_038Percent', $retree) } sub sigil__S_038Percent { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE sigil__S_038Percent"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\%"; $self->_MATCHIFYr($S, "sigil__S_038Percent", $C->_EXACT("\%")); } ; ## token sigil:sym<&> { } sub sigil__S_039Amp__PEEK { $_[0]->_AUTOLEXpeek('sigil__S_039Amp', $retree) } sub sigil__S_039Amp { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE sigil__S_039Amp"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\&"; $self->_MATCHIFYr($S, "sigil__S_039Amp", $C->_EXACT("\&")); } ; ## token twigil:sym<.> { } sub twigil__S_040Dot__PEEK { $_[0]->_AUTOLEXpeek('twigil__S_040Dot', $retree) } sub twigil__S_040Dot { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE twigil__S_040Dot"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\."; $self->_MATCHIFYr($S, "twigil__S_040Dot", do { my $C = $C; if (($C) = ($C->_EXACT("\.")) and ($C) = ($C->begid)) { $C } else { () } }); } ; ## token twigil:sym { } sub twigil__S_041Bang__PEEK { $_[0]->_AUTOLEXpeek('twigil__S_041Bang', $retree) } sub twigil__S_041Bang { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE twigil__S_041Bang"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\!"; $self->_MATCHIFYr($S, "twigil__S_041Bang", do { my $C = $C; if (($C) = ($C->_EXACT("\!")) and ($C) = ($C->begid)) { $C } else { () } }); } ; ## token twigil:sym<^> { } sub twigil__S_042Caret__PEEK { $_[0]->_AUTOLEXpeek('twigil__S_042Caret', $retree) } sub twigil__S_042Caret { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE twigil__S_042Caret"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\^"; $self->_MATCHIFYr($S, "twigil__S_042Caret", do { my $C = $C; if (($C) = ($C->_EXACT("\^")) and ($C) = ($C->begid)) { $C } else { () } }); } ; ## token twigil:sym<:> { } sub twigil__S_043Colon__PEEK { $_[0]->_AUTOLEXpeek('twigil__S_043Colon', $retree) } sub twigil__S_043Colon { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE twigil__S_043Colon"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\:"; $self->_MATCHIFYr($S, "twigil__S_043Colon", do { my $C = $C; if (($C) = ($C->_EXACT("\:")) and ($C) = ($C->begid)) { $C } else { () } }); } ; ## token twigil:sym<*> { } sub twigil__S_044Star__PEEK { $_[0]->_AUTOLEXpeek('twigil__S_044Star', $retree) } sub twigil__S_044Star { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE twigil__S_044Star"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\*"; $self->_MATCHIFYr($S, "twigil__S_044Star", do { my $C = $C; if (($C) = ($C->_EXACT("\*")) and ($C) = ($C->begid)) { $C } else { () } }); } ; ## token twigil:sym { } sub twigil__S_045Question__PEEK { $_[0]->_AUTOLEXpeek('twigil__S_045Question', $retree) } sub twigil__S_045Question { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE twigil__S_045Question"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\?"; $self->_MATCHIFYr($S, "twigil__S_045Question", do { my $C = $C; if (($C) = ($C->_EXACT("\?")) and ($C) = ($C->begid)) { $C } else { () } }); } ; ## token twigil:sym<=> { } sub twigil__S_046Equal__PEEK { $_[0]->_AUTOLEXpeek('twigil__S_046Equal', $retree) } sub twigil__S_046Equal { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE twigil__S_046Equal"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\="; $self->_MATCHIFYr($S, "twigil__S_046Equal", do { my $C = $C; if (($C) = ($C->_EXACT("\=")) and ($C) = ($C->begid)) { $C } else { () } }); } ; ## token twigil:sym<~> { } sub twigil__S_047Tilde__PEEK { $_[0]->_AUTOLEXpeek('twigil__S_047Tilde', $retree) } sub twigil__S_047Tilde { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE twigil__S_047Tilde"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\~"; $self->_MATCHIFYr($S, "twigil__S_047Tilde", do { my $C = $C; if (($C) = ($C->_EXACT("\~")) and ($C) = ($C->begid)) { $C } else { () } }); } ; ## token stopper { } sub stopper__PEEK { $_[0]->_AUTOLEXpeek('stopper', $retree) } sub stopper { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE stopper"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "stopper", $C->_NOTBEFORE(sub { my $C=shift; $C })); } ; ## regex stdstopper { sub stdstopper__PEEK { $_[0]->_AUTOLEXpeek('stdstopper', $retree) } sub stdstopper { no warnings 'recursion'; my $self = shift; local $::STUB = $::STUB = return $self if exists $::MEMOS[$self->{'_pos'}]->{'endstmt'}; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE stdstopper"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFY($S, "stdstopper", STD::LazyMap::lazymap(sub { my $C=shift; scalar(do { $::MEMOS[$C->{'_pos'}]->{'endstmt'} ||= 1}, $C) }, $C->_BRACKET(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'stdstopper_0') { $C->deb("Fate passed to stdstopper_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT stdstopper_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM stdstopper_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'stdstopper_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("stdstopper_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->before(sub { my $C=shift; $C->terminator }) }, sub { my $C=shift; $C->before(sub { my $C=shift; $C->unitstopper }) }, sub { my $C=shift; $C->before(sub { my $C=shift; $C->_SUBSUME(['stopper'], sub { my $C = shift; $C->stopper }) }) }, sub { my $C=shift; $C->_PATTERN(qr/\G\z/) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))); } ; ## token longname { sub longname__PEEK { $_[0]->_AUTOLEXpeek('longname', $retree) } sub longname { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE longname"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'colonpair'} = []; $self->_MATCHIFYr($S, "longname", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['name'], sub { my $C = shift; $C->name })) and ($C) = (scalar(do { }, $C))) { $C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\:[a-zA-Z_\<\[\«]/) }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['colonpair'], sub { my $C = shift; $C->colonpair }) } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token name { sub name__PEEK { $_[0]->_AUTOLEXpeek('name', $retree) } sub name { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE name"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'morename'} = []; $self->_MATCHIFYr($S, "name", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'name_0') { $C->deb("Fate passed to name_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT name_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM name_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'name_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("name_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier }))) { $C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['morename'], sub { my $C = shift; $C->morename }) }) } else { () } }, sub { my $C=shift; $C->_PLUSr(sub { my $C=shift; $C->_SUBSUMEr(['morename'], sub { my $C = shift; $C->morename }) }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token morename { sub morename__PEEK { $_[0]->_AUTOLEXpeek('morename', $retree) } sub morename { no warnings 'recursion'; my $self = shift; local $::QSIGIL = ''; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE morename"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'EXPR'} = []; $C->{'identifier'} = []; $self->_MATCHIFYr($S, "morename", do { if (my ($C) = ($C->_EXACT("\:\:"))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'morename_0') { $C->deb("Fate passed to morename_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT morename_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM morename_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'morename_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("morename_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\(") }, sub { my $C=shift; $C->_PATTERN(qr/\G[_[:alpha:]]/) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'morename_1') { $C->deb("Fate passed to morename_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT morename_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM morename_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'morename_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("morename_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier }) }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\)"; my $goalpos = $C; if (($C) = ($C->_EXACT("\(")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'indirect name', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\:\:") }))) { ($C) } else { () } })) and ($C) = ($C->panic("Name component may not be null"))) { $C } else { () } } }; @gather; } }))) { ($C) } else { () } }) } else { () } }); } ; ## method peek_delimiters sub peek_delimiters { no warnings 'recursion'; my $self = shift; my $pos = $self->{'_pos'}; my $startpos = $pos; my $char = substr($::ORIG,$pos++,1); if ($char =~ /^\s$/) { $self->panic("Whitespace character is not allowed as delimiter")} elsif ($char =~ /^\w$/) { $self->panic("Alphanumeric character is not allowed as delimiter")} elsif ($STD::close2open{$char}) { $self->panic("Use of a closing delimiter for an opener is reserved")} elsif ($char eq ':') { $self->panic("Colons may not be used to delimit quoting constructs")}; my $rightbrack = $STD::open2close{$char}; if (not defined $rightbrack) { return $char, $char}; while (substr($::ORIG,$pos,1) eq $char) { $pos++} ; my $len = $pos - $startpos; my $start = $char x $len; my $stop = $rightbrack x $len; return $start, $stop; }; { package STD::startstop; require "mangle.pl"; our %INSTANTIATED; sub __instantiate__ { my $self = shift; my ($start, $stop) = @_; my $mangle = ::mangle($start, $stop); my $mixin = "STD::startstop::" . $mangle; return $mixin if $INSTANTIATED{$mixin}++; ::deb(" instantiating $mixin") if $::DEBUG & DEBUG::mixins; my $eval = "package $mixin" . q{; sub _PARAMS { { '$start' => $start, '$stop' => $stop } } use Moose::Role ':all' => { -prefix => "moose_" }; use Encode; our $ALLROLES = { 'STD::startstop', 1 }; our $REGEXES = { ALL => [ qw/starter stopper/ ], }; no warnings 'qw', 'recursion'; my $retree; $DB::deep = $DB::deep = 1000; # suppress used-once warning use YAML::XS; $SIG{__WARN__} = sub { die @_," statement started at line ", 'STD::Cursor'->lineof($::LASTSTATE), " " } if $::DEBUG; $retree = YAML::XS::Load(Encode::encode_utf8(<<'RETREE_END')); --- starter: !!perl/hash:RE_ast dba: starter dic: STD::startstop re: !!perl/hash:RE_var var: $start stopper: !!perl/hash:RE_ast dba: stopper dic: STD::startstop re: !!perl/hash:RE_var var: $stop RETREE_END ## token starter { $start } sub starter__PEEK { $_[0]->_AUTOLEXpeek('starter', $retree) } sub starter { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE starter"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "starter", $C->_EXACT($start)); } ; ## token stopper { $stop } sub stopper__PEEK { $_[0]->_AUTOLEXpeek('stopper', $retree) } sub stopper { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE stopper"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "stopper", $C->_EXACT($stop)); } ; }; eval $eval; die $@ if $@; return $mixin; } 1; }; { package STD::stop; require "mangle.pl"; our %INSTANTIATED; sub __instantiate__ { my $self = shift; my ($stop) = @_; my $mangle = ::mangle($stop); my $mixin = "STD::stop::" . $mangle; return $mixin if $INSTANTIATED{$mixin}++; ::deb(" instantiating $mixin") if $::DEBUG & DEBUG::mixins; my $eval = "package $mixin" . q{; sub _PARAMS { { '$stop' => $stop } } use Moose::Role ':all' => { -prefix => "moose_" }; use Encode; our $ALLROLES = { 'STD::stop', 1 }; our $REGEXES = { ALL => [ qw/starter stopper/ ], }; no warnings 'qw', 'recursion'; my $retree; $DB::deep = $DB::deep = 1000; # suppress used-once warning use YAML::XS; $SIG{__WARN__} = sub { die @_," statement started at line ", 'STD::Cursor'->lineof($::LASTSTATE), " " } if $::DEBUG; $retree = YAML::XS::Load(Encode::encode_utf8(<<'RETREE_END')); --- starter: !!perl/hash:RE_ast dba: starter dic: STD::stop re: !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_noop nobind: 1 stopper: !!perl/hash:RE_ast dba: stopper dic: STD::stop re: !!perl/hash:RE_var var: $stop RETREE_END ## token starter { } sub starter__PEEK { $_[0]->_AUTOLEXpeek('starter', $retree) } sub starter { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE starter"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "starter", $C->_NOTBEFORE(sub { my $C=shift; $C })); } ; ## token stopper { $stop } sub stopper__PEEK { $_[0]->_AUTOLEXpeek('stopper', $retree) } sub stopper { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE stopper"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "stopper", $C->_EXACT($stop)); } ; }; eval $eval; die $@ if $@; return $mixin; } 1; }; { package STD::unitstop; require "mangle.pl"; our %INSTANTIATED; sub __instantiate__ { my $self = shift; my ($stop) = @_; my $mangle = ::mangle($stop); my $mixin = "STD::unitstop::" . $mangle; return $mixin if $INSTANTIATED{$mixin}++; ::deb(" instantiating $mixin") if $::DEBUG & DEBUG::mixins; my $eval = "package $mixin" . q{; sub _PARAMS { { '$stop' => $stop } } use Moose::Role ':all' => { -prefix => "moose_" }; use Encode; our $ALLROLES = { 'STD::unitstop', 1 }; our $REGEXES = { ALL => [ qw/unitstopper/ ], }; no warnings 'qw', 'recursion'; my $retree; $DB::deep = $DB::deep = 1000; # suppress used-once warning use YAML::XS; $SIG{__WARN__} = sub { die @_," statement started at line ", 'STD::Cursor'->lineof($::LASTSTATE), " " } if $::DEBUG; $retree = YAML::XS::Load(Encode::encode_utf8(<<'RETREE_END')); --- unitstopper: !!perl/hash:RE_ast dba: unitstopper dic: STD::unitstop re: !!perl/hash:RE_var var: $stop RETREE_END ## token unitstopper { $stop } sub unitstopper__PEEK { $_[0]->_AUTOLEXpeek('unitstopper', $retree) } sub unitstopper { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE unitstopper"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "unitstopper", $C->_EXACT($stop)); } }; eval $eval; die $@ if $@; return $mixin; } 1; }; ## token unitstopper { $ } sub unitstopper__PEEK { $_[0]->_AUTOLEXpeek('unitstopper', $retree) } sub unitstopper { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE unitstopper"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "unitstopper", $C->_PATTERN(qr/\G\z/)); } ; ## method balanced ($start,$stop) sub balanced { no warnings 'recursion'; my $self = shift; die 'Required argument start omitted' unless @_; my $start = @_ ? shift() : undef; die 'Required argument stop omitted' unless @_; my $stop = @_ ? shift() : undef; $self->mixin( STD::startstop->__instantiate__($start,$stop) )}; ## method unbalanced ($stop) sub unbalanced { no warnings 'recursion'; my $self = shift; die 'Required argument stop omitted' unless @_; my $stop = @_ ? shift() : undef; $self->mixin( STD::stop->__instantiate__($stop) )}; ## method unitstop ($stop) sub unitstop { no warnings 'recursion'; my $self = shift; die 'Required argument stop omitted' unless @_; my $stop = @_ ? shift() : undef; $self->mixin( STD::unitstop->__instantiate__($stop) )}; ## method truly ($bool,$opt) sub truly { no warnings 'recursion'; my $self = shift; die 'Required argument bool omitted' unless @_; my $bool = @_ ? shift() : undef; die 'Required argument opt omitted' unless @_; my $opt = @_ ? shift() : undef; return $self if $bool; $self->sorry("Can't negate $opt adverb"); $self; }; ## token charname { sub charname__PEEK { $_[0]->_AUTOLEXpeek('charname', $retree) } sub charname { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE charname"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "charname", do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'charname_0') { $C->deb("Fate passed to charname_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT charname_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM charname_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'charname_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("charname_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_SUBSUMEr(['radint'], sub { my $C = shift; $C->radint }) }, sub { my $C=shift; if (my ($C) = (do { if (my ($C) = ($C->_PATTERN(qr/\G[_[:alpha:]]/))) { STD::LazyMap::lazymap(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G\s*+/)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'charname_1') { $C->deb("Fate passed to charname_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT charname_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM charname_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'charname_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("charname_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\#") }, sub { my $C=shift; $C->_EXACT("\]") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }; }))) { ($C) } else { () } }))) { ($C) } else { () } }, $C->_SCANf()) } else { () } })) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = (do { if (my ($C) = ($C->sorry("Unrecognized character name"))) { STD::LazyMap::lazymap(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->terminator)) { ($C) } else { () } }))) { ($C) } else { () } }, $C->_SCANf()) } else { () } })) { ($C) } else { () } } }; @gather; }); } ; ## token charnames { \s* [<.ws>] ** [','\s*] } sub charnames__PEEK { $_[0]->_AUTOLEXpeek('charnames', $retree) } sub charnames { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE charnames"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'charname'} = []; $self->_MATCHIFYr($S, "charnames", do { if (my ($C) = ($C->_PATTERN(qr/\G\s*+/))) { $C->_REPSEPr( sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G\,\s*+/) }))) { ($C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['charname'], sub { my $C = shift; $C->charname })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token charspec { sub charspec__PEEK { $_[0]->_AUTOLEXpeek('charspec', $retree) } sub charspec { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE charspec"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "charspec", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'charspec_0') { $C->deb("Fate passed to charspec_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT charspec_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM charspec_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'charspec_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("charspec_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\]"; my $goalpos = $C; if (($C) = ($C->_EXACT("\[")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['charnames'], sub { my $C = shift; $C->charnames })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\]") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'character name', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; $C->_PATTERN(qr/\G\d++/) }, sub { my $C=shift; $C->_PATTERN(qr/\G[?-Z\\-_]/) }, sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; $C })) and ($C) = ($C->sorry("Unrecognized \\c character"))) { $C->cursor_incr() } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token backslash {*} sub backslash__PEEK { $_[0]->_AUTOLEXpeek('backslash:*',$retree); } sub backslash { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE backslash'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'backslash') { $C->deb("Fate passed to backslash: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT backslash'; } else { $x = 'ALTLTM backslash'; } } else { $x = 'ALTLTM backslash'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'backslash:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("backslash trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "backslash", @gather); }; @result; } ; ## token escape {*} sub escape__PEEK { $_[0]->_AUTOLEXpeek('escape:*',$retree); } sub escape { my $self = shift; my $subs; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact('RULE escape'); my $S = $C->{'_pos'}; my @result = do { my ($tag, $try); my @try; my $relex; my $x; if (my $fate = $C->{'_fate'}) { if ($fate->[1] eq 'escape') { $C->deb("Fate passed to escape: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT escape'; } else { $x = 'ALTLTM escape'; } } else { $x = 'ALTLTM escape'; } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'escape:*', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("escape trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, $C->$try(@_); last if @gather; last if $xact->[-2]; # committed? } $self->_MATCHIFYr($S, "escape", @gather); }; @result; } ; ## token starter { } sub starter__PEEK { $_[0]->_AUTOLEXpeek('starter', $retree) } sub starter { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE starter"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "starter", $C->_NOTBEFORE(sub { my $C=shift; $C })); } ; ## token escape:none { } sub escape__S_048none__PEEK { $_[0]->_AUTOLEXpeek('escape__S_048none', $retree) } sub escape__S_048none { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE escape__S_048none"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "none"; $self->_MATCHIFYr($S, "escape__S_048none", $C->_NOTBEFORE(sub { my $C=shift; $C })); } ; ## method nibble ($lang) sub nibble { no warnings 'recursion'; my $self = shift; die 'Required argument lang omitted' unless @_; my $lang = @_ ? shift() : undef; $self->cursor_fresh($lang)->nibbler}; ## token nibbler { sub nibbler__PEEK { $_[0]->_AUTOLEXpeek('nibbler', $retree) } sub nibbler { no warnings 'recursion'; my $self = shift; my $text = '';my $from = $self->{'_pos'};my $to = $from;my @nibbles = ();my $multiline = 0; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE nibbler"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'escape'} = []; $C->{'nibbler'} = []; $C->{'starter'} = []; $C->{'stopper'} = []; $self->_MATCHIFYr($S, "nibbler", do { my $C = $C; if (($C) = (scalar(do { $self->from = $self->{'_pos'}}, $C)) and ($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->{'stopper'} = []; $C->_SUBSUMEr(['stopper'], sub { my $C = shift; $C->stopper }) }))) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['starter'], sub { my $C = shift; $C->starter })) and ($C) = ($C->_SUBSUMEr(['nibbler'], sub { my $C = shift; $C->nibbler })) and ($C) = ($C->_SUBSUMEr(['stopper'], sub { my $C = shift; $C->stopper }))) { scalar(do { my $M = $C; { push @nibbles, $C->makestr(TEXT => $text, _from => $from, _pos => $to ) if $from != $to; my $n = $M->{'nibbler'}->[-1]->{'nibbles'}; my @n = @$n; push @nibbles, $M->{'starter'}; push @nibbles, @n; push @nibbles, $M->{'stopper'}; $text = ''; $to = $from = $C->{'_pos'}; }}, $C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->_SUBSUMEr(['escape'], sub { my $C = shift; $C->escape }))) { scalar(do { my $M = $C; { push @nibbles, $C->makestr(TEXT => $text, _from => $from, _pos => $to ) if $from != $to; push @nibbles, $M->{'escape'}->[-1]; $text = ''; $to = $from = $C->{'_pos'}; }}, $C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->cursor_incr())) { scalar(do { { my $ch = substr($::ORIG, $C->{'_pos'}-1, 1); $text .= $ch; $to = $C->{'_pos'}; if ($ch =~ "\n") { $multiline++}; }}, $C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } }))) { scalar(do { my $M = $C; { push @nibbles, $C->makestr(TEXT => $text, _from => $from, _pos => $to ) if $from != $to or !@nibbles; $M->{'nibbles'} = \@nibbles; $self->pos = $C->{'_pos'}; delete $M->{'nibbler'}; delete $M->{'escape'}; delete $M->{'starter'}; delete $M->{'stopper'}; $::LAST_NIBBLE = $C; $::LAST_NIBBLE_MULTILINE = $C if $multiline; }}, $C) } else { () } }); } ; ## token babble ($l) { sub babble__PEEK { $_[0]->_AUTOLEXpeek('babble', $retree) } sub babble { no warnings 'recursion'; my $self = shift; die 'Required argument l omitted' unless @_; my $l = @_ ? shift() : undef; my $lang = $l;my $start;my $stop; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE babble"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'quotepair'} = []; $self->_MATCHIFYr($S, "babble", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['quotepair'], sub { my $C = shift; $C->quotepair })) and ($C) = ($C->ws)) { scalar(do { my $M = $C; my $kv = $M->{'quotepair'}->[-1]; $lang = ($lang->tweak($kv->{'k'}, $kv->{'v'}) or $lang->sorry("Unrecognized adverb :" . $kv->{'k'} . '(' . $kv->{'v'} . ')')); }, $C) } else { () } }))) { ($C) } else { () } }))) { scalar(do { my $M = $C; ($start,$stop) = $C->peek_delimiters(); $lang = $start ne $stop ? $lang->balanced($start,$stop) : $lang->unbalanced($stop); $M->{'B'} = [$lang,$start,$stop]; }, $C) } else { () } }); } ; our @herestub_queue; { package STD::Herestub; use Moose ':all' => { -prefix => "moose_" }; use Encode; our $ALLROLES = { 'STD::Herestub', 1 }; our $REGEXES = { ALL => [ qw// ], }; no warnings 'qw', 'recursion'; my $retree; $DB::deep = $DB::deep = 1000; # suppress used-once warning use YAML::XS; $SIG{__WARN__} = sub { die @_," statement started at line ", 'STD::Cursor'->lineof($::LASTSTATE), " " } if $::DEBUG; moose_has 'delim' => (isa => 'Str', is => 'rw'); moose_has 'orignode' => (is => 'rw'); moose_has 'lang' => (is => 'rw'); 1; }; { package STD::herestop; use Moose::Role ':all' => { -prefix => "moose_" }; use Encode; our $ALLROLES = { 'STD::herestop', 1 }; our $REGEXES = { ALL => [ qw/stopper/ ], }; no warnings 'qw', 'recursion'; my $retree; $DB::deep = $DB::deep = 1000; # suppress used-once warning use YAML::XS; $SIG{__WARN__} = sub { die @_," statement started at line ", 'STD::Cursor'->lineof($::LASTSTATE), " " } if $::DEBUG; $retree = YAML::XS::Load(Encode::encode_utf8(<<'RETREE_END')); --- stopper: !!perl/hash:RE_ast dba: stopper dic: STD::herestop re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta text: ^^ - !!perl/hash:RE_block {} - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_paren re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_var var: $::DELIM - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unv rest: '' quant: - '?' - !!perl/hash:RE_meta text: $$ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \v quant: - '?' RETREE_END ## token stopper { ^^ {} $=(\h*?) $*DELIM \h* <.unv>?? $$ \v? } sub stopper__PEEK { $_[0]->_AUTOLEXpeek('stopper', $retree) } sub stopper { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE stopper"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "stopper", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G(?m:^)/)) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['ws'], sub { my $C = shift; $C->_PAREN( sub { my $C=shift; $C->_STARf(sub { my $C=shift; $C->_PATTERN(qr/\G[\x20\t\r]/) }) }) })) and ($C) = ($C->_EXACT($::DELIM)) and ($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+/))) { STD::LazyMap::lazymap(sub { my $C=shift; $C->_PATTERN(qr/\G(?m:$)\n?+/) }, $C->_OPTf(sub { my $C=shift; if (my ($C) = ($C->unv)) { ($C) } else { () } })) } else { () } }); } 1; }; ## method heredoc () sub heredoc { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm if $::DEBUG & DEBUG::trace_call; my $here = $self; while (my $herestub = shift @herestub_queue) { local $::DELIM = $herestub->delim; my $lang = $herestub->lang->mixin( 'STD::herestop' ); my $doc; if (($doc) = $here->nibble($lang)) { $here = $doc->trim_heredoc(); $herestub->orignode->{'doc'} = $doc; } else { $self->panic("Ending delimiter $::DELIM not found")}; } ; return $self->cursor($here->{'_pos'}); }; ## token quibble ($l) { sub quibble__PEEK { $_[0]->_AUTOLEXpeek('quibble', $retree) } sub quibble { no warnings 'recursion'; my $self = shift; die 'Required argument l omitted' unless @_; my $l = @_ ? shift() : undef; my ($lang, $start, $stop); local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quibble"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "quibble", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['babble'], sub { my $C = shift; $C->babble($l) })) and ($C) = (scalar(do { my $M = $C; my $B = $M->{'babble'}->{'B'}; ($lang,$start,$stop) = @$B; }, $C)) and ($C) = ($C->_EXACT($start)) and ($C) = ($C->_SUBSUMEr(['nibble'], sub { my $C = shift; $C->nibble($lang) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->_EXACT($stop))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Couldn't find terminator $stop"))) { ($C) } else { () } } }; @gather; } }))) { scalar(do { my $M = $C; { if ($lang->{'_herelang'}) { push @herestub_queue, 'STD::Herestub'->new( delim => $M->{'nibble'}->{'nibbles'}->[0]->{'TEXT'}, orignode => $C, lang => $lang->{'_herelang'}, )}}}, $C) } else { () } }); } ; ## token quotepair { sub quotepair__PEEK { $_[0]->_AUTOLEXpeek('quotepair', $retree) } sub quotepair { no warnings 'recursion'; my $self = shift; my $key;my $value; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quotepair"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'circumfix'} = []; $self->_MATCHIFYr($S, "quotepair", do { my $C = $C; if (($C) = ($C->_EXACT("\:")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'quotepair_0') { $C->deb("Fate passed to quotepair_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT quotepair_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM quotepair_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'quotepair_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("quotepair_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_EXACT("\!")) and ($C) = ($C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->sorry("Argument not allowed on negated pair"))) { $C->_SUBSUMEr(['circumfix'], sub { my $C = shift; $C->circumfix }) } else { () } }))) { ($C) } else { () } }))) { scalar(do { my $M = $C; $key = $M->{'identifier'}->Str; $value = 0; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier })) and ($C) = (scalar(do { my $M = $C; $key = $M->{'identifier'}->Str}, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['circumfix'], sub { my $C = shift; $C->circumfix }))) { scalar(do { my $M = $C; $value = $M->{'circumfix'}}, $C) } else { () } } } or $xact->[-2] or do { push @gather, scalar(do { $value = 1}, $C) }; @gather; } }))) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['n'], sub { my $C = shift; $C->_PAREN( sub { my $C=shift; $C->_PATTERN(qr/\G\d++/) }) })) and ($C) = ($C->_SUBSUMEr(['id'], sub { my $C = shift; $C->_PAREN( sub { my $C=shift; $C->_PATTERN(qr/\G(?:[a-z])++/) }) })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->sorry("2nd argument not allowed on pair"))) { $C->_SUBSUMEr(['circumfix'], sub { my $C = shift; $C->circumfix }) } else { () } }))) { ($C) } else { () } }))) { scalar(do { my $M = $C; $key = $M->{'id'}->Str; $value = $M->{'n'}->Str; }, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { scalar(do { my $M = $C; $M->{'k'} = $key; $M->{'v'} = $value; }, $C) } else { () } }); } ; ## token quote:sym<' '> { :dba('single quotes') "'" ~ "'" ).tweak( sub quote__S_049Single_Single__PEEK { $_[0]->_AUTOLEXpeek('quote__S_049Single_Single', $retree) } sub quote__S_049Single_Single { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_049Single_Single"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\'\ \'"; $self->_MATCHIFYr($S, "quote__S_049Single_Single", $C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\'"; my $goalpos = $C; my $newlang = $C->unbalanced($::GOAL); $C = bless($C, (ref($newlang) || $newlang)); if (($C) = ($C->_EXACT("\'")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['nibble'], sub { my $C = shift; $C->nibble($C->cursor_fresh( $::LANG{'Q'} )->tweak('q' => 1)->unbalanced("'")) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\'") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'single quotes', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })); } ; ## token quote:sym<" "> { :dba('double quotes') '"' ~ '"' ).tweak( sub quote__S_050Double_Double__PEEK { $_[0]->_AUTOLEXpeek('quote__S_050Double_Double', $retree) } sub quote__S_050Double_Double { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_050Double_Double"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\"\ \""; $self->_MATCHIFYr($S, "quote__S_050Double_Double", $C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\""; my $goalpos = $C; my $newlang = $C->unbalanced($::GOAL); $C = bless($C, (ref($newlang) || $newlang)); if (($C) = ($C->_EXACT("\"")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['nibble'], sub { my $C = shift; $C->nibble($C->cursor_fresh( $::LANG{'Q'} )->tweak('qq' => 1)->unbalanced('"')) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\"") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'double quotes', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })); } ; ## token circumfix:sym<« »> { :dba('shell-quote words') '«' ~ '»' sub circumfix__S_051Fre_Nch__PEEK { $_[0]->_AUTOLEXpeek('circumfix__S_051Fre_Nch', $retree) } sub circumfix__S_051Fre_Nch { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE circumfix__S_051Fre_Nch"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "«\ »"; $self->_MATCHIFYr($S, "circumfix__S_051Fre_Nch", $C->_BRACKETr(sub { my $C=shift; local $::GOAL = "»"; my $goalpos = $C; my $newlang = $C->unbalanced($::GOAL); $C = bless($C, (ref($newlang) || $newlang)); if (($C) = ($C->_EXACT("«")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['nibble'], sub { my $C = shift; $C->nibble($C->cursor_fresh( $::LANG{'Q'} )->tweak('qq' => 1)->tweak('ww' => 1)->balanced('«','»')) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("»") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'shell-quote words', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })); } ; ## token circumfix:sym«<< >>» { :dba('shell-quote words') '<<' ~ '>>' _AUTOLEXpeek('circumfix__S_052LtLt_GtGt', $retree) } sub circumfix__S_052LtLt_GtGt { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE circumfix__S_052LtLt_GtGt"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\<\<\ \>\>"; $self->_MATCHIFYr($S, "circumfix__S_052LtLt_GtGt", $C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\>\>"; my $goalpos = $C; my $newlang = $C->unbalanced($::GOAL); $C = bless($C, (ref($newlang) || $newlang)); if (($C) = ($C->_EXACT("\<\<")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['nibble'], sub { my $C = shift; $C->nibble($C->cursor_fresh( $::LANG{'Q'} )->tweak('qq' => 1)->tweak('ww' => 1)->balanced('<<','>>')) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\>\>") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'shell-quote words', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })); } ; ## token circumfix:sym«< >» { :dba('quote words') '<' ~ '>' sub circumfix__S_053Lt_Gt__PEEK { $_[0]->_AUTOLEXpeek('circumfix__S_053Lt_Gt', $retree) } sub circumfix__S_053Lt_Gt { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE circumfix__S_053Lt_Gt"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\<\ \>"; $self->_MATCHIFYr($S, "circumfix__S_053Lt_Gt", $C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\>"; my $goalpos = $C; my $newlang = $C->unbalanced($::GOAL); $C = bless($C, (ref($newlang) || $newlang)); if (($C) = ($C->_EXACT("\<")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("STDIN\>") }))) { ($C) } else { () } })) and ($C) = ($C->obs('', '$' . '*IN.lines'))) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\>") }))) { ($C) } else { () } })) and ($C) = ($C->obs('<>', "lines() to read input,\n or ('') to represent the null string,\n or () to represent Nil"))) { $C } else { () } }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['nibble'], sub { my $C = shift; $C->nibble($C->cursor_fresh( $::LANG{'Q'} )->tweak('q' => 1)->tweak('w' => 1)->balanced('<','>')) }) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\>") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'quote words', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })); } ; ## token ws { sub ws__PEEK { $_[0]->_AUTOLEXpeek('ws', $retree) } sub ws { no warnings 'recursion'; my $self = shift; local $::STUB = $::STUB = return $self if exists $::MEMOS[$self->{'_pos'}]->{'ws'};my $startpos = $self->{'_pos'};local $::HIGHEXPECT = { }; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE ws"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "ws", do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'ws_0') { $C->deb("Fate passed to ws_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT ws_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM ws_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'ws_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("ws_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\G[\x20\t\r]++/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; $C->_PATTERN(qr/\G[\#\s\\]/) }))) { scalar(do { $::MEMOS[$C->{'_pos'}]->{'ws'} = $startpos}, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\w/) }))) { ($C) } else { () } })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->after(sub { my $C=shift; $C->_PATTERN(qr/\G(?<=\w)/) }))) { ($C) } else { () } })) and ($C) = ($C->_COMMITRULE()) and ($C) = (scalar(do { delete $::MEMOS[$startpos]->{'ws'}}, $C)) and ($C) = ($C->sorry("Whitespace is required between alphanumeric tokens"))) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'ws_1') { $C->deb("Fate passed to ws_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT ws_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM ws_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'ws_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("ws_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } }, sub { my $C=shift; if (($C) = ($C->vws) and ($C) = ($C->heredoc)) { $C } else { () } }, sub { my $C=shift; if (my ($C) = ($C->unv)) { ($C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_PATTERN(qr/\G\z/))) { scalar(do { $C->moreinput }, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } }))) { scalar(do { { if (($C->{'_pos'} == $startpos)) { delete $::MEMOS[$C->{'_pos'}]->{'ws'}} else { $::MEMOS[$C->{'_pos'}]->{'ws'} = $startpos; $::MEMOS[$C->{'_pos'}]->{'endstmt'} = $::MEMOS[$startpos]->{'endstmt'} if exists $::MEMOS[$startpos]->{'endstmt'}; }}}, $C) } else { () } } }; @gather; }); } ; ## token unsp { sub unsp__PEEK { $_[0]->_AUTOLEXpeek('unsp', $retree) } sub unsp { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE unsp"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "unsp", do { my $C = $C; if (($C) = ($C->_EXACT("\\")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'unsp_0') { $C->deb("Fate passed to unsp_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT unsp_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM unsp_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'unsp_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("unsp_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\#") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } }))) { ($C) } else { () } }))) { $C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'unsp_1') { $C->deb("Fate passed to unsp_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT unsp_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM unsp_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'unsp_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("unsp_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->vws)) { ($C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->unv)) { ($C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_PATTERN(qr/\G\z/))) { scalar(do { $C->moreinput }, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } }) } else { () } }); } ; ## token vws { sub vws__PEEK { $_[0]->_AUTOLEXpeek('vws', $retree) } sub vws { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE vws"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "vws", $C->_PLUSr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'vws_0') { $C->deb("Fate passed to vws_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT vws_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM vws_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'vws_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("vws_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\n/) }, sub { my $C=shift; if (($C) = ($C->_EXACT("\#DEBUG\ \-1")) and ($C) = (scalar(do { say "DEBUG"; $::DEBUG = -1; }, $C))) { $C->_PATTERN(qr/\G[^\n]*+\n/) } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("\<\<\<\<\<\<\<")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; STD::LazyMap::lazymap(sub { my $C=shift; $C->_PATTERN(qr/\G\n\=\=\=\=\=\=\=/) }, $C->_SCANf()) }))) { STD::LazyMap::lazymap(sub { my $C=shift; $C->_PATTERN(qr/\G\n\>\>\>\>\>\>\>/) }, $C->_SCANf()) } else { () } })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->sorry('Found a version control conflict marker'))) { $C->_PATTERN(qr/\G[^\n]*+\n/) } else { () } }, sub { my $C=shift; if (my ($C) = (do { my $C = $C; if (($C) = ($C->_EXACT("\=\=\=\=\=\=\=")) and ($C) = ($C->_COMMITLTM())) { STD::LazyMap::lazymap(sub { my $C=shift; $C->_PATTERN(qr/\G\n\>\>\>\>\>\>\>[^\n]*+\n/) }, $C->_SCANf()) } else { () } })) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }) }))) { ($C) } else { () } })); } ; ## method moreinput () sub moreinput { no warnings 'recursion'; my $self = shift; $::moreinput->() if $::moreinput; $self; }; ## token unv { sub unv__PEEK { $_[0]->_AUTOLEXpeek('unv', $retree) } sub unv { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE unv"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "unv", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'unv_0') { $C->deb("Fate passed to unv_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT unv_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM unv_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'unv_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("unv_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G[\x20\t\r]++/) }, sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+\=/)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'unv_1') { $C->deb("Fate passed to unv_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT unv_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM unv_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'unv_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("unv_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\w/) }, sub { my $C=shift; $C->_EXACT("\\") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }; }))) { ($C) } else { () } })) and ($C) = ($C->_PATTERN(qr/\G(?m:^)/)) and ($C) = ($C->pod_comment)) { $C } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+/))) { $C->_SUBSUMEr(['comment'], sub { my $C = shift; $C->comment }) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token comment:sym<#`(...)> { sub comment__S_054SharpGraveParenDotDotDotThesis__PEEK { $_[0]->_AUTOLEXpeek('comment__S_054SharpGraveParenDotDotDotThesis', $retree) } sub comment__S_054SharpGraveParenDotDotDotThesis { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE comment__S_054SharpGraveParenDotDotDotThesis"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\#\`\(\.\.\.\)"; $self->_MATCHIFYr($S, "comment__S_054SharpGraveParenDotDotDotThesis", do { my $C = $C; if (($C) = ($C->_EXACT("\#\`")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->opener)) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Opening bracket is required for #` comment"))) { ($C) } else { () } } }; @gather; } })) and ($C) = ($C->quibble($C->cursor_fresh( $::LANG{'Q'} )))) { $C } else { () } }); } ; ## token comment:sym<#(...)> { sub comment__S_055SharpParenDotDotDotThesis__PEEK { $_[0]->_AUTOLEXpeek('comment__S_055SharpParenDotDotDotThesis', $retree) } sub comment__S_055SharpParenDotDotDotThesis { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE comment__S_055SharpParenDotDotDotThesis"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\#\(\.\.\.\)"; $self->_MATCHIFYr($S, "comment__S_055SharpParenDotDotDotThesis", do { my $C = $C; if (($C) = ($C->_EXACT("\#")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->opener)) { ($C) } else { () } })) and ($C) = ($C->suppose(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble($C->cursor_fresh( $::LANG{'Q'} )) })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G(?:[,;:])*+[\x20\t\r]*+/)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'comment__S_055SharpParenDotDotDotThesis_0') { $C->deb("Fate passed to comment__S_055SharpParenDotDotDotThesis_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT comment__S_055SharpParenDotDotDotThesis_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM comment__S_055SharpParenDotDotDotThesis_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'comment__S_055SharpParenDotDotDotThesis_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("comment__S_055SharpParenDotDotDotThesis_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\#") }, sub { my $C=shift; $C->_PATTERN(qr/\G(?m:$)/) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }; }))) { ($C) } else { () } }))) { $C } else { () } }; })) and ($C) = ($C->worry("Embedded comment seems to be missing backtick")) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; $C }))) { $C } else { () } }); } ; ## token comment:sym<#=(...)> { sub comment__S_056SharpEqualParenDotDotDotThesis__PEEK { $_[0]->_AUTOLEXpeek('comment__S_056SharpEqualParenDotDotDotThesis', $retree) } sub comment__S_056SharpEqualParenDotDotDotThesis { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE comment__S_056SharpEqualParenDotDotDotThesis"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\#\=\(\.\.\.\)"; $self->_MATCHIFYr($S, "comment__S_056SharpEqualParenDotDotDotThesis", do { my $C = $C; if (($C) = ($C->_EXACT("\#\=")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->opener)) { ($C) } else { () } })) and ($C) = ($C->_COMMITLTM())) { $C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble($C->cursor_fresh( $::LANG{'Q'} )) }) } else { () } }); } ; ## token comment:sym<#=> { sub comment__S_057SharpEqual__PEEK { $_[0]->_AUTOLEXpeek('comment__S_057SharpEqual', $retree) } sub comment__S_057SharpEqual { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE comment__S_057SharpEqual"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\#\="; $self->_MATCHIFYr($S, "comment__S_057SharpEqual", do { my $C = $C; if (($C) = ($C->_EXACT("\#\=")) and ($C) = ($C->_COMMITLTM())) { $C->_SUBSUMEr(['attachment'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; $C->_STARr(sub { my $C=shift; $C->_NOTCHAR( sub { my $C=shift; $C->_EXACT("\n") }) }) }) }) } else { () } }); } ; ## token comment:sym<#> { sub comment__S_058Sharp__PEEK { $_[0]->_AUTOLEXpeek('comment__S_058Sharp', $retree) } sub comment__S_058Sharp { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE comment__S_058Sharp"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\#"; $self->_MATCHIFYr($S, "comment__S_058Sharp", do { my $C = $C; if (($C) = ($C->_EXACT("\#")) and ($C) = (scalar(do { }, $C))) { $C->_STARr(sub { my $C=shift; $C->_NOTCHAR( sub { my $C=shift; $C->_EXACT("\n") }) }) } else { () } }); } ; ## token ident { sub ident__PEEK { $_[0]->_AUTOLEXpeek('ident', $retree) } sub ident { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE ident"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "ident", $C->_PATTERN(qr/\G[_[:alpha:]]\w*+/)); } ; ## token apostrophe { sub apostrophe__PEEK { $_[0]->_AUTOLEXpeek('apostrophe', $retree) } sub apostrophe { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE apostrophe"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "apostrophe", $C->_PATTERN(qr/\G['\-]/)); } ; ## token identifier { sub identifier__PEEK { $_[0]->_AUTOLEXpeek('identifier', $retree) } sub identifier { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE identifier"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "identifier", do { if (my ($C) = ($C->ident)) { $C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->apostrophe) and ($C) = ($C->ident)) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token pod_comment { sub pod_comment__PEEK { $_[0]->_AUTOLEXpeek('pod_comment', $retree) } sub pod_comment { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE pod_comment"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "pod_comment", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G(?m:^)[\x20\t\r]*+\=/)) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'pod_comment_0') { $C->deb("Fate passed to pod_comment_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT pod_comment_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM pod_comment_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'pod_comment_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("pod_comment_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\Gbegin[\x20\t\r]++/)) and ($C) = ($C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier })) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = (STD::LazyMap::lazymap(sub { my $C=shift; if (($C) = ($C->_EXACT("\n")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+\=/)) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } })) and ($C) = ($C->_PATTERN(qr/\Gend[\x20\t\r]++/)) and ($C) = ($C->_BACKREFn('identifier')) and ($C) = ($C->_PATTERN(qr/\G\b/))) { $C->_STARr(sub { my $C=shift; $C->_NOTCHAR( sub { my $C=shift; $C->_EXACT("\n") }) }) } else { () } }))) { $C } else { () } }, $C->_SCANf()))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { my $M = $C; $M->{'identifier'}->Str eq 'END'}) }))) { $C->_STARr(sub { my $C=shift; $C->cursor_incr() }) } else { () } } } or $xact->[-2] or do { push @gather, scalar(do { my $M = $C; my $id = $M->{'identifier'}->Str; $self->panic("=begin $id without matching =end $id"); }, $C) }; @gather; } }))) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\Gbegin\b/)) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+/)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_PATTERN(qr/\G(?m:$)/) } or $xact->[-2] or do { push @gather, $C->_EXACT("\#") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->sorry("Unrecognized token after =begin"))) { $C->_STARr(sub { my $C=shift; $C->_NOTCHAR( sub { my $C=shift; $C->_EXACT("\n") }) }) } else { () } } }; @gather; } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = (STD::LazyMap::lazymap(sub { my $C=shift; if (($C) = ($C->_EXACT("\n")) and ($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+\=/)) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } })) and ($C) = ($C->_PATTERN(qr/\Gend\b/))) { $C->_STARr(sub { my $C=shift; $C->_NOTCHAR( sub { my $C=shift; $C->_EXACT("\n") }) }) } else { () } }, $C->_SCANf()))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, scalar(do { $self->panic("=begin without matching =end")}, $C) }; @gather; } }))) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\Gfor\b/)) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+/)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier }) } or $xact->[-2] or do { push @gather, $C->_PATTERN(qr/\G(?m:$)/) } or $xact->[-2] or do { push @gather, $C->_EXACT("\#") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->sorry("Unrecognized token after =for"))) { $C->_STARr(sub { my $C=shift; $C->_NOTCHAR( sub { my $C=shift; $C->_EXACT("\n") }) }) } else { () } } }; @gather; } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = (STD::LazyMap::lazymap(sub { my $C=shift; $C->_PATTERN(qr/\G(?m:^)[\x20\t\r]*+(?m:$)/) }, $C->_SCANf()))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, $C->_STARr(sub { my $C=shift; $C->cursor_incr() }) }; @gather; } }))) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_COMMITLTM()) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (STD::LazyMap::lazymap(sub { my $C=shift; $C->_PATTERN(qr/\G(?m:^)\=cut\b/) }, $C->_SCANf()))) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->panic("Obsolescent pod format, please use =begin/=end instead"))) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_PATTERN(qr/\G[_[:alpha:]]/) } or $xact->[-2] or do { push @gather, $C->_PATTERN(qr/\G\s/) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->sorry("Illegal pod directive"))) { ($C) } else { () } } }; @gather; } }))) { $C->_STARr(sub { my $C=shift; $C->_NOTCHAR( sub { my $C=shift; $C->_EXACT("\n") }) }) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token embeddedblock { sub embeddedblock__PEEK { $_[0]->_AUTOLEXpeek('embeddedblock', $retree) } sub embeddedblock { no warnings 'recursion'; my $self = shift; local %::LANG = %::LANG;local $::SIGNUM;local $::GOAL = '}';local $::CURLEX = $::CURLEX; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE embeddedblock"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "embeddedblock", do { my $C = $C; if (($C) = ($C->newlex) and ($C) = ($C->finishlex) and ($C) = ($C->_EXACT("\{")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->_BRACKETr(sub { my $C=shift; my $newlang = ($::LANG{'MAIN'}); $C = bless($C, (ref($newlang) || $newlang)); $C->_SUBSUMEr(['statementlist'], sub { my $C = shift; $C->statementlist }) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\}") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Unable to parse statement list; couldn't find right brace"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token binints { [<.ws><.ws>] ** ',' } sub binints__PEEK { $_[0]->_AUTOLEXpeek('binints', $retree) } sub binints { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE binints"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'binint'} = []; $self->_MATCHIFYr($S, "binints", $C->_REPSEPr( sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['binint'], sub { my $C = shift; $C->binint })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })); } ; ## token binint { sub binint__PEEK { $_[0]->_AUTOLEXpeek('binint', $retree) } sub binint { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE binint"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "binint", do { if (my ($C) = ($C->_PATTERN(qr/\G(?:[0-1])++/))) { $C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G_(?:[0-1])++/) }))) { ($C) } else { () } }) } else { () } }); } ; ## token octints { [<.ws><.ws>] ** ',' } sub octints__PEEK { $_[0]->_AUTOLEXpeek('octints', $retree) } sub octints { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE octints"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'octint'} = []; $self->_MATCHIFYr($S, "octints", $C->_REPSEPr( sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['octint'], sub { my $C = shift; $C->octint })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })); } ; ## token octint { sub octint__PEEK { $_[0]->_AUTOLEXpeek('octint', $retree) } sub octint { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE octint"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "octint", do { if (my ($C) = ($C->_PATTERN(qr/\G(?:[0-7])++/))) { $C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G_(?:[0-7])++/) }))) { ($C) } else { () } }) } else { () } }); } ; ## token hexints { [<.ws><.ws>] ** ',' } sub hexints__PEEK { $_[0]->_AUTOLEXpeek('hexints', $retree) } sub hexints { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE hexints"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'hexint'} = []; $self->_MATCHIFYr($S, "hexints", $C->_REPSEPr( sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['hexint'], sub { my $C = shift; $C->hexint })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })); } ; ## token hexint { sub hexint__PEEK { $_[0]->_AUTOLEXpeek('hexint', $retree) } sub hexint { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE hexint"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "hexint", do { if (my ($C) = ($C->_PATTERN(qr/\G(?:[0-9a-fA-F])++/))) { $C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G_(?:[0-9a-fA-F])++/) }))) { ($C) } else { () } }) } else { () } }); } ; ## token decints { [<.ws><.ws>] ** ',' } sub decints__PEEK { $_[0]->_AUTOLEXpeek('decints', $retree) } sub decints { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE decints"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'decint'} = []; $self->_MATCHIFYr($S, "decints", $C->_REPSEPr( sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['decint'], sub { my $C = shift; $C->decint })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })); } ; ## token decint { sub decint__PEEK { $_[0]->_AUTOLEXpeek('decint', $retree) } sub decint { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE decint"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "decint", do { if (my ($C) = ($C->_PATTERN(qr/\G\d++/))) { $C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G_\d++/) }))) { ($C) } else { () } }) } else { () } }); } ; ## token integer { sub integer__PEEK { $_[0]->_AUTOLEXpeek('integer', $retree) } sub integer { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE integer"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "integer", do { my $C = $C; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'integer_0') { $C->deb("Fate passed to integer_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT integer_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM integer_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'integer_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("integer_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_EXACT("0")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'integer_1') { $C->deb("Fate passed to integer_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT integer_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM integer_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'integer_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("integer_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_PATTERN(qr/\Gb_?+/))) { $C->_SUBSUMEr(['binint'], sub { my $C = shift; $C->binint }) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_PATTERN(qr/\Go_?+/))) { $C->_SUBSUMEr(['octint'], sub { my $C = shift; $C->octint }) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_PATTERN(qr/\Gx_?+/))) { $C->_SUBSUMEr(['hexint'], sub { my $C = shift; $C->hexint }) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_PATTERN(qr/\Gd_?+/))) { $C->_SUBSUMEr(['decint'], sub { my $C = shift; $C->decint }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['decint'], sub { my $C = shift; $C->decint })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->_NOTBEFORE(sub { my $C=shift; (($C) x !!do { my $M = $C; $C->worry("Leading 0 does not indicate octal in Perl 6; please use 0o" . $M->{'decint'}->Str . " if you mean that") }) }))) { ($C) } else { () } }))) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }, sub { my $C=shift; $C->_SUBSUMEr(['decint'], sub { my $C = shift; $C->decint }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_EXACT("\.")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->{'terminator'} = []; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'integer_2') { $C->deb("Fate passed to integer_2: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT integer_2'; # some outer ltm is controlling us } else { $x = 'ALTLTM integer_2'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'integer_2', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("integer_2 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->sorry("Decimal point must be followed by digit"))) { $C } else { () } }))) { ($C) } else { () } }) }))) { ($C) } else { () } }))) { ($C) } else { () } }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G__++\d/) }))) { ($C) } else { () } })) and ($C) = ($C->sorry("Only isolated underscores are allowed inside numbers"))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token radint { sub radint__PEEK { $_[0]->_AUTOLEXpeek('radint', $retree) } sub radint { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE radint"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "radint", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'radint_0') { $C->deb("Fate passed to radint_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT radint_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM radint_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'radint_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("radint_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_SUBSUMEr(['integer'], sub { my $C = shift; $C->integer }) }, sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\:\d/) }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['rad_number'], sub { my $C = shift; $C->rad_number })) and ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { my $M = $C; defined $M->{'rad_number'}->{'intpart'} and not defined $M->{'rad_number'}->{'fracpart'} }) }))) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token escale { sub escale__PEEK { $_[0]->_AUTOLEXpeek('escale', $retree) } sub escale { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE escale"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "escale", do { if (my ($C) = ($C->_PATTERN(qr/\G[Ee](?:[+\-])?+/))) { $C->_SUBSUMEr(['decint'], sub { my $C = shift; $C->decint }) } else { () } }); } ; ## token dec_number { sub dec_number__PEEK { $_[0]->_AUTOLEXpeek('dec_number', $retree) } sub dec_number { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE dec_number"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'escale'} = []; $self->_MATCHIFYr($S, "dec_number", do { my $C = $C; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'dec_number_0') { $C->deb("Fate passed to dec_number_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT dec_number_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM dec_number_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'dec_number_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("dec_number_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['coeff'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->_EXACT("\."))) { $C->_SUBSUMEr(['frac'], sub { my $C = shift; $C->decint }) } else { () } }) }))) { $C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['escale'], sub { my $C = shift; $C->escale }) }) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['coeff'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['int'], sub { my $C = shift; $C->decint })) and ($C) = ($C->_EXACT("\."))) { $C->_SUBSUMEr(['frac'], sub { my $C = shift; $C->decint }) } else { () } }) }))) { $C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['escale'], sub { my $C = shift; $C->escale }) }) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['coeff'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; $C->_SUBSUMEr(['int'], sub { my $C = shift; $C->decint }) }) }))) { $C->_SUBSUMEr(['escale'], sub { my $C = shift; $C->escale }) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\.\d/) }))) { ($C) } else { () } })) and ($C) = ($C->sorry("Number contains two decimal points (missing 'v' for version number?)"))) { $C->_PLUSr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G\.\d++/) }))) { ($C) } else { () } }) } else { () } }))) { ($C) } else { () } }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G__++\d/) }))) { ($C) } else { () } })) and ($C) = ($C->sorry("Only isolated underscores are allowed inside numbers"))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token alnumint { sub alnumint__PEEK { $_[0]->_AUTOLEXpeek('alnumint', $retree) } sub alnumint { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE alnumint"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "alnumint", $C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->_PATTERN(qr/\G(?:[0-9a-zA-Z])++/))) { $C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G_(?:[0-9a-zA-Z])++/) }))) { ($C) } else { () } }) } else { () } })); } ; ## token rad_number { sub rad_number__PEEK { $_[0]->_AUTOLEXpeek('rad_number', $retree) } sub rad_number { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE rad_number"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'base'} = []; $C->{'exp'} = []; $self->_MATCHIFYr($S, "rad_number", do { my $C = $C; if (($C) = ($C->_EXACT("\:")) and ($C) = ($C->_SUBSUMEr(['radix'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G\d++/) }) })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } })) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->_EXACT("\<")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'rad_number_0') { $C->deb("Fate passed to rad_number_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT rad_number_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM rad_number_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD', 'rad_number_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("rad_number_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_SUBSUMEr(['coeff'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->_EXACT("\."))) { $C->_SUBSUMEr(['frac'], sub { my $C = shift; $C->alnumint }) } else { () } }) }) }, sub { my $C=shift; $C->_SUBSUMEr(['coeff'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['int'], sub { my $C = shift; $C->alnumint })) and ($C) = ($C->_EXACT("\."))) { $C->_SUBSUMEr(['frac'], sub { my $C = shift; $C->alnumint }) } else { () } }) }) }, sub { my $C=shift; $C->_SUBSUMEr(['coeff'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; $C->_SUBSUMEr(['int'], sub { my $C = shift; $C->alnumint }) }) }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_EXACT("\*")) and ($C) = ($C->_SUBSUMEr(['base'], sub { my $C = shift; $C->radint })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->_EXACT("\*\*"))) { $C->_SUBSUMEr(['exp'], sub { my $C = shift; $C->radint }) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->sorry("Base is missing ** exponent part"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } }))) { $C->_EXACT("\>") } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\[") }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['circumfix'], sub { my $C = shift; $C->circumfix }) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['circumfix'], sub { my $C = shift; $C->circumfix }) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Malformed radix number"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token terminator:sym<)> sub terminator__S_059Thesis__PEEK { $_[0]->_AUTOLEXpeek('terminator__S_059Thesis', $retree) } sub terminator__S_059Thesis { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE terminator__S_059Thesis"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\)"; $self->_MATCHIFYr($S, "terminator__S_059Thesis", do { if (my ($C) = ($C->_EXACT("\)"))) { $C->_SUBSUMEr(['O'], sub { my $C = shift; $C->O(%terminator) }) } else { () } }); } ; ## token terminator:sym<]> sub terminator__S_060Ket__PEEK { $_[0]->_AUTOLEXpeek('terminator__S_060Ket', $retree) } sub terminator__S_060Ket { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE terminator__S_060Ket"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\]"; $self->_MATCHIFYr($S, "terminator__S_060Ket", do { if (my ($C) = ($C->_EXACT("\]"))) { $C->_SUBSUMEr(['O'], sub { my $C = shift; $C->O(%terminator) }) } else { () } }); } ; ## token terminator:sym<}> sub terminator__S_061Ly__PEEK { $_[0]->_AUTOLEXpeek('terminator__S_061Ly', $retree) } sub terminator__S_061Ly { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE terminator__S_061Ly"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\}"; $self->_MATCHIFYr($S, "terminator__S_061Ly", do { if (my ($C) = ($C->_EXACT("\}"))) { $C->_SUBSUMEr(['O'], sub { my $C = shift; $C->O(%terminator) }) } else { () } }); } ; our %open2close = ( "\x{0028}" => "\x{0029}", "\x{003C}" => "\x{003E}", "\x{005B}" => "\x{005D}", "\x{007B}" => "\x{007D}", "\x{00AB}" => "\x{00BB}", "\x{0F3A}" => "\x{0F3B}", "\x{0F3C}" => "\x{0F3D}", "\x{169B}" => "\x{169C}", "\x{2018}" => "\x{2019}", "\x{201A}" => "\x{2019}", "\x{201B}" => "\x{2019}", "\x{201C}" => "\x{201D}", "\x{201E}" => "\x{201D}", "\x{201F}" => "\x{201D}", "\x{2039}" => "\x{203A}", "\x{2045}" => "\x{2046}", "\x{207D}" => "\x{207E}", "\x{208D}" => "\x{208E}", "\x{2208}" => "\x{220B}", "\x{2209}" => "\x{220C}", "\x{220A}" => "\x{220D}", "\x{2215}" => "\x{29F5}", "\x{223C}" => "\x{223D}", "\x{2243}" => "\x{22CD}", "\x{2252}" => "\x{2253}", "\x{2254}" => "\x{2255}", "\x{2264}" => "\x{2265}", "\x{2266}" => "\x{2267}", "\x{2268}" => "\x{2269}", "\x{226A}" => "\x{226B}", "\x{226E}" => "\x{226F}", "\x{2270}" => "\x{2271}", "\x{2272}" => "\x{2273}", "\x{2274}" => "\x{2275}", "\x{2276}" => "\x{2277}", "\x{2278}" => "\x{2279}", "\x{227A}" => "\x{227B}", "\x{227C}" => "\x{227D}", "\x{227E}" => "\x{227F}", "\x{2280}" => "\x{2281}", "\x{2282}" => "\x{2283}", "\x{2284}" => "\x{2285}", "\x{2286}" => "\x{2287}", "\x{2288}" => "\x{2289}", "\x{228A}" => "\x{228B}", "\x{228F}" => "\x{2290}", "\x{2291}" => "\x{2292}", "\x{2298}" => "\x{29B8}", "\x{22A2}" => "\x{22A3}", "\x{22A6}" => "\x{2ADE}", "\x{22A8}" => "\x{2AE4}", "\x{22A9}" => "\x{2AE3}", "\x{22AB}" => "\x{2AE5}", "\x{22B0}" => "\x{22B1}", "\x{22B2}" => "\x{22B3}", "\x{22B4}" => "\x{22B5}", "\x{22B6}" => "\x{22B7}", "\x{22C9}" => "\x{22CA}", "\x{22CB}" => "\x{22CC}", "\x{22D0}" => "\x{22D1}", "\x{22D6}" => "\x{22D7}", "\x{22D8}" => "\x{22D9}", "\x{22DA}" => "\x{22DB}", "\x{22DC}" => "\x{22DD}", "\x{22DE}" => "\x{22DF}", "\x{22E0}" => "\x{22E1}", "\x{22E2}" => "\x{22E3}", "\x{22E4}" => "\x{22E5}", "\x{22E6}" => "\x{22E7}", "\x{22E8}" => "\x{22E9}", "\x{22EA}" => "\x{22EB}", "\x{22EC}" => "\x{22ED}", "\x{22F0}" => "\x{22F1}", "\x{22F2}" => "\x{22FA}", "\x{22F3}" => "\x{22FB}", "\x{22F4}" => "\x{22FC}", "\x{22F6}" => "\x{22FD}", "\x{22F7}" => "\x{22FE}", "\x{2308}" => "\x{2309}", "\x{230A}" => "\x{230B}", "\x{2329}" => "\x{232A}", "\x{23B4}" => "\x{23B5}", "\x{2768}" => "\x{2769}", "\x{276A}" => "\x{276B}", "\x{276C}" => "\x{276D}", "\x{276E}" => "\x{276F}", "\x{2770}" => "\x{2771}", "\x{2772}" => "\x{2773}", "\x{2774}" => "\x{2775}", "\x{27C3}" => "\x{27C4}", "\x{27C5}" => "\x{27C6}", "\x{27D5}" => "\x{27D6}", "\x{27DD}" => "\x{27DE}", "\x{27E2}" => "\x{27E3}", "\x{27E4}" => "\x{27E5}", "\x{27E6}" => "\x{27E7}", "\x{27E8}" => "\x{27E9}", "\x{27EA}" => "\x{27EB}", "\x{2983}" => "\x{2984}", "\x{2985}" => "\x{2986}", "\x{2987}" => "\x{2988}", "\x{2989}" => "\x{298A}", "\x{298B}" => "\x{298C}", "\x{298D}" => "\x{298E}", "\x{298F}" => "\x{2990}", "\x{2991}" => "\x{2992}", "\x{2993}" => "\x{2994}", "\x{2995}" => "\x{2996}", "\x{2997}" => "\x{2998}", "\x{29C0}" => "\x{29C1}", "\x{29C4}" => "\x{29C5}", "\x{29CF}" => "\x{29D0}", "\x{29D1}" => "\x{29D2}", "\x{29D4}" => "\x{29D5}", "\x{29D8}" => "\x{29D9}", "\x{29DA}" => "\x{29DB}", "\x{29F8}" => "\x{29F9}", "\x{29FC}" => "\x{29FD}", "\x{2A2B}" => "\x{2A2C}", "\x{2A2D}" => "\x{2A2E}", "\x{2A34}" => "\x{2A35}", "\x{2A3C}" => "\x{2A3D}", "\x{2A64}" => "\x{2A65}", "\x{2A79}" => "\x{2A7A}", "\x{2A7D}" => "\x{2A7E}", "\x{2A7F}" => "\x{2A80}", "\x{2A81}" => "\x{2A82}", "\x{2A83}" => "\x{2A84}", "\x{2A8B}" => "\x{2A8C}", "\x{2A91}" => "\x{2A92}", "\x{2A93}" => "\x{2A94}", "\x{2A95}" => "\x{2A96}", "\x{2A97}" => "\x{2A98}", "\x{2A99}" => "\x{2A9A}", "\x{2A9B}" => "\x{2A9C}", "\x{2AA1}" => "\x{2AA2}", "\x{2AA6}" => "\x{2AA7}", "\x{2AA8}" => "\x{2AA9}", "\x{2AAA}" => "\x{2AAB}", "\x{2AAC}" => "\x{2AAD}", "\x{2AAF}" => "\x{2AB0}", "\x{2AB3}" => "\x{2AB4}", "\x{2ABB}" => "\x{2ABC}", "\x{2ABD}" => "\x{2ABE}", "\x{2ABF}" => "\x{2AC0}", "\x{2AC1}" => "\x{2AC2}", "\x{2AC3}" => "\x{2AC4}", "\x{2AC5}" => "\x{2AC6}", "\x{2ACD}" => "\x{2ACE}", "\x{2ACF}" => "\x{2AD0}", "\x{2AD1}" => "\x{2AD2}", "\x{2AD3}" => "\x{2AD4}", "\x{2AD5}" => "\x{2AD6}", "\x{2AEC}" => "\x{2AED}", "\x{2AF7}" => "\x{2AF8}", "\x{2AF9}" => "\x{2AFA}", "\x{2E02}" => "\x{2E03}", "\x{2E04}" => "\x{2E05}", "\x{2E09}" => "\x{2E0A}", "\x{2E0C}" => "\x{2E0D}", "\x{2E1C}" => "\x{2E1D}", "\x{2E20}" => "\x{2E21}", "\x{3008}" => "\x{3009}", "\x{300A}" => "\x{300B}", "\x{300C}" => "\x{300D}", "\x{300E}" => "\x{300F}", "\x{3010}" => "\x{3011}", "\x{3014}" => "\x{3015}", "\x{3016}" => "\x{3017}", "\x{3018}" => "\x{3019}", "\x{301A}" => "\x{301B}", "\x{301D}" => "\x{301E}", "\x{FD3E}" => "\x{FD3F}", "\x{FE17}" => "\x{FE18}", "\x{FE35}" => "\x{FE36}", "\x{FE37}" => "\x{FE38}", "\x{FE39}" => "\x{FE3A}", "\x{FE3B}" => "\x{FE3C}", "\x{FE3D}" => "\x{FE3E}", "\x{FE3F}" => "\x{FE40}", "\x{FE41}" => "\x{FE42}", "\x{FE43}" => "\x{FE44}", "\x{FE47}" => "\x{FE48}", "\x{FE59}" => "\x{FE5A}", "\x{FE5B}" => "\x{FE5C}", "\x{FE5D}" => "\x{FE5E}", "\x{FF08}" => "\x{FF09}", "\x{FF1C}" => "\x{FF1E}", "\x{FF3B}" => "\x{FF3D}", "\x{FF5B}" => "\x{FF5D}", "\x{FF5F}" => "\x{FF60}", "\x{FF62}" => "\x{FF63}", ); our %close2open = reverse %open2close; ## token opener { sub opener__PEEK { $_[0]->_AUTOLEXpeek('opener', $retree) } sub opener { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE opener"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "opener", $C->_PATTERN(qr/\G[\x{0028}\x{003C}\x{005B}\x{007B}\x{00AB}\x{0F3A}\x{0F3C}\x{169B}\x{2018}\x{201A}\x{201B}\x{201C}\x{201E}\x{201F}\x{2039}\x{2045}\x{207D}\x{208D}\x{2208}\x{2209}\x{220A}\x{2215}\x{223C}\x{2243}\x{2252}\x{2254}\x{2264}\x{2266}\x{2268}\x{226A}\x{226E}\x{2270}\x{2272}\x{2274}\x{2276}\x{2278}\x{227A}\x{227C}\x{227E}\x{2280}\x{2282}\x{2284}\x{2286}\x{2288}\x{228A}\x{228F}\x{2291}\x{2298}\x{22A2}\x{22A6}\x{22A8}\x{22A9}\x{22AB}\x{22B0}\x{22B2}\x{22B4}\x{22B6}\x{22C9}\x{22CB}\x{22D0}\x{22D6}\x{22D8}\x{22DA}\x{22DC}\x{22DE}\x{22E0}\x{22E2}\x{22E4}\x{22E6}\x{22E8}\x{22EA}\x{22EC}\x{22F0}\x{22F2}\x{22F3}\x{22F4}\x{22F6}\x{22F7}\x{2308}\x{230A}\x{2329}\x{23B4}\x{2768}\x{276A}\x{276C}\x{276E}\x{2770}\x{2772}\x{2774}\x{27C3}\x{27C5}\x{27D5}\x{27DD}\x{27E2}\x{27E4}\x{27E6}\x{27E8}\x{27EA}\x{2983}\x{2985}\x{2987}\x{2989}\x{298B}\x{298D}\x{298F}\x{2991}\x{2993}\x{2995}\x{2997}\x{29C0}\x{29C4}\x{29CF}\x{29D1}\x{29D4}\x{29D8}\x{29DA}\x{29F8}\x{29FC}\x{2A2B}\x{2A2D}\x{2A34}\x{2A3C}\x{2A64}\x{2A79}\x{2A7D}\x{2A7F}\x{2A81}\x{2A83}\x{2A8B}\x{2A91}\x{2A93}\x{2A95}\x{2A97}\x{2A99}\x{2A9B}\x{2AA1}\x{2AA6}\x{2AA8}\x{2AAA}\x{2AAC}\x{2AAF}\x{2AB3}\x{2ABB}\x{2ABD}\x{2ABF}\x{2AC1}\x{2AC3}\x{2AC5}\x{2ACD}\x{2ACF}\x{2AD1}\x{2AD3}\x{2AD5}\x{2AEC}\x{2AF7}\x{2AF9}\x{2E02}\x{2E04}\x{2E09}\x{2E0C}\x{2E1C}\x{2E20}\x{3008}\x{300A}\x{300C}\x{300E}\x{3010}\x{3014}\x{3016}\x{3018}\x{301A}\x{301D}\x{FD3E}\x{FE17}\x{FE35}\x{FE37}\x{FE39}\x{FE3B}\x{FE3D}\x{FE3F}\x{FE41}\x{FE43}\x{FE47}\x{FE59}\x{FE5B}\x{FE5D}\x{FF08}\x{FF1C}\x{FF3B}\x{FF5B}\x{FF5F}\x{FF62}]/)); } ; { package STD::P6; use Moose ':all' => { -prefix => "moose_" }; use Encode; moose_extends('STD'); our $ALLROLES = { 'STD::P6', 1 }; our $REGEXES = { ALL => [ qw/POST PRE arglist args blast block blockoid capterm capture circumfix coloncircumfix colonpair comp_unit curlycheck declarator default_value deflongname desigilname dotty dottyop dottyopish dumbsmart eat_terminator fakesignature fatarrow infix infix_circumfix_meta_operator infix_postfix_meta_operator infix_prefix_meta_operator infixish infixstopper label lambda macro_def method_def methodop modifier_expr module_name multi_declarator multisig named_param nullterm nulltermish number old_rx_mods old_tr_mods package_declarator package_def param_sep param_var parameter pblock post_constraint postcircumfix postfix postfix_prefix_meta_operator postop prefix prefix_circumfix_meta_operator prefix_postfix_meta_operator privop quasiquibble quote quote_mod regex_block regex_declarator regex_def routine_declarator routine_def scope_declarator scoped semiarglist semilist sibble signature sigterm special_variable statement statement_control statement_mod_cond statement_mod_loop statement_prefix statementlist strtonum sublongname subshortname term terminator termish trait trait_mod tribble type_constraint type_declarator typename unitstart value variable variable_declarator version vnum xblock/ ], circumfix => [ qw/circumfix__S_191sigil__PEEK circumfix__S_192Paren_Thesis__PEEK circumfix__S_193Bra_Ket__PEEK circumfix__S_214Cur_Ly__PEEK/ ], dotty => [ qw/dotty__S_194DotStar__PEEK dotty__S_195Dot__PEEK/ ], infix => [ qw/infix__S_190lambda__PEEK infix__S_216Dot__PEEK infix__S_222StarStar__PEEK infix__S_237Star__PEEK infix__S_238Slash__PEEK infix__S_239div__PEEK infix__S_240Percent__PEEK infix__S_241PercentPercent__PEEK infix__S_242mod__PEEK infix__S_243PlusAmp__PEEK infix__S_244LtLt__PEEK infix__S_245GtGt__PEEK infix__S_246TildeAmp__PEEK infix__S_247QuestionAmp__PEEK infix__S_248TildeLt__PEEK infix__S_249TildeGt__PEEK infix__S_250PlusLt__PEEK infix__S_251PlusGt__PEEK infix__S_252Plus__PEEK infix__S_253Minus__PEEK infix__S_254PlusVert__PEEK infix__S_255PlusCaret__PEEK infix__S_256TildeVert__PEEK infix__S_257TildeCaret__PEEK infix__S_258QuestionVert__PEEK infix__S_259QuestionCaret__PEEK infix__S_260x__PEEK infix__S_261xx__PEEK infix__S_262Tilde__PEEK infix__S_263Amp__PEEK infix__S_264Vert__PEEK infix__S_265Caret__PEEK infix__S_270LtEqualGt__PEEK infix__S_271cmp__PEEK infix__S_272leg__PEEK infix__S_273but__PEEK infix__S_274does__PEEK infix__S_275DotDot__PEEK infix__S_276CaretDotDot__PEEK infix__S_277DotDotCaret__PEEK infix__S_278CaretDotDotCaret__PEEK infix__S_279EqualEqual__PEEK infix__S_280BangEqual__PEEK infix__S_281Lt__PEEK infix__S_282LtEqual__PEEK infix__S_283Gt__PEEK infix__S_284GtEqual__PEEK infix__S_285TildeTilde__PEEK infix__S_286BangTilde__PEEK infix__S_287EqualTilde__PEEK infix__S_288eq__PEEK infix__S_289ne__PEEK infix__S_290lt__PEEK infix__S_291le__PEEK infix__S_292gt__PEEK infix__S_293ge__PEEK infix__S_294EqualColonEqual__PEEK infix__S_295EqualEqualEqual__PEEK infix__S_296eqv__PEEK infix__S_297before__PEEK infix__S_298after__PEEK infix__S_299AmpAmp__PEEK infix__S_300VertVert__PEEK infix__S_301CaretCaret__PEEK infix__S_302SlashSlash__PEEK infix__S_303min__PEEK infix__S_304max__PEEK infix__S_305QuestionQuestion_BangBang__PEEK infix__S_306BangBang__PEEK infix__S_307Question__PEEK infix__S_308ff__PEEK infix__S_309Caretff__PEEK infix__S_310ffCaret__PEEK infix__S_311CaretffCaret__PEEK infix__S_312fff__PEEK infix__S_313Caretfff__PEEK infix__S_314fffCaret__PEEK infix__S_315CaretfffCaret__PEEK infix__S_316Equal__PEEK infix__S_317ColonEqual__PEEK infix__S_318ColonColonEqual__PEEK infix__S_319DotEqual__PEEK infix__S_320EqualGt__PEEK infix__S_323Comma__PEEK infix__S_324Colon__PEEK infix__S_325X__PEEK infix__S_326Z__PEEK infix__S_327minmax__PEEK infix__S_328DotDotDot__PEEK infix__S_334and__PEEK infix__S_335andthen__PEEK infix__S_336or__PEEK infix__S_337orelse__PEEK infix__S_338xor__PEEK infix__S_339LtEqualEqual__PEEK infix__S_340EqualEqualGt__PEEK infix__S_341LtLtEqualEqual__PEEK infix__S_342EqualEqualGtGt__PEEK/ ], infix_circumfix_meta_operator => [ qw/infix_circumfix_meta_operator__S_204Fre_Nch__PEEK infix_circumfix_meta_operator__S_205LtLt_GtGt__PEEK/ ], infix_postfix_meta_operator => [ qw/infix_postfix_meta_operator__S_206Equal__PEEK/ ], infix_prefix_meta_operator => [ qw/infix_prefix_meta_operator__S_199Bang__PEEK infix_prefix_meta_operator__S_200R__PEEK infix_prefix_meta_operator__S_201S__PEEK infix_prefix_meta_operator__S_202X__PEEK infix_prefix_meta_operator__S_203Z__PEEK/ ], module_name => [ qw/module_name__S_039normal__PEEK/ ], multi_declarator => [ qw/multi_declarator__S_058multi__PEEK multi_declarator__S_059proto__PEEK multi_declarator__S_060only__PEEK multi_declarator__S_061null__PEEK/ ], package_declarator => [ qw/package_declarator__S_048class__PEEK package_declarator__S_049grammar__PEEK package_declarator__S_050module__PEEK package_declarator__S_051package__PEEK package_declarator__S_052role__PEEK package_declarator__S_053knowhow__PEEK package_declarator__S_054slang__PEEK package_declarator__S_055require__PEEK package_declarator__S_056trusts__PEEK package_declarator__S_057also__PEEK/ ], postcircumfix => [ qw/postcircumfix__S_207Paren_Thesis__PEEK postcircumfix__S_208Bra_Ket__PEEK postcircumfix__S_209Cur_Ly__PEEK postcircumfix__S_210Lt_Gt__PEEK postcircumfix__S_211LtLt_GtGt__PEEK postcircumfix__S_212Fre_Nch__PEEK/ ], postfix => [ qw/postfix__S_215i__PEEK postfix__S_217MinusGt__PEEK postfix__S_218PlusPlus__PEEK postfix__S_219MinusMinus__PEEK/ ], postfix_prefix_meta_operator => [ qw/postfix_prefix_meta_operator__S_198Nch__PEEK/ ], prefix => [ qw/prefix__S_220PlusPlus__PEEK prefix__S_221MinusMinus__PEEK prefix__S_223Bang__PEEK prefix__S_224Plus__PEEK prefix__S_225Minus__PEEK prefix__S_226TildeTilde__PEEK prefix__S_227Tilde__PEEK prefix__S_228QuestionQuestion__PEEK prefix__S_229Question__PEEK prefix__S_230TildeCaret__PEEK prefix__S_231PlusCaret__PEEK prefix__S_232QuestionCaret__PEEK prefix__S_233CaretCaret__PEEK prefix__S_234Caret__PEEK prefix__S_235VertVert__PEEK prefix__S_236Vert__PEEK prefix__S_266sleep__PEEK prefix__S_267abs__PEEK prefix__S_268let__PEEK prefix__S_269temp__PEEK prefix__S_321so__PEEK prefix__S_322not__PEEK/ ], prefix_circumfix_meta_operator => [ qw/prefix_circumfix_meta_operator__S_196reduce__PEEK/ ], prefix_postfix_meta_operator => [ qw/prefix_postfix_meta_operator__S_197Fre__PEEK/ ], quote => [ qw/quote__S_141SlashSlash__PEEK quote__S_142Slash_Slash__PEEK quote__S_143qq__PEEK quote__S_144q__PEEK quote__S_145Q__PEEK quote__S_157rx__PEEK quote__S_158m__PEEK quote__S_159mm__PEEK quote__S_160s__PEEK quote__S_161ss__PEEK quote__S_162tr__PEEK quote__S_163y__PEEK quote__S_164quasi__PEEK/ ], quote_mod => [ qw/quote_mod__S_146w__PEEK quote_mod__S_147ww__PEEK quote_mod__S_148p__PEEK quote_mod__S_149x__PEEK quote_mod__S_150to__PEEK quote_mod__S_151s__PEEK quote_mod__S_152a__PEEK quote_mod__S_153h__PEEK quote_mod__S_154f__PEEK quote_mod__S_155c__PEEK quote_mod__S_156b__PEEK/ ], regex_declarator => [ qw/regex_declarator__S_066regex__PEEK regex_declarator__S_067token__PEEK regex_declarator__S_068rule__PEEK/ ], routine_declarator => [ qw/routine_declarator__S_062sub__PEEK routine_declarator__S_063method__PEEK routine_declarator__S_064submethod__PEEK routine_declarator__S_065macro__PEEK/ ], scope_declarator => [ qw/scope_declarator__S_041my__PEEK scope_declarator__S_042our__PEEK scope_declarator__S_043anon__PEEK scope_declarator__S_044state__PEEK scope_declarator__S_045has__PEEK scope_declarator__S_046augment__PEEK scope_declarator__S_047supersede__PEEK/ ], special_variable => [ qw/special_variable__S_091Dollar_a2___PEEK special_variable__S_092DollarBang__PEEK special_variable__S_093DollarBangCur_Ly__PEEK special_variable__S_094DollarSlash__PEEK special_variable__S_095DollarTilde__PEEK special_variable__S_096DollarGrave__PEEK special_variable__S_097DollarAt__PEEK special_variable__S_098DollarSharp__PEEK special_variable__S_099DollarDollar__PEEK special_variable__S_100DollarPercent__PEEK special_variable__S_101DollarCaretX__PEEK special_variable__S_102DollarCaret__PEEK special_variable__S_103DollarAmp__PEEK special_variable__S_104DollarStar__PEEK special_variable__S_105DollarThesis__PEEK special_variable__S_106DollarMinus__PEEK special_variable__S_107DollarEqual__PEEK special_variable__S_108AtPlus__PEEK special_variable__S_109PercentPlus__PEEK special_variable__S_110DollarPlusBra_Ket__PEEK special_variable__S_111AtPlusBra_Ket__PEEK special_variable__S_112AtPlusCur_Ly__PEEK special_variable__S_113AtMinus__PEEK special_variable__S_114PercentMinus__PEEK special_variable__S_115DollarMinusBra_Ket__PEEK special_variable__S_116AtMinusBra_Ket__PEEK special_variable__S_117PercentMinusCur_Ly__PEEK special_variable__S_118DollarPlus__PEEK special_variable__S_119DollarCurCaret_Ly__PEEK special_variable__S_120ColonColonCur_Ly__PEEK special_variable__S_121DollarCur_Ly__PEEK special_variable__S_122DollarBra__PEEK special_variable__S_123DollarKet__PEEK special_variable__S_124DollarBack__PEEK special_variable__S_125DollarVert__PEEK special_variable__S_126DollarColon__PEEK special_variable__S_127DollarSemi__PEEK special_variable__S_128DollarSingle__PEEK special_variable__S_129DollarDouble__PEEK special_variable__S_130DollarComma__PEEK special_variable__S_131DollarLt__PEEK special_variable__S_132DollarGt__PEEK special_variable__S_133DollarDot__PEEK special_variable__S_134DollarQuestion__PEEK/ ], statement_control => [ qw/statement_control__S_000need__PEEK statement_control__S_001import__PEEK statement_control__S_002use__PEEK statement_control__S_003no__PEEK statement_control__S_004if__PEEK statement_control__S_005unless__PEEK statement_control__S_006while__PEEK statement_control__S_007until__PEEK statement_control__S_008repeat__PEEK statement_control__S_009loop__PEEK statement_control__S_010for__PEEK statement_control__S_011foreach__PEEK statement_control__S_012given__PEEK statement_control__S_013when__PEEK statement_control__S_014default__PEEK statement_control__S_029CATCH__PEEK statement_control__S_030CONTROL__PEEK statement_control__S_031TEMP__PEEK/ ], statement_mod_cond => [ qw/statement_mod_cond__S_032if__PEEK statement_mod_cond__S_033unless__PEEK statement_mod_cond__S_034when__PEEK/ ], statement_mod_loop => [ qw/statement_mod_loop__S_035while__PEEK statement_mod_loop__S_036until__PEEK statement_mod_loop__S_037for__PEEK statement_mod_loop__S_038given__PEEK/ ], statement_prefix => [ qw/statement_prefix__S_015BEGIN__PEEK statement_prefix__S_016CHECK__PEEK statement_prefix__S_017INIT__PEEK statement_prefix__S_018START__PEEK statement_prefix__S_019ENTER__PEEK statement_prefix__S_020FIRST__PEEK statement_prefix__S_021END__PEEK statement_prefix__S_022LEAVE__PEEK statement_prefix__S_023KEEP__PEEK statement_prefix__S_024UNDO__PEEK statement_prefix__S_025NEXT__PEEK statement_prefix__S_026LAST__PEEK statement_prefix__S_027PRE__PEEK statement_prefix__S_028POST__PEEK statement_prefix__S_168sink__PEEK statement_prefix__S_169try__PEEK statement_prefix__S_170quietly__PEEK statement_prefix__S_171gather__PEEK statement_prefix__S_172contend__PEEK statement_prefix__S_173async__PEEK statement_prefix__S_174maybe__PEEK statement_prefix__S_175lazy__PEEK statement_prefix__S_176do__PEEK statement_prefix__S_177lift__PEEK/ ], strtonum => [ qw/strtonum__S_138rational__PEEK strtonum__S_139complex__PEEK strtonum__S_140number__PEEK/ ], term => [ qw/term__S_076fatarrow__PEEK term__S_077variable__PEEK term__S_078package_declarator__PEEK term__S_079scope_declarator__PEEK term__S_080multi_declarator__PEEK term__S_081routine_declarator__PEEK term__S_082regex_declarator__PEEK term__S_083type_declarator__PEEK term__S_084circumfix__PEEK term__S_085dotty__PEEK term__S_086value__PEEK term__S_087capterm__PEEK term__S_088sigterm__PEEK term__S_089statement_prefix__PEEK term__S_090colonpair__PEEK term__S_178new__PEEK term__S_179ColonColonQuestionIDENT__PEEK term__S_180Object__PEEK term__S_181undef__PEEK term__S_182proceed__PEEK term__S_183time__PEEK term__S_184now__PEEK term__S_185self__PEEK term__S_186defer__PEEK term__S_187rand__PEEK term__S_188Star__PEEK term__S_189StarStar__PEEK term__S_213lambda__PEEK term__S_329DotDotDot__PEEK term__S_330QuestionQuestionQuestion__PEEK term__S_331BangBangBang__PEEK term__S_332identifier__PEEK term__S_333name__PEEK/ ], terminator => [ qw/terminator__S_343Semi__PEEK terminator__S_344if__PEEK terminator__S_345unless__PEEK terminator__S_346while__PEEK terminator__S_347until__PEEK terminator__S_348for__PEEK terminator__S_349given__PEEK terminator__S_350when__PEEK terminator__S_351MinusMinusGt__PEEK terminator__S_352BangBang__PEEK/ ], trait_mod => [ qw/trait_mod__S_069is__PEEK trait_mod__S_070hides__PEEK trait_mod__S_071does__PEEK trait_mod__S_072will__PEEK trait_mod__S_073of__PEEK trait_mod__S_074as__PEEK trait_mod__S_075handles__PEEK/ ], type_declarator => [ qw/type_declarator__S_165subset__PEEK type_declarator__S_166enum__PEEK type_declarator__S_167constant__PEEK/ ], value => [ qw/value__S_135quote__PEEK value__S_136number__PEEK value__S_137version__PEEK/ ], version => [ qw/version__S_040v__PEEK/ ], }; no warnings 'qw', 'recursion'; my $retree; $DB::deep = $DB::deep = 1000; # suppress used-once warning use YAML::XS; $SIG{__WARN__} = sub { die @_," statement started at line ", 'STD::Cursor'->lineof($::LASTSTATE), " " } if $::DEBUG; $retree = YAML::XS::Load(Encode::encode_utf8(<<'RETREE_END')); --- POST: !!perl/hash:RE_ast dba: postfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: stdstopper rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &1 !!perl/hash:RE_any altname: POST_0 dba: POST dic: STD::P6 zyg: - !!perl/hash:RE_method alt: POST_0 0 name: unsp rest: '' - !!perl/hash:RE_string alt: POST_0 1 i: 0 text: \ quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' quant: - '?' - !!perl/hash:RE_method name: postfix_prefix_meta_operator rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' quant: - '*' - !!perl/hash:RE_bracket re: &2 !!perl/hash:RE_any altname: POST_1 dba: postfix dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: POST_1 0 zyg: - !!perl/hash:RE_method name: dotty rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: POST_1 1 zyg: - !!perl/hash:RE_method name: privop rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: POST_1 2 zyg: - !!perl/hash:RE_method name: postop rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} POST_0: *1 POST_1: *2 PRE: !!perl/hash:RE_ast dba: prefix or meta-prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &3 !!perl/hash:RE_any altname: PRE_0 dba: prefix or meta-prefix dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: PRE_0 0 zyg: - !!perl/hash:RE_method name: prefix rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: PRE_0 1 zyg: - !!perl/hash:RE_method name: prefix_circumfix_meta_operator rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: prefix_postfix_meta_operator rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' PRE_0: *3 arglist: !!perl/hash:RE_ast dba: argument list dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &4 !!perl/hash:RE_any altname: arglist_0 dba: argument list dic: STD::P6 zyg: - !!perl/hash:RE_assertion alt: arglist_0 0 assert: '?' re: !!perl/hash:RE_method name: stdstopper rest: '' - !!perl/hash:RE_sequence alt: arglist_0 1 zyg: - !!perl/hash:RE_method name: EXPR rest: 1 - !!perl/hash:RE_block {} arglist_0: *4 args: !!perl/hash:RE_ast dba: 'extra arglist after (...):' dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &5 !!perl/hash:RE_any altname: args_0 dba: argument list dic: STD::P6 zyg: - !!perl/hash:RE_bracket alt: args_0 0 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semiarglist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_sequence alt: args_0 1 zyg: - !!perl/hash:RE_method name: unsp rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semiarglist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_sequence alt: args_0 2 zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: infixstopper rest: '' - !!perl/hash:RE_method name: arglist rest: '' quant: - '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: arglist rest: '' - !!perl/hash:RE_block {} args_0: *5 blast: !!perl/hash:RE_ast dba: blast dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &6 !!perl/hash:RE_any altname: blast_0 dba: blast dic: STD::P6 zyg: - !!perl/hash:RE_method alt: blast_0 0 name: block rest: '' - !!perl/hash:RE_method alt: blast_0 1 name: statement rest: '' blast_0: *6 block: !!perl/hash:RE_ast dba: scoped block dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: newlex rest: '' - !!perl/hash:RE_method name: blockoid rest: '' - !!perl/hash:RE_method name: checkyada rest: '' blockoid: !!perl/hash:RE_ast dba: blockoid dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: finishlex rest: '' - !!perl/hash:RE_bracket re: &7 !!perl/hash:RE_any altname: blockoid_0 dba: block dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: blockoid_0 0 zyg: - !!perl/hash:RE_string i: 0 text: '{YOU_ARE_HERE}' - !!perl/hash:RE_method name: you_are_here rest: '' - !!perl/hash:RE_sequence alt: blockoid_0 1 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: statementlist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_method name: curlycheck rest: '' - !!perl/hash:RE_sequence alt: blockoid_0 2 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: terminator rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_sequence alt: blockoid_0 3 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_method name: panic rest: 1 blockoid_0: *7 capterm: !!perl/hash:RE_ast dba: capterm dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: \ - !!perl/hash:RE_bracket re: &8 !!perl/hash:RE_any altname: capterm_0 dba: capterm dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: capterm_0 0 zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: capture rest: '' quant: - '?' - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_sequence alt: capterm_0 1 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \S - !!perl/hash:RE_method name: termish rest: '' - !!perl/hash:RE_sequence alt: capterm_0 2 zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: panic rest: 1 capterm_0: *8 capture: !!perl/hash:RE_ast dba: capture dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: EXPR rest: '' - !!perl/hash:RE_method name: ws rest: '' circumfix__S_191sigil: !!perl/hash:RE_ast dba: contextualizer dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semilist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 circumfix__S_192Paren_Thesis: !!perl/hash:RE_ast dba: parenthesized expression dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semilist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: O rest: 1 circumfix__S_193Bra_Ket: !!perl/hash:RE_ast dba: array composer dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semilist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: O rest: 1 - !!perl/hash:RE_block {} circumfix__S_214Cur_Ly: !!perl/hash:RE_ast dba: circumfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_method name: pblock rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 coloncircumfix: !!perl/hash:RE_ast dba: coloncircumfix dic: STD::P6 re: !!perl/hash:RE_bracket re: &9 !!perl/hash:RE_any altname: coloncircumfix_0 dba: coloncircumfix dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: coloncircumfix_0 0 zyg: - !!perl/hash:RE_string i: 0 text: <> - !!perl/hash:RE_method name: worry rest: 1 - !!perl/hash:RE_method alt: coloncircumfix_0 1 name: circumfix rest: '' coloncircumfix_0: *9 colonpair: !!perl/hash:RE_ast dba: colon pair dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_bracket re: &10 !!perl/hash:RE_any altname: colonpair_0 dba: signature dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: colonpair_0 0 zyg: - !!perl/hash:RE_string i: 0 text: '!' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[ \[ \( \< \{ ]' - !!perl/hash:RE_method name: panic rest: 1 quant: - '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: colonpair_0 1 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \d quant: - + - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[ \[ \( \< \{ ]' - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_method name: circumfix rest: '' quant: - '?' - !!perl/hash:RE_sequence alt: colonpair_0 2 zyg: - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_method name: coloncircumfix rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket alt: colonpair_0 3 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: fakesignature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_sequence alt: colonpair_0 4 zyg: - !!perl/hash:RE_method name: coloncircumfix rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: colonpair_0 5 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_paren re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: &11 !!perl/hash:RE_any altname: colonpair_1 dba: signature dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: colonpair_1 0 zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: twigil rest: '' quant: - '?' - !!perl/hash:RE_method name: desigilname rest: '' - !!perl/hash:RE_sequence alt: colonpair_1 1 zyg: - !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_method name: desigilname rest: '' - !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} colonpair_0: *10 colonpair_1: *11 comp_unit: !!perl/hash:RE_ast dba: comp_unit dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: unitstart rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: statementlist rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: unitstopper rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} curlycheck: !!perl/hash:RE_ast dba: curlycheck dic: STD::P6 re: !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_meta text: $$ - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_cclass i: 0 text: '[\\,:]' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: unv rest: '' - !!perl/hash:RE_meta text: $$ - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_block {} declarator: !!perl/hash:RE_ast dba: declarator dic: STD::P6 re: !!perl/hash:RE_bracket re: &12 !!perl/hash:RE_any altname: declarator_0 dba: declarator dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: declarator_0 0 zyg: - !!perl/hash:RE_method name: variable_declarator rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ',' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} quant: - '?' - !!perl/hash:RE_sequence alt: declarator_0 1 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - '*' - !!perl/hash:RE_method alt: declarator_0 2 name: routine_declarator rest: '' - !!perl/hash:RE_method alt: declarator_0 3 name: regex_declarator rest: '' - !!perl/hash:RE_method alt: declarator_0 4 name: type_declarator rest: '' declarator_0: *12 default_value: !!perl/hash:RE_ast dba: default_value dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: EXPR rest: 1 - !!perl/hash:RE_method name: ws rest: '' deflongname: !!perl/hash:RE_ast dba: new name to be defined dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: name rest: '' - !!perl/hash:RE_bracket re: &13 !!perl/hash:RE_any altname: deflongname_0 dba: new name to be defined dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: deflongname_0 0 zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: colonpair rest: '' quant: - + - !!perl/hash:RE_block {} - !!perl/hash:RE_block alt: deflongname_0 1 deflongname_0: *13 desigilname: !!perl/hash:RE_ast dba: desigilname dic: STD::P6 re: !!perl/hash:RE_bracket re: &14 !!perl/hash:RE_any altname: desigilname_0 dba: desigilname dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: desigilname_0 0 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: $ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: panic rest: 1 quant: - '?' - !!perl/hash:RE_method name: variable rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: desigilname_0 1 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_cclass i: 0 text: '[\@\%\&]' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: sigil rest: '' quant: - '*' - !!perl/hash:RE_meta min: 1 text: \w - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method alt: desigilname_0 2 name: longname rest: '' desigilname_0: *14 dotty__S_194DotStar: !!perl/hash:RE_ast dba: dotty dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bindpos atom: !!perl/hash:RE_paren re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_bracket re: &15 !!perl/hash:RE_any altname: dotty__S_194DotStar_0 dba: dotty dic: STD::P6 zyg: - !!perl/hash:RE_cclass alt: dotty__S_194DotStar_0 0 i: 0 text: '[+*?=]' - !!perl/hash:RE_sequence alt: dotty__S_194DotStar_0 1 zyg: - !!perl/hash:RE_string i: 0 text: ^ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: '!' quant: - '?' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_method name: unspacey rest: '' - !!perl/hash:RE_method name: dottyop rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 dotty__S_194DotStar_0: *15 dotty__S_195Dot: !!perl/hash:RE_ast dba: dotty dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: unspacey i: 0 name: sym rest: '' sym: . - !!perl/hash:RE_method name: unspacey rest: '' - !!perl/hash:RE_method name: dottyop rest: '' - !!perl/hash:RE_method name: O rest: 1 dottyop: !!perl/hash:RE_ast dba: dotty method or postfix dic: STD::P6 re: !!perl/hash:RE_bracket re: &16 !!perl/hash:RE_any altname: dottyop_0 dba: dotty method or postfix dic: STD::P6 zyg: - !!perl/hash:RE_method alt: dottyop_0 0 name: methodop rest: '' - !!perl/hash:RE_method alt: dottyop_0 1 name: colonpair rest: '' - !!perl/hash:RE_sequence alt: dottyop_0 2 zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: alpha rest: '' - !!perl/hash:RE_method name: postop rest: '' - !!perl/hash:RE_block {} dottyop_0: *16 dottyopish: !!perl/hash:RE_ast dba: dottyopish dic: STD::P6 re: !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: dottyop rest: '' dumbsmart: !!perl/hash:RE_ast dba: dumbsmart dic: STD::P6 re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_bindpos atom: !!perl/hash:RE_paren re: &17 !!perl/hash:RE_any altname: dumbsmart_0 dba: dumbsmart dic: STD::P6 zyg: - !!perl/hash:RE_string alt: dumbsmart_0 0 i: 0 text: True - !!perl/hash:RE_string alt: dumbsmart_0 1 i: 0 text: False - !!perl/hash:RE_string alt: dumbsmart_0 2 i: 0 text: Bool::True - !!perl/hash:RE_string alt: dumbsmart_0 3 i: 0 text: Bool::False - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_block {} quant: - '?' dumbsmart_0: *17 eat_terminator: !!perl/hash:RE_ast dba: eat_terminator dic: STD::P6 re: !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ; - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &18 !!perl/hash:RE_any altname: eat_terminator_0 dba: eat_terminator dic: STD::P6 zyg: - !!perl/hash:RE_string alt: eat_terminator_0 0 i: 0 text: ) - !!perl/hash:RE_string alt: eat_terminator_0 1 i: 0 text: ']' - !!perl/hash:RE_string alt: eat_terminator_0 2 i: 0 text: '}' - !!perl/hash:RE_meta text: $ - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: stopper rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_method_re name: suppose nobind: 1 re: !!perl/hash:RE_method name: statement_control rest: '' - !!perl/hash:RE_method name: backup_ws rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: panic rest: 1 eat_terminator_0: *18 fakesignature: !!perl/hash:RE_ast dba: fakesignature dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: newlex rest: '' - !!perl/hash:RE_method name: signature rest: '' fatarrow: !!perl/hash:RE_ast dba: fatarrow dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_string i: 0 text: => - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: EXPR rest: 1 infix__S_190lambda: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &19 !!perl/hash:RE_any altname: infix__S_190lambda_0 dba: infix dic: STD::P6 zyg: - !!perl/hash:RE_string alt: infix__S_190lambda_0 0 i: 0 text: '{' - !!perl/hash:RE_string alt: infix__S_190lambda_0 1 i: 0 text: -> - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 infix__S_190lambda_0: *19 infix__S_216Dot: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_cclass i: 0 text: '[\]\)\},:\s\$"'']' - !!perl/hash:RE_method name: obs rest: 1 infix__S_222StarStar: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '**' - !!perl/hash:RE_method name: O rest: 1 infix__S_237Star: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '*' - !!perl/hash:RE_method name: O rest: 1 infix__S_238Slash: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: / - !!perl/hash:RE_method name: O rest: 1 infix__S_239div: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: div - !!perl/hash:RE_method name: O rest: 1 infix__S_240Percent: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '%' - !!perl/hash:RE_method name: O rest: 1 infix__S_241PercentPercent: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '%%' - !!perl/hash:RE_method name: O rest: 1 infix__S_242mod: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: mod - !!perl/hash:RE_method name: O rest: 1 infix__S_243PlusAmp: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: +& - !!perl/hash:RE_method name: O rest: 1 infix__S_244LtLt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: << - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_method name: sorryobs rest: 1 - !!perl/hash:RE_method name: O rest: 1 infix__S_245GtGt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '>>' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_method name: sorryobs rest: 1 - !!perl/hash:RE_method name: O rest: 1 infix__S_246TildeAmp: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ~& - !!perl/hash:RE_method name: O rest: 1 infix__S_247QuestionAmp: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ?& - !!perl/hash:RE_method name: O rest: 1 infix__S_248TildeLt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ~< - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: << - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_method name: O rest: 1 infix__S_249TildeGt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ~> - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '>>' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_method name: O rest: 1 infix__S_250PlusLt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: +< - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: << - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_method name: O rest: 1 infix__S_251PlusGt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: +> - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '>>' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_method name: O rest: 1 infix__S_252Plus: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: + - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: + - !!perl/hash:RE_method name: O rest: 1 infix__S_253Minus: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '-' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '-' - !!perl/hash:RE_method name: O rest: 1 infix__S_254PlusVert: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: +| - !!perl/hash:RE_method name: O rest: 1 infix__S_255PlusCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: +^ - !!perl/hash:RE_method name: O rest: 1 infix__S_256TildeVert: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ~| - !!perl/hash:RE_method name: O rest: 1 infix__S_257TildeCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ~^ - !!perl/hash:RE_method name: O rest: 1 infix__S_258QuestionVert: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ?| - !!perl/hash:RE_method name: O rest: 1 infix__S_259QuestionCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ?^ - !!perl/hash:RE_method name: O rest: 1 infix__S_260x: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: x - !!perl/hash:RE_method name: O rest: 1 infix__S_261xx: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: xx - !!perl/hash:RE_method name: O rest: 1 infix__S_262Tilde: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '~' - !!perl/hash:RE_method name: O rest: 1 infix__S_263Amp: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '&' - !!perl/hash:RE_method name: O rest: 1 infix__S_264Vert: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '|' - !!perl/hash:RE_method name: O rest: 1 infix__S_265Caret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^ - !!perl/hash:RE_method name: O rest: 1 infix__S_270LtEqualGt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: <=> - !!perl/hash:RE_method name: O rest: 1 infix__S_271cmp: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: cmp - !!perl/hash:RE_method name: O rest: 1 infix__S_272leg: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: leg - !!perl/hash:RE_method name: O rest: 1 infix__S_273but: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: but - !!perl/hash:RE_method name: O rest: 1 infix__S_274does: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: does - !!perl/hash:RE_method name: O rest: 1 infix__S_275DotDot: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: .. - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &20 !!perl/hash:RE_any altname: infix__S_275DotDot_0 dba: infix dic: STD::P6 zyg: - !!perl/hash:RE_string alt: infix__S_275DotDot_0 0 i: 0 text: ) - !!perl/hash:RE_string alt: infix__S_275DotDot_0 1 i: 0 text: ']' - !!perl/hash:RE_method name: panic rest: 1 quant: - '?' - !!perl/hash:RE_method name: O rest: 1 infix__S_275DotDot_0: *20 infix__S_276CaretDotDot: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^.. - !!perl/hash:RE_method name: O rest: 1 infix__S_277DotDotCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ..^ - !!perl/hash:RE_method name: O rest: 1 infix__S_278CaretDotDotCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^..^ - !!perl/hash:RE_method name: O rest: 1 infix__S_279EqualEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: == - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_method name: O rest: 1 infix__S_280BangEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '!=' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_method name: O rest: 1 infix__S_281Lt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: < - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_method name: O rest: 1 infix__S_282LtEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: <= - !!perl/hash:RE_method name: O rest: 1 infix__S_283Gt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '>' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_method name: O rest: 1 infix__S_284GtEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '>=' - !!perl/hash:RE_method name: O rest: 1 infix__S_285TildeTilde: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ~~ - !!perl/hash:RE_method name: O rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: dumbsmart rest: '' infix__S_286BangTilde: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '!~' - !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_method name: obs rest: 1 - !!perl/hash:RE_method name: O rest: 1 infix__S_287EqualTilde: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: =~ - !!perl/hash:RE_method name: obs rest: 1 - !!perl/hash:RE_method name: O rest: 1 infix__S_288eq: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: eq - !!perl/hash:RE_method name: O rest: 1 infix__S_289ne: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ne - !!perl/hash:RE_method name: O rest: 1 infix__S_290lt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: lt - !!perl/hash:RE_method name: O rest: 1 infix__S_291le: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: le - !!perl/hash:RE_method name: O rest: 1 infix__S_292gt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: gt - !!perl/hash:RE_method name: O rest: 1 infix__S_293ge: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ge - !!perl/hash:RE_method name: O rest: 1 infix__S_294EqualColonEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: =:= - !!perl/hash:RE_method name: O rest: 1 infix__S_295EqualEqualEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: === - !!perl/hash:RE_method name: O rest: 1 infix__S_296eqv: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: eqv - !!perl/hash:RE_method name: O rest: 1 infix__S_297before: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: before - !!perl/hash:RE_method name: O rest: 1 infix__S_298after: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: after - !!perl/hash:RE_method name: O rest: 1 infix__S_299AmpAmp: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '&&' - !!perl/hash:RE_method name: O rest: 1 infix__S_300VertVert: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '||' - !!perl/hash:RE_method name: O rest: 1 infix__S_301CaretCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^^ - !!perl/hash:RE_method name: O rest: 1 infix__S_302SlashSlash: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: // - !!perl/hash:RE_method name: O rest: 1 infix__S_303min: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: min - !!perl/hash:RE_method name: O rest: 1 infix__S_304max: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: max - !!perl/hash:RE_method name: O rest: 1 infix__S_305QuestionQuestion_BangBang: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ?? - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: EXPR rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '!!' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '::' - !!perl/hash:RE_cclass i: 0 text: -[=] - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: infixish rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta min: 1 text: \n - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \N quant: - '*' quant: - '?' - !!perl/hash:RE_string i: 0 text: '!!' - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: O rest: 1 infix__S_306BangBang: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '!!' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method_re name: suppose nobind: 1 re: !!perl/hash:RE_method name: infixish rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: panic rest: 1 infix__S_307Question: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '?' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: -[;] quant: - '*' - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_method name: obs rest: 1 - !!perl/hash:RE_method name: O rest: 1 infix__S_308ff: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ff - !!perl/hash:RE_method name: O rest: 1 infix__S_309Caretff: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^ff - !!perl/hash:RE_method name: O rest: 1 infix__S_310ffCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ff^ - !!perl/hash:RE_method name: O rest: 1 infix__S_311CaretffCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^ff^ - !!perl/hash:RE_method name: O rest: 1 infix__S_312fff: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: fff - !!perl/hash:RE_method name: O rest: 1 infix__S_313Caretfff: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^fff - !!perl/hash:RE_method name: O rest: 1 infix__S_314fffCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: fff^ - !!perl/hash:RE_method name: O rest: 1 infix__S_315CaretfffCaret: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^fff^ - !!perl/hash:RE_method name: O rest: 1 infix__S_316Equal: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: = - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: O rest: 1 - !!perl/hash:RE_method name: O rest: 1 infix__S_317ColonEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: := - !!perl/hash:RE_method name: O rest: 1 infix__S_318ColonColonEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ::= - !!perl/hash:RE_method name: O rest: 1 infix__S_319DotEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: .= - !!perl/hash:RE_method name: O rest: 1 infix__S_320EqualGt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: => - !!perl/hash:RE_method name: O rest: 1 infix__S_323Comma: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ',' - !!perl/hash:RE_method name: O rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_string i: 0 text: '...' - !!perl/hash:RE_method name: worry rest: 1 quant: - '?' infix__S_324Colon: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &21 !!perl/hash:RE_any altname: infix__S_324Colon_0 dba: infix dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: infix__S_324Colon_0 0 min: 1 text: \s - !!perl/hash:RE_method alt: infix__S_324Colon_0 1 name: terminator rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 infix__S_324Colon_0: *21 infix__S_325X: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: X - !!perl/hash:RE_method name: O rest: 1 infix__S_326Z: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: Z - !!perl/hash:RE_method name: O rest: 1 infix__S_327minmax: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: minmax - !!perl/hash:RE_method name: O rest: 1 infix__S_328DotDotDot: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '...' - !!perl/hash:RE_method name: O rest: 1 infix__S_334and: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: and - !!perl/hash:RE_method name: O rest: 1 infix__S_335andthen: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: andthen - !!perl/hash:RE_method name: O rest: 1 infix__S_336or: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: or - !!perl/hash:RE_method name: O rest: 1 infix__S_337orelse: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: orelse - !!perl/hash:RE_method name: O rest: 1 infix__S_338xor: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: xor - !!perl/hash:RE_method name: O rest: 1 infix__S_339LtEqualEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: <== - !!perl/hash:RE_method name: O rest: 1 infix__S_340EqualEqualGt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ==> - !!perl/hash:RE_method name: O rest: 1 infix__S_341LtLtEqualEqual: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: <<== - !!perl/hash:RE_method name: O rest: 1 infix__S_342EqualEqualGtGt: !!perl/hash:RE_ast dba: infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ==>> - !!perl/hash:RE_method name: O rest: 1 infix_circumfix_meta_operator__S_204Fre_Nch: !!perl/hash:RE_ast dba: infix_circumfix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &22 !!perl/hash:RE_any altname: infix_circumfix_meta_operator__S_204Fre_Nch_0 dba: infix_circumfix_meta_operator dic: STD::P6 zyg: - !!perl/hash:RE_string alt: infix_circumfix_meta_operator__S_204Fre_Nch_0 0 i: 0 text: « - !!perl/hash:RE_string alt: infix_circumfix_meta_operator__S_204Fre_Nch_0 1 i: 0 text: » - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - &23 !!perl/hash:RE_any altname: infix_circumfix_meta_operator__S_204Fre_Nch_1 dba: infix_circumfix_meta_operator dic: STD::P6 zyg: - !!perl/hash:RE_string alt: infix_circumfix_meta_operator__S_204Fre_Nch_1 0 i: 0 text: « - !!perl/hash:RE_string alt: infix_circumfix_meta_operator__S_204Fre_Nch_1 1 i: 0 text: » - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: can_meta rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 infix_circumfix_meta_operator__S_204Fre_Nch_0: *22 infix_circumfix_meta_operator__S_204Fre_Nch_1: *23 infix_circumfix_meta_operator__S_205LtLt_GtGt: !!perl/hash:RE_ast dba: infix_circumfix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &24 !!perl/hash:RE_any altname: infix_circumfix_meta_operator__S_205LtLt_GtGt_0 dba: infix_circumfix_meta_operator dic: STD::P6 zyg: - !!perl/hash:RE_string alt: infix_circumfix_meta_operator__S_205LtLt_GtGt_0 0 i: 0 text: << - !!perl/hash:RE_string alt: infix_circumfix_meta_operator__S_205LtLt_GtGt_0 1 i: 0 text: '>>' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - &25 !!perl/hash:RE_any altname: infix_circumfix_meta_operator__S_205LtLt_GtGt_1 dba: infix_circumfix_meta_operator dic: STD::P6 zyg: - !!perl/hash:RE_string alt: infix_circumfix_meta_operator__S_205LtLt_GtGt_1 0 i: 0 text: << - !!perl/hash:RE_string alt: infix_circumfix_meta_operator__S_205LtLt_GtGt_1 1 i: 0 text: '>>' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: can_meta rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 infix_circumfix_meta_operator__S_205LtLt_GtGt_0: *24 infix_circumfix_meta_operator__S_205LtLt_GtGt_1: *25 infix_postfix_meta_operator__S_206Equal: !!perl/hash:RE_ast dba: infix_postfix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_method name: can_meta rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 infix_prefix_meta_operator__S_199Bang: !!perl/hash:RE_ast dba: infix_prefix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '!' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '!' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: O rest: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: can_meta rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: panic rest: 1 infix_prefix_meta_operator__S_200R: !!perl/hash:RE_ast dba: infix_prefix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: R - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_method name: can_meta rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 infix_prefix_meta_operator__S_201S: !!perl/hash:RE_ast dba: infix_prefix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: S - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_method name: can_meta rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 infix_prefix_meta_operator__S_202X: !!perl/hash:RE_ast dba: infix_prefix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: X - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \S - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_method name: can_meta rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 quant: - '?' - !!perl/hash:RE_method name: O rest: 1 infix_prefix_meta_operator__S_203Z: !!perl/hash:RE_ast dba: infix_prefix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: Z - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \S - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_method name: can_meta rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 quant: - '?' - !!perl/hash:RE_method name: O rest: 1 infixish: !!perl/hash:RE_ast dba: infix or meta-infix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: stdstopper rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: infixstopper rest: '' - !!perl/hash:RE_bracket re: &26 !!perl/hash:RE_any altname: infixish_0 dba: infix or meta-infix dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: infixish_0 0 zyg: - !!perl/hash:RE_method name: colonpair rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: infixish_0 1 zyg: - !!perl/hash:RE_bracket re: &27 !!perl/hash:RE_any altname: infixish_1 dba: bracketed infix dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: infixish_1 0 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: infixish_1 1 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: infix_circumfix_meta_operator rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: infixish_1 2 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: infix_prefix_meta_operator rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: infixish_1 3 zyg: - !!perl/hash:RE_method name: infix rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: infixish_1 4 zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: dotty rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_sequence alt: infixish_1 5 zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: postfix rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: infix_postfix_meta_operator rest: 1 - !!perl/hash:RE_block {} quant: - '?' infixish_0: *26 infixish_1: *27 infixstopper: !!perl/hash:RE_ast dba: infix stopper dic: STD::P6 re: !!perl/hash:RE_bracket re: &28 !!perl/hash:RE_any altname: infixstopper_0 dba: infix stopper dic: STD::P6 zyg: - !!perl/hash:RE_assertion alt: infixstopper_0 0 assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_method name: stopper rest: '' - !!perl/hash:RE_sequence alt: infixstopper_0 1 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '!!' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_sequence alt: infixstopper_0 2 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &29 !!perl/hash:RE_any altname: infixstopper_1 dba: infix stopper dic: STD::P6 zyg: - !!perl/hash:RE_string alt: infixstopper_1 0 i: 0 text: '{' - !!perl/hash:RE_method alt: infixstopper_1 1 name: lambda rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion alt: infixstopper_0 3 assert: '?' re: !!perl/hash:RE_block nobind: 1 infixstopper_0: *28 infixstopper_1: *29 label: !!perl/hash:RE_ast dba: label dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' - !!perl/hash:RE_block {} lambda: !!perl/hash:RE_ast dba: lambda dic: STD::P6 re: &30 !!perl/hash:RE_any altname: lambda_0 dba: lambda dic: STD::P6 zyg: - !!perl/hash:RE_string alt: lambda_0 0 i: 0 text: -> - !!perl/hash:RE_string alt: lambda_0 1 i: 0 text: <-> lambda_0: *30 macro_def: !!perl/hash:RE_ast dba: macro_def dic: STD::P6 re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &31 !!perl/hash:RE_any altname: macro_def_0 dba: macro_def dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: macro_def_0 0 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: '&' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: deflongname rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: macro_def_0 1 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: deflongname rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: newlex rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &32 !!perl/hash:RE_any altname: macro_def_1 dba: macro_def dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: macro_def_1 0 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: multisig rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: macro_def_1 1 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: trait rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: blockoid rest: '' - !!perl/hash:RE_method name: checkyada rest: '' - !!perl/hash:RE_method name: getsig rest: '' - !!perl/hash:RE_method name: getdecl rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' macro_def_0: *31 macro_def_1: *32 method_def: !!perl/hash:RE_ast dba: method_def dic: STD::P6 re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: newlex rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &33 !!perl/hash:RE_any altname: method_def_0 dba: subscript signature dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: method_def_0 0 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[ ! ^ ]' quant: - '?' - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &34 !!perl/hash:RE_any altname: method_def_1 dba: method_def dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: method_def_1 0 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: multisig rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: method_def_1 1 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: trait rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: method_def_0 1 zyg: - !!perl/hash:RE_method name: multisig rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: method_def_0 2 zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: . - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &35 !!perl/hash:RE_any altname: method_def_2 dba: subscript signature dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: method_def_2 0 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: method_def_2 1 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: method_def_2 2 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: method_def_2 3 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_method name: postcircumfix rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion alt: method_def_0 3 assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: blockoid rest: '' - !!perl/hash:RE_method name: checkyada rest: '' - !!perl/hash:RE_method name: getsig rest: '' - !!perl/hash:RE_method name: getdecl rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' method_def_0: *33 method_def_1: *34 method_def_2: *35 methodop: !!perl/hash:RE_ast dba: method arguments dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &36 !!perl/hash:RE_any altname: methodop_0 dba: methodop dic: STD::P6 zyg: - !!perl/hash:RE_method alt: methodop_0 0 name: longname rest: '' - !!perl/hash:RE_sequence alt: methodop_0 1 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &37 !!perl/hash:RE_any altname: methodop_1 dba: methodop dic: STD::P6 zyg: - !!perl/hash:RE_string alt: methodop_1 0 i: 0 text: $ - !!perl/hash:RE_string alt: methodop_1 1 i: 0 text: '@' - !!perl/hash:RE_string alt: methodop_1 2 i: 0 text: '&' - !!perl/hash:RE_method name: variable rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: methodop_0 2 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[ '' " ]' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '"' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: -["] quant: - '*' - !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_method name: quote rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &38 !!perl/hash:RE_any altname: methodop_2 dba: methodop dic: STD::P6 zyg: - !!perl/hash:RE_string alt: methodop_2 0 i: 0 text: ( - !!perl/hash:RE_string alt: methodop_2 1 i: 0 text: .( - !!perl/hash:RE_string alt: methodop_2 2 i: 0 text: \ - !!perl/hash:RE_method name: obs rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &39 !!perl/hash:RE_any altname: methodop_3 dba: method arguments dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: methodop_3 0 zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &40 !!perl/hash:RE_any altname: methodop_4 dba: method arguments dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: methodop_4 0 min: 1 text: \s - !!perl/hash:RE_string alt: methodop_4 1 i: 0 text: '{' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: arglist rest: '' - !!perl/hash:RE_sequence alt: methodop_3 1 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_cclass i: 0 nobind: 1 text: '[\\(]' - !!perl/hash:RE_method name: args rest: '' - !!perl/hash:RE_block alt: methodop_3 2 quant: - '?' methodop_0: *36 methodop_1: *37 methodop_2: *38 methodop_3: *39 methodop_4: *40 modifier_expr: !!perl/hash:RE_ast dba: modifier_expr dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: EXPR rest: '' - !!perl/hash:RE_method name: ws rest: '' module_name__S_039normal: !!perl/hash:RE_ast dba: module_name dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: arglist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 quant: - '?' multi_declarator__S_058multi: !!perl/hash:RE_ast dba: multi_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: multi - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: declarator rest: '' - !!perl/hash:RE_method name: routine_def rest: 1 - !!perl/hash:RE_method name: panic rest: 1 multi_declarator__S_059proto: !!perl/hash:RE_ast dba: multi_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: proto - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: declarator rest: '' - !!perl/hash:RE_method name: routine_def rest: 1 - !!perl/hash:RE_method name: panic rest: 1 multi_declarator__S_060only: !!perl/hash:RE_ast dba: multi_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: only - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: declarator rest: '' - !!perl/hash:RE_method name: routine_def rest: 1 - !!perl/hash:RE_method name: panic rest: 1 multi_declarator__S_061null: !!perl/hash:RE_ast dba: multi_declarator dic: STD::P6 re: !!perl/hash:RE_method name: declarator rest: '' multisig: !!perl/hash:RE_ast dba: signature dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: ':' quant: - '?' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '**' - ':' - !!perl/hash:RE_string a: 0 dba: signature dic: STD::P6 i: 0 i_needed: 1 r: 1 s: 1 text: '|' - !!perl/hash:RE_method name: ws rest: '' named_param: !!perl/hash:RE_ast dba: named_param dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_bracket re: &41 !!perl/hash:RE_any altname: named_param_0 dba: named_param dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: named_param_0 0 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &42 !!perl/hash:RE_any altname: named_param_1 dba: named_param dic: STD::P6 zyg: - !!perl/hash:RE_method alt: named_param_1 0 name: named_param rest: '' - !!perl/hash:RE_sequence alt: named_param_1 1 zyg: - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method alt: named_param_0 1 name: param_var rest: 1 named_param_0: *41 named_param_1: *42 nullterm: !!perl/hash:RE_ast dba: nullterm dic: STD::P6 re: !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_noop nobind: 1 nulltermish: !!perl/hash:RE_ast dba: null term dic: STD::P6 re: !!perl/hash:RE_bracket re: &43 !!perl/hash:RE_any altname: nulltermish_0 dba: null term dic: STD::P6 zyg: - !!perl/hash:RE_assertion alt: nulltermish_0 0 assert: '?' re: !!perl/hash:RE_method name: stdstopper rest: '' - !!perl/hash:RE_sequence alt: nulltermish_0 1 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: termish rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion alt: nulltermish_0 2 assert: '?' re: !!perl/hash:RE_noop nobind: 1 nulltermish_0: *43 number: !!perl/hash:RE_ast dba: number dic: STD::P6 re: !!perl/hash:RE_bracket re: &44 !!perl/hash:RE_any altname: number_0 dba: number dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: number_0 0 zyg: - !!perl/hash:RE_string i: 0 text: 'NaN' - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method alt: number_0 1 name: integer rest: '' - !!perl/hash:RE_method alt: number_0 2 name: dec_number rest: '' - !!perl/hash:RE_method alt: number_0 3 name: rad_number rest: '' - !!perl/hash:RE_sequence alt: number_0 4 zyg: - !!perl/hash:RE_string i: 0 text: 'Inf' - !!perl/hash:RE_meta text: » number_0: *44 old_rx_mods: !!perl/hash:RE_ast dba: old_rx_mods dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: after nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_bindpos atom: !!perl/hash:RE_paren re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_qw min: 1 text: < i g s m x c e > quant: - + - !!perl/hash:RE_block {} old_tr_mods: !!perl/hash:RE_ast dba: old_tr_mods dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bindpos atom: !!perl/hash:RE_paren re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_qw min: 1 text: < c d s ] > quant: - + - !!perl/hash:RE_block {} package_declarator__S_048class: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: class - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: package_def rest: '' package_declarator__S_049grammar: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: grammar - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: package_def rest: '' package_declarator__S_050module: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: module - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: package_def rest: '' package_declarator__S_051package: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: package - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: package_def rest: '' package_declarator__S_052role: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: role - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: package_def rest: '' package_declarator__S_053knowhow: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: knowhow - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: package_def rest: '' package_declarator__S_054slang: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: slang - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: package_def rest: '' package_declarator__S_055require: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: require - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: module_name rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: EXPR rest: '' quant: - '?' - !!perl/hash:RE_method name: EXPR rest: '' package_declarator__S_056trusts: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: trusts - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: module_name rest: '' package_declarator__S_057also: !!perl/hash:RE_ast dba: package_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: also - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - + - !!perl/hash:RE_method name: ws rest: '' package_def: !!perl/hash:RE_ast dba: package_def dic: STD::P6 re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: newlex rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: getdecl rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: blockoid rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: checkyada rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ; - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: statementlist rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' param_sep: !!perl/hash:RE_ast dba: param_sep dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &45 !!perl/hash:RE_any altname: param_sep_0 dba: param_sep dic: STD::P6 zyg: - !!perl/hash:RE_string alt: param_sep_0 0 i: 0 text: ',' - !!perl/hash:RE_string alt: param_sep_0 1 i: 0 text: ':' - !!perl/hash:RE_string alt: param_sep_0 2 i: 0 text: ; - !!perl/hash:RE_string alt: param_sep_0 3 i: 0 text: ;; - !!perl/hash:RE_method name: ws rest: '' param_sep_0: *45 param_var: !!perl/hash:RE_ast dba: formal parameter dic: STD::P6 re: !!perl/hash:RE_bracket re: &46 !!perl/hash:RE_any altname: param_var_0 dba: formal parameter dic: STD::P6 zyg: - !!perl/hash:RE_bracket alt: param_var_0 0 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_bracket alt: param_var_0 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_sequence alt: param_var_0 2 zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: twigil rest: '' quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: ident rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: sublongname rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: identifier rest: '' quant: - '?' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[ \< \( \[ \{ ]' - !!perl/hash:RE_method name: postcircumfix rest: '' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: decint rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_cclass i: 0 text: '[/!]' quant: - '?' - !!perl/hash:RE_block {} param_var_0: *46 parameter: !!perl/hash:RE_ast dba: parameter dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &47 !!perl/hash:RE_any altname: parameter_0 dba: parameter dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: parameter_0 0 zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: type_constraint rest: '' quant: - + - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: &48 !!perl/hash:RE_any altname: parameter_1 dba: parameter dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: parameter_1 0 zyg: - !!perl/hash:RE_string i: 0 text: '**' - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_1 1 zyg: - !!perl/hash:RE_string i: 0 text: '*' - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_1 2 zyg: - !!perl/hash:RE_string i: 0 text: '|' - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_1 3 zyg: - !!perl/hash:RE_string i: 0 text: \ - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_1 4 zyg: - !!perl/hash:RE_bracket re: &49 !!perl/hash:RE_any altname: parameter_2 dba: parameter dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: parameter_2 0 zyg: - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_2 1 zyg: - !!perl/hash:RE_method name: named_param rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: &50 !!perl/hash:RE_any altname: parameter_3 dba: parameter dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: parameter_3 0 zyg: - !!perl/hash:RE_string i: 0 text: '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_3 1 zyg: - !!perl/hash:RE_string i: 0 text: '!' - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion alt: parameter_3 2 assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_sequence alt: parameter_1 5 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_0 1 zyg: - !!perl/hash:RE_string i: 0 text: '**' - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_0 2 zyg: - !!perl/hash:RE_string i: 0 text: '*' - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_0 3 zyg: - !!perl/hash:RE_string i: 0 text: '|' - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_0 4 zyg: - !!perl/hash:RE_string i: 0 text: \ - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_0 5 zyg: - !!perl/hash:RE_bracket re: &51 !!perl/hash:RE_any altname: parameter_4 dba: parameter dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: parameter_4 0 zyg: - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_4 1 zyg: - !!perl/hash:RE_method name: named_param rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: &52 !!perl/hash:RE_any altname: parameter_5 dba: parameter dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: parameter_5 0 zyg: - !!perl/hash:RE_string i: 0 text: '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: parameter_5 1 zyg: - !!perl/hash:RE_string i: 0 text: '!' - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion alt: parameter_5 2 assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_sequence alt: parameter_0 6 zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - '*' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: post_constraint rest: '' quant: - '*' - !!perl/hash:RE_method name: getdecl rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: default_value rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[,;)\]\{\-]' - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} parameter_0: *47 parameter_1: *48 parameter_2: *49 parameter_3: *50 parameter_4: *51 parameter_5: *52 pblock: !!perl/hash:RE_ast dba: parameterized block dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &53 !!perl/hash:RE_any altname: pblock_0 dba: parameterized block dic: STD::P6 zyg: - !!perl/hash:RE_method alt: pblock_0 0 name: lambda rest: '' - !!perl/hash:RE_string alt: pblock_0 1 i: 0 text: '{' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: &54 !!perl/hash:RE_any altname: pblock_1 dba: parameterized block dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: pblock_1 0 zyg: - !!perl/hash:RE_method name: lambda rest: '' - !!perl/hash:RE_method name: newlex rest: 1 - !!perl/hash:RE_method name: signature rest: 1 - !!perl/hash:RE_method name: blockoid rest: '' - !!perl/hash:RE_method name: getsig rest: '' - !!perl/hash:RE_sequence alt: pblock_1 1 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_method name: newlex rest: 1 - !!perl/hash:RE_method name: blockoid rest: '' - !!perl/hash:RE_method name: getsig rest: '' pblock_0: *53 pblock_1: *54 post_constraint: !!perl/hash:RE_ast dba: constraint dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &55 !!perl/hash:RE_any altname: post_constraint_0 dba: constraint dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: post_constraint_0 0 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: post_constraint_0 1 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: post_constraint_0 2 zyg: - !!perl/hash:RE_string i: 0 text: w - !!perl/hash:RE_string i: 0 text: h - !!perl/hash:RE_string i: 0 text: e - !!perl/hash:RE_string i: 0 text: r - !!perl/hash:RE_string i: 0 text: e - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: EXPR rest: 1 - !!perl/hash:RE_method name: ws rest: '' post_constraint_0: *55 postcircumfix__S_207Paren_Thesis: !!perl/hash:RE_ast dba: argument list dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semiarglist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: O rest: 1 postcircumfix__S_208Bra_Ket: !!perl/hash:RE_ast dba: subscript dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semilist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: O rest: 1 - !!perl/hash:RE_block {} postcircumfix__S_209Cur_Ly: !!perl/hash:RE_ast dba: subscript dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semilist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: O rest: 1 - !!perl/hash:RE_method name: curlycheck rest: '' postcircumfix__S_210Lt_Gt: !!perl/hash:RE_ast dba: postcircumfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_bracket re: &56 !!perl/hash:RE_any altname: postcircumfix__S_210Lt_Gt_0 dba: postcircumfix dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: postcircumfix__S_210Lt_Gt_0 0 min: 1 text: \d - !!perl/hash:RE_method alt: postcircumfix__S_210Lt_Gt_0 1 name: sigil rest: '' - !!perl/hash:RE_string alt: postcircumfix__S_210Lt_Gt_0 2 i: 0 text: ':' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 postcircumfix__S_210Lt_Gt_0: *56 postcircumfix__S_211LtLt_GtGt: !!perl/hash:RE_ast dba: postcircumfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: << - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '>>' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: O rest: 1 postcircumfix__S_212Fre_Nch: !!perl/hash:RE_ast dba: postcircumfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: « - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: » - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: O rest: 1 postfix__S_215i: !!perl/hash:RE_ast dba: postfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: i - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: O rest: 1 postfix__S_217MinusGt: !!perl/hash:RE_ast dba: postfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: -> - !!perl/hash:RE_bracket re: &57 !!perl/hash:RE_any altname: postfix__S_217MinusGt_0 dba: postfix dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: postfix__S_217MinusGt_0 0 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_cclass i: 0 text: '[ \[ \{ \( ]' - !!perl/hash:RE_method name: obs rest: 1 - !!perl/hash:RE_method alt: postfix__S_217MinusGt_0 1 name: obs rest: 1 postfix__S_217MinusGt_0: *57 postfix__S_218PlusPlus: !!perl/hash:RE_ast dba: postfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ++ - !!perl/hash:RE_method name: O rest: 1 postfix__S_219MinusMinus: !!perl/hash:RE_ast dba: postfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: -- - !!perl/hash:RE_method name: O rest: 1 postfix_prefix_meta_operator__S_198Nch: !!perl/hash:RE_ast dba: postfix_prefix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &58 !!perl/hash:RE_any altname: postfix_prefix_meta_operator__S_198Nch_0 dba: postfix_prefix_meta_operator dic: STD::P6 zyg: - !!perl/hash:RE_method alt: postfix_prefix_meta_operator__S_198Nch_0 0 i: 0 name: sym rest: '' sym: » - !!perl/hash:RE_string alt: postfix_prefix_meta_operator__S_198Nch_0 1 i: 0 text: '>>' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( postfix_prefix_meta_operator__S_198Nch_0: *58 postop: !!perl/hash:RE_ast dba: postop dic: STD::P6 re: &59 !!perl/hash:RE_any altname: postop_0 dba: postop dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: postop_0 0 zyg: - !!perl/hash:RE_method name: postfix rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: postop_0 1 zyg: - !!perl/hash:RE_method name: postcircumfix rest: '' - !!perl/hash:RE_block {} postop_0: *59 prefix__S_220PlusPlus: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ++ - !!perl/hash:RE_method name: O rest: 1 prefix__S_221MinusMinus: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: -- - !!perl/hash:RE_method name: O rest: 1 prefix__S_223Bang: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '!' - !!perl/hash:RE_method name: O rest: 1 prefix__S_224Plus: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: + - !!perl/hash:RE_method name: O rest: 1 prefix__S_225Minus: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '-' - !!perl/hash:RE_method name: O rest: 1 prefix__S_226TildeTilde: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ~~ - !!perl/hash:RE_method name: dupprefix rest: 1 - !!perl/hash:RE_method name: O rest: 1 prefix__S_227Tilde: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '~' - !!perl/hash:RE_method name: O rest: 1 prefix__S_228QuestionQuestion: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ?? - !!perl/hash:RE_method name: dupprefix rest: 1 - !!perl/hash:RE_method name: O rest: 1 prefix__S_229Question: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '?' - !!perl/hash:RE_method name: O rest: 1 prefix__S_230TildeCaret: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ~^ - !!perl/hash:RE_method name: O rest: 1 prefix__S_231PlusCaret: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: +^ - !!perl/hash:RE_method name: O rest: 1 prefix__S_232QuestionCaret: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ?^ - !!perl/hash:RE_method name: O rest: 1 prefix__S_233CaretCaret: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^^ - !!perl/hash:RE_method name: dupprefix rest: 1 - !!perl/hash:RE_method name: O rest: 1 prefix__S_234Caret: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ^ - !!perl/hash:RE_method name: O rest: 1 prefix__S_235VertVert: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '||' - !!perl/hash:RE_method name: O rest: 1 prefix__S_236Vert: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '|' - !!perl/hash:RE_method name: O rest: 1 prefix__S_266sleep: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: sleep - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \s quant: - '*' - !!perl/hash:RE_method name: O rest: 1 prefix__S_267abs: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: abs - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \s quant: - '*' - !!perl/hash:RE_method name: O rest: 1 prefix__S_268let: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: let - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \s quant: - '*' - !!perl/hash:RE_method name: O rest: 1 prefix__S_269temp: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: temp - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \s quant: - '*' - !!perl/hash:RE_method name: O rest: 1 prefix__S_321so: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: so - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: O rest: 1 prefix__S_322not: !!perl/hash:RE_ast dba: prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: not - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: O rest: 1 prefix_circumfix_meta_operator__S_196reduce: !!perl/hash:RE_ast dba: prefix_circumfix_meta_operator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \S quant: - + - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_paren re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_meta min: 1 text: \\ - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_bracket re: &60 !!perl/hash:RE_any altname: prefix_circumfix_meta_operator__S_196reduce_0 dba: prefix_circumfix_meta_operator dic: STD::P6 zyg: - !!perl/hash:RE_string alt: prefix_circumfix_meta_operator__S_196reduce_0 0 i: 0 text: « - !!perl/hash:RE_assertion alt: prefix_circumfix_meta_operator__S_196reduce_0 1 assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: can_meta rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_method name: O rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \s quant: - + - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: stdstopper rest: '' - !!perl/hash:RE_block {} quant: - '?' - !!perl/hash:RE_block {} prefix_circumfix_meta_operator__S_196reduce_0: *60 prefix_postfix_meta_operator__S_197Fre: !!perl/hash:RE_ast dba: prefix_postfix_meta_operator dic: STD::P6 re: &61 !!perl/hash:RE_any altname: prefix_postfix_meta_operator__S_197Fre_0 dba: prefix_postfix_meta_operator dic: STD::P6 zyg: - !!perl/hash:RE_method alt: prefix_postfix_meta_operator__S_197Fre_0 0 i: 0 name: sym rest: '' sym: « - !!perl/hash:RE_string alt: prefix_postfix_meta_operator__S_197Fre_0 1 i: 0 text: << prefix_postfix_meta_operator__S_197Fre_0: *61 privop: !!perl/hash:RE_ast dba: privop dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '!' - !!perl/hash:RE_method name: methodop rest: '' - !!perl/hash:RE_method name: O rest: 1 quasiquibble: !!perl/hash:RE_ast dba: quasiquibble dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: babble rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_decl {} - !!perl/hash:RE_method name: block rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_decl {} - !!perl/hash:RE_method name: starter rest: '' - !!perl/hash:RE_method name: statementlist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: stopper rest: '' - !!perl/hash:RE_method name: panic rest: 1 quote__S_141SlashSlash: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: / - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \s quant: - '*' - !!perl/hash:RE_string i: 0 text: / - !!perl/hash:RE_method name: sorry rest: 1 quote__S_142Slash_Slash: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: / - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: / - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: old_rx_mods rest: '' quant: - '?' quote__S_143qq: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: qq - !!perl/hash:RE_bracket re: &62 !!perl/hash:RE_any altname: quote__S_143qq_0 dba: quote dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: quote__S_143qq_0 0 zyg: - !!perl/hash:RE_method name: quote_mod rest: '' - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: quibble rest: 1 - !!perl/hash:RE_sequence alt: quote__S_143qq_0 1 zyg: - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: quibble rest: 1 quote__S_143qq_0: *62 quote__S_144q: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: q - !!perl/hash:RE_bracket re: &63 !!perl/hash:RE_any altname: quote__S_144q_0 dba: quote dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: quote__S_144q_0 0 zyg: - !!perl/hash:RE_method name: quote_mod rest: '' - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: quibble rest: 1 - !!perl/hash:RE_sequence alt: quote__S_144q_0 1 zyg: - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: quibble rest: 1 quote__S_144q_0: *63 quote__S_145Q: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: Q - !!perl/hash:RE_bracket re: &64 !!perl/hash:RE_any altname: quote__S_145Q_0 dba: quote dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: quote__S_145Q_0 0 zyg: - !!perl/hash:RE_method name: quote_mod rest: '' - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: quibble rest: 1 - !!perl/hash:RE_sequence alt: quote__S_145Q_0 1 zyg: - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: quibble rest: 1 quote__S_145Q_0: *64 quote__S_157rx: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: rx - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: quibble rest: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: old_rx_mods rest: '' quote__S_158m: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: m - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: quibble rest: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: old_rx_mods rest: '' quote__S_159mm: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: mm - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: quibble rest: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: old_rx_mods rest: '' quote__S_160s: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: s - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: sibble rest: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: old_rx_mods rest: '' quote__S_161ss: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ss - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: sibble rest: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: old_rx_mods rest: '' quote__S_162tr: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: tr - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: tribble rest: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: old_tr_mods rest: '' quote__S_163y: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: y - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_meta min: 1 text: \W - !!perl/hash:RE_method name: obs rest: 1 quote__S_164quasi: !!perl/hash:RE_ast dba: quote dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: quasi - !!perl/hash:RE_meta text: » - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: quasiquibble rest: 1 quote_mod__S_146w: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: w quote_mod__S_147ww: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ww quote_mod__S_148p: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: p quote_mod__S_149x: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: x quote_mod__S_150to: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: to quote_mod__S_151s: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: s quote_mod__S_152a: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: a quote_mod__S_153h: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: h quote_mod__S_154f: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: f quote_mod__S_155c: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: c quote_mod__S_156b: !!perl/hash:RE_ast dba: quote_mod dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: b regex_block: !!perl/hash:RE_ast dba: regex_block dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: quotepair rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} quant: - '*' - !!perl/hash:RE_bracket re: &65 !!perl/hash:RE_any altname: regex_block_0 dba: regex_block dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: regex_block_0 0 zyg: - !!perl/hash:RE_string i: 0 text: '{*}' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket alt: regex_block_0 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: curlycheck rest: '' regex_block_0: *65 regex_declarator__S_066regex: !!perl/hash:RE_ast dba: regex_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: regex - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: regex_def rest: 1 regex_declarator__S_067token: !!perl/hash:RE_ast dba: regex_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: token - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: regex_def rest: 1 regex_declarator__S_068rule: !!perl/hash:RE_ast dba: regex_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: rule - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: regex_def rest: 1 regex_def: !!perl/hash:RE_ast dba: regex_def dic: STD::P6 re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &66 !!perl/hash:RE_any altname: regex_def_0 dba: regex_def dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: regex_def_0 0 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: '&' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: deflongname rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: regex_def_0 1 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: deflongname rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: newlex rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &67 !!perl/hash:RE_any altname: regex_def_1 dba: regex_def dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: regex_def_1 0 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: ':' quant: - '?' - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: signature rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: regex_def_1 1 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: trait rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: finishlex rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: regex_block rest: '' - !!perl/hash:RE_method name: getsig rest: '' - !!perl/hash:RE_method name: getdecl rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' regex_def_0: *66 regex_def_1: *67 routine_declarator__S_062sub: !!perl/hash:RE_ast dba: routine_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: sub - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: routine_def rest: 1 routine_declarator__S_063method: !!perl/hash:RE_ast dba: routine_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: method - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: method_def rest: '' routine_declarator__S_064submethod: !!perl/hash:RE_ast dba: routine_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: submethod - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: method_def rest: '' routine_declarator__S_065macro: !!perl/hash:RE_ast dba: routine_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: macro - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: macro_def rest: '' routine_def: !!perl/hash:RE_ast dba: routine_def dic: STD::P6 re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &68 !!perl/hash:RE_any altname: routine_def_0 dba: routine_def dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: routine_def_0 0 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '&' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: '*' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: deflongname rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: routine_def_0 1 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: deflongname rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: newlex rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &69 !!perl/hash:RE_any altname: routine_def_1 dba: routine_def dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: routine_def_1 0 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: multisig rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: routine_def_1 1 zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: trait rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: blockoid rest: '' - !!perl/hash:RE_method name: checkyada rest: '' - !!perl/hash:RE_method name: getsig rest: '' - !!perl/hash:RE_method name: getdecl rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' routine_def_0: *68 routine_def_1: *69 scope_declarator__S_041my: !!perl/hash:RE_ast dba: scope_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: my - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: scoped rest: 1 scope_declarator__S_042our: !!perl/hash:RE_ast dba: scope_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: our - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: scoped rest: 1 scope_declarator__S_043anon: !!perl/hash:RE_ast dba: scope_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: anon - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: scoped rest: 1 scope_declarator__S_044state: !!perl/hash:RE_ast dba: scope_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: state - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: scoped rest: 1 scope_declarator__S_045has: !!perl/hash:RE_ast dba: scope_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: has - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: scoped rest: 1 scope_declarator__S_046augment: !!perl/hash:RE_ast dba: scope_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: augment - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: scoped rest: 1 scope_declarator__S_047supersede: !!perl/hash:RE_ast dba: scope_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: supersede - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: scoped rest: 1 scoped: !!perl/hash:RE_ast dba: scoped declarator dic: STD::P6 re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &70 !!perl/hash:RE_any altname: scoped_0 dba: scoped declarator dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: scoped_0 0 zyg: - !!perl/hash:RE_method name: declarator rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: scoped_0 1 zyg: - !!perl/hash:RE_method name: regex_declarator rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: scoped_0 2 zyg: - !!perl/hash:RE_method name: package_declarator rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: scoped_0 3 zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: typename rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - + - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: multi_declarator rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: scoped_0 4 zyg: - !!perl/hash:RE_method name: multi_declarator rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_cclass i: 0 text: '[A..Z]' - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' scoped_0: *70 semiarglist: !!perl/hash:RE_ast dba: semiarglist dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: arglist rest: '' quant: - '**' - ':' - !!perl/hash:RE_string a: 0 dba: semiarglist dic: STD::P6 i: 0 i_needed: 1 r: 1 s: 0 text: ; - !!perl/hash:RE_method name: ws rest: '' semilist: !!perl/hash:RE_ast dba: semicolon list dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &71 !!perl/hash:RE_any altname: semilist_0 dba: semicolon list dic: STD::P6 zyg: - !!perl/hash:RE_assertion alt: semilist_0 0 assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_cclass i: 0 text: '[\)\]\}]' - !!perl/hash:RE_sequence alt: semilist_0 1 zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: statement rest: '' - !!perl/hash:RE_method name: eat_terminator rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' semilist_0: *71 sibble: !!perl/hash:RE_ast dba: sibble dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: babble rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_var var: $start - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_var var: $stop - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: infixish rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: EXPR rest: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_var var: $stop - !!perl/hash:RE_method name: panic rest: 1 signature: !!perl/hash:RE_ast dba: signature dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &72 !!perl/hash:RE_any altname: signature_0 dba: signature dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: signature_0 0 zyg: - !!perl/hash:RE_string i: 0 text: \| - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: param_var rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &73 !!perl/hash:RE_any altname: signature_1 dba: signature dic: STD::P6 zyg: - !!perl/hash:RE_string alt: signature_1 0 i: 0 text: --> - !!perl/hash:RE_string alt: signature_1 1 i: 0 text: ) - !!perl/hash:RE_string alt: signature_1 2 i: 0 text: ']' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_quantified_atom alt: signature_0 1 atom: !!perl/hash:RE_bracket re: &74 !!perl/hash:RE_any altname: signature_2 dba: signature dic: STD::P6 zyg: - !!perl/hash:RE_assertion alt: signature_2 0 assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &75 !!perl/hash:RE_any altname: signature_3 dba: signature dic: STD::P6 zyg: - !!perl/hash:RE_string alt: signature_3 0 i: 0 text: --> - !!perl/hash:RE_string alt: signature_3 1 i: 0 text: ) - !!perl/hash:RE_string alt: signature_3 2 i: 0 text: ']' - !!perl/hash:RE_string alt: signature_3 3 i: 0 text: '{' - !!perl/hash:RE_sequence alt: signature_3 4 zyg: - !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_meta min: 1 text: \s - !!perl/hash:RE_string alt: signature_3 5 i: 0 text: ;; - !!perl/hash:RE_bracket alt: signature_2 1 re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: parameter rest: '' - !!perl/hash:RE_method name: panic rest: 1 quant: - '**' - ':' - !!perl/hash:RE_method a: 0 dba: signature dic: STD::P6 i: 0 name: param_sep need_match: 0 r: 1 rest: ~ s: 0 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: --> - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: type_constraint rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_block {} signature_0: *72 signature_1: *73 signature_2: *74 signature_3: *75 sigterm: !!perl/hash:RE_ast dba: signature dic: STD::P6 re: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: :( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: fakesignature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 special_variable__S_091Dollar_a2_: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $¢ special_variable__S_092DollarBang: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $! - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \w special_variable__S_093DollarBangCur_Ly: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: $! - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: &76 !!perl/hash:RE_any altname: special_variable__S_093DollarBangCur_Ly_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_method alt: special_variable__S_093DollarBangCur_Ly_0 0 name: identifier rest: '' - !!perl/hash:RE_method alt: special_variable__S_093DollarBangCur_Ly_0 1 name: statementlist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_block {} special_variable__S_093DollarBangCur_Ly_0: *76 special_variable__S_094DollarSlash: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $/ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_cclass i: 0 nobind: 1 text: '[=]' - !!perl/hash:RE_method name: obs rest: 1 quant: - '?' special_variable__S_095DollarTilde: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $~ - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &77 !!perl/hash:RE_any altname: special_variable__S_095DollarTilde_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_095DollarTilde_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_095DollarTilde_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_095DollarTilde_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_095DollarTilde_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_095DollarTilde_0: *77 special_variable__S_096DollarGrave: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $` - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &78 !!perl/hash:RE_any altname: special_variable__S_096DollarGrave_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_096DollarGrave_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_096DollarGrave_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_096DollarGrave_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_096DollarGrave_0: *78 special_variable__S_097DollarAt: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $@ - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \W - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_098DollarSharp: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $# - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bindpos atom: !!perl/hash:RE_paren re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \w quant: - + - !!perl/hash:RE_method name: obs rest: 1 - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_099DollarDollar: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $$ - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: alpha rest: '' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &79 !!perl/hash:RE_any altname: special_variable__S_099DollarDollar_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_099DollarDollar_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_099DollarDollar_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_099DollarDollar_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_099DollarDollar_0: *79 special_variable__S_100DollarPercent: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $% - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_meta min: 1 text: \w - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_101DollarCaretX: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_string i: 0 text: ^ - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_cclass i: 0 text: '[A..Z]' - !!perl/hash:RE_meta min: 1 text: \W - !!perl/hash:RE_method name: obscaret rest: 1 special_variable__S_102DollarCaret: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $^ - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &80 !!perl/hash:RE_any altname: special_variable__S_102DollarCaret_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_102DollarCaret_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_102DollarCaret_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_102DollarCaret_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_102DollarCaret_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_102DollarCaret_0: *80 special_variable__S_103DollarAmp: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $& - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &81 !!perl/hash:RE_any altname: special_variable__S_103DollarAmp_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_103DollarAmp_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_103DollarAmp_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_103DollarAmp_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_103DollarAmp_0: *81 special_variable__S_104DollarStar: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $* - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &82 !!perl/hash:RE_any altname: special_variable__S_104DollarStar_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_104DollarStar_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_104DollarStar_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_104DollarStar_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_104DollarStar_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_104DollarStar_0: *82 special_variable__S_105DollarThesis: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $) - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &83 !!perl/hash:RE_any altname: special_variable__S_105DollarThesis_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_105DollarThesis_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_105DollarThesis_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_105DollarThesis_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_105DollarThesis_0: *83 special_variable__S_106DollarMinus: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $- - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &84 !!perl/hash:RE_any altname: special_variable__S_106DollarMinus_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_106DollarMinus_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_106DollarMinus_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_106DollarMinus_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_106DollarMinus_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_106DollarMinus_0: *84 special_variable__S_107DollarEqual: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $= - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &85 !!perl/hash:RE_any altname: special_variable__S_107DollarEqual_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_107DollarEqual_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_107DollarEqual_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_107DollarEqual_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_107DollarEqual_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_107DollarEqual_0: *85 special_variable__S_108AtPlus: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '@+' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &86 !!perl/hash:RE_any altname: special_variable__S_108AtPlus_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_108AtPlus_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_108AtPlus_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_108AtPlus_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_108AtPlus_0: *86 special_variable__S_109PercentPlus: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '%+' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &87 !!perl/hash:RE_any altname: special_variable__S_109PercentPlus_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_109PercentPlus_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_109PercentPlus_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_109PercentPlus_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_109PercentPlus_0: *87 special_variable__S_110DollarPlusBra_Ket: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: $+[ - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_111AtPlusBra_Ket: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '@+[' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_112AtPlusCur_Ly: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '@+{' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_113AtMinus: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '@-' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &88 !!perl/hash:RE_any altname: special_variable__S_113AtMinus_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_113AtMinus_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_113AtMinus_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_113AtMinus_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_113AtMinus_0: *88 special_variable__S_114PercentMinus: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '%-' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &89 !!perl/hash:RE_any altname: special_variable__S_114PercentMinus_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_114PercentMinus_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_114PercentMinus_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_114PercentMinus_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_114PercentMinus_0: *89 special_variable__S_115DollarMinusBra_Ket: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: $-[ - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_116AtMinusBra_Ket: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '@-[' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_117PercentMinusCur_Ly: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '@-{' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_118DollarPlus: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $+ - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &90 !!perl/hash:RE_any altname: special_variable__S_118DollarPlus_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_118DollarPlus_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_118DollarPlus_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_118DollarPlus_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_118DollarPlus_0: *90 special_variable__S_119DollarCurCaret_Ly: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_string i: 0 text: '{^' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_method name: obscaret rest: 1 special_variable__S_120ColonColonCur_Ly: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '{' special_variable__S_121DollarCur_Ly: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_block {} - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_meta text: .*? - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_block {} special_variable__S_122DollarBra: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $[ - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &91 !!perl/hash:RE_any altname: special_variable__S_122DollarBra_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_122DollarBra_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_122DollarBra_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_122DollarBra_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_122DollarBra_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_122DollarBra_0: *91 special_variable__S_123DollarKet: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $] - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &92 !!perl/hash:RE_any altname: special_variable__S_123DollarKet_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_123DollarKet_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_123DollarKet_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_123DollarKet_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_123DollarKet_0: *92 special_variable__S_124DollarBack: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $\ - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &93 !!perl/hash:RE_any altname: special_variable__S_124DollarBack_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_124DollarBack_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_124DollarBack_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_124DollarBack_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_124DollarBack_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_124DollarBack_0: *93 special_variable__S_125DollarVert: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $| - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &94 !!perl/hash:RE_any altname: special_variable__S_125DollarVert_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_125DollarVert_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_125DollarVert_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_125DollarVert_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_125DollarVert_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_125DollarVert_0: *94 special_variable__S_126DollarColon: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '$:' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[\x20\t\n\],=)}]' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_127DollarSemi: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $; - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &95 !!perl/hash:RE_any altname: special_variable__S_127DollarSemi_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_127DollarSemi_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_127DollarSemi_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_127DollarSemi_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_127DollarSemi_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_127DollarSemi_0: *95 special_variable__S_128DollarSingle: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $' - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &96 !!perl/hash:RE_any altname: special_variable__S_128DollarSingle_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_128DollarSingle_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_128DollarSingle_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_128DollarSingle_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_128DollarSingle_0: *96 special_variable__S_129DollarDouble: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $" - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &97 !!perl/hash:RE_any altname: special_variable__S_129DollarDouble_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_129DollarDouble_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_129DollarDouble_0 1 i: 0 text: ',' - !!perl/hash:RE_string alt: special_variable__S_129DollarDouble_0 2 i: 0 text: = - !!perl/hash:RE_method alt: special_variable__S_129DollarDouble_0 3 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_129DollarDouble_0: *97 special_variable__S_130DollarComma: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $, - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &98 !!perl/hash:RE_any altname: special_variable__S_130DollarComma_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_130DollarComma_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_130DollarComma_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_130DollarComma_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_130DollarComma_0: *98 special_variable__S_131DollarLt: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $< - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_cclass i: 0 text: '[ = , ; ? : ! ) \] } ]' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \S quant: - '*' - !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_132DollarGt: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $> - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &99 !!perl/hash:RE_any altname: special_variable__S_132DollarGt_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_132DollarGt_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_132DollarGt_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_132DollarGt_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_132DollarGt_0: *99 special_variable__S_133DollarDot: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $. - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &100 !!perl/hash:RE_any altname: special_variable__S_133DollarDot_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_133DollarDot_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_133DollarDot_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_133DollarDot_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_133DollarDot_0: *100 special_variable__S_134DollarQuestion: !!perl/hash:RE_ast dba: special_variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: $? - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &101 !!perl/hash:RE_any altname: special_variable__S_134DollarQuestion_0 dba: special_variable dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: special_variable__S_134DollarQuestion_0 0 min: 1 text: \s - !!perl/hash:RE_string alt: special_variable__S_134DollarQuestion_0 1 i: 0 text: ',' - !!perl/hash:RE_method alt: special_variable__S_134DollarQuestion_0 2 name: terminator rest: '' - !!perl/hash:RE_method name: obs rest: 1 special_variable__S_134DollarQuestion_0: *101 statement: !!perl/hash:RE_ast dba: statement dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[\)\]\}]' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: stopper rest: '' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_assertion assert: '!' nobind: 1 re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_bracket re: &102 !!perl/hash:RE_any altname: statement_0 dba: statement end dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: statement_0 0 zyg: - !!perl/hash:RE_method name: label rest: '' - !!perl/hash:RE_method name: statement rest: '' - !!perl/hash:RE_method alt: statement_0 1 name: statement_control rest: '' - !!perl/hash:RE_sequence alt: statement_0 2 zyg: - !!perl/hash:RE_method name: EXPR rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &103 !!perl/hash:RE_any altname: statement_1 dba: statement modifier loop dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: statement_1 0 zyg: - !!perl/hash:RE_method name: statement_mod_loop rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: statement_1 1 zyg: - !!perl/hash:RE_method name: statement_mod_cond rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: statement_mod_loop rest: '' quant: - '?' quant: - '?' - !!perl/hash:RE_assertion alt: statement_0 3 assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ; - !!perl/hash:RE_assertion alt: statement_0 4 assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_method name: stopper rest: '' - !!perl/hash:RE_sequence alt: statement_0 5 zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &104 !!perl/hash:RE_any altname: statement_2 dba: statement dic: STD::P6 zyg: - !!perl/hash:RE_string alt: statement_2 0 i: 0 text: ; - !!perl/hash:RE_string alt: statement_2 1 i: 0 text: ) - !!perl/hash:RE_string alt: statement_2 2 i: 0 text: ']' - !!perl/hash:RE_string alt: statement_2 3 i: 0 text: '}' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method name: infixstopper rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: panic rest: 1 quant: - '?' statement_0: *102 statement_1: *103 statement_2: *104 statement_control__S_000need: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: need - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &105 !!perl/hash:RE_any altname: statement_control__S_000need_0 dba: statement_control dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: statement_control__S_000need_0 0 zyg: - !!perl/hash:RE_method name: version rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: statement_control__S_000need_0 1 zyg: - !!perl/hash:RE_method name: module_name rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} quant: - '**' - ':' - !!perl/hash:RE_string a: 0 dba: statement_control dic: STD::P6 i: 0 i_needed: 1 r: 1 s: 1 text: ',' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_000need_0: *105 statement_control__S_001import: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: import - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: term rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: arglist rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: ws rest: '' statement_control__S_002use: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: use - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &106 !!perl/hash:RE_any altname: statement_control__S_002use_0 dba: statement_control dic: STD::P6 zyg: - !!perl/hash:RE_method alt: statement_control__S_002use_0 0 name: version rest: '' - !!perl/hash:RE_sequence alt: statement_control__S_002use_0 1 zyg: - !!perl/hash:RE_method name: module_name rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: arglist rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: explain_mystery rest: '' statement_control__S_002use_0: *106 statement_control__S_003no: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: no - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: module_name rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: arglist rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: explain_mystery rest: '' statement_control__S_004if: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: if - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: xblock rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &107 !!perl/hash:RE_any altname: statement_control__S_004if_0 dba: statement_control dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: statement_control__S_004if_0 0 zyg: - !!perl/hash:RE_string i: 0 text: else - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_string i: 0 text: if - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: statement_control__S_004if_0 1 zyg: - !!perl/hash:RE_string i: 0 text: elsif - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: xblock rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: else - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: pblock rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_004if_0: *107 statement_control__S_005unless: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: unless - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: xblock rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: else - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' statement_control__S_006while: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: while - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: my quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: $ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \w quant: - + - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: = quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: $ quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \w quant: - + - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: '>' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: xblock rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_007until: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: until - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: xblock rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_008repeat: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: repeat - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &108 !!perl/hash:RE_any altname: statement_control__S_008repeat_0 dba: statement_control dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: statement_control__S_008repeat_0 0 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: &109 !!perl/hash:RE_any altname: statement_control__S_008repeat_1 dba: statement_control dic: STD::P6 zyg: - !!perl/hash:RE_string alt: statement_control__S_008repeat_1 0 i: 0 text: while - !!perl/hash:RE_string alt: statement_control__S_008repeat_1 1 i: 0 text: until - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: xblock rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: statement_control__S_008repeat_0 1 zyg: - !!perl/hash:RE_method name: pblock rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: &110 !!perl/hash:RE_any altname: statement_control__S_008repeat_2 dba: statement_control dic: STD::P6 zyg: - !!perl/hash:RE_string alt: statement_control__S_008repeat_2 0 i: 0 text: while - !!perl/hash:RE_string alt: statement_control__S_008repeat_2 1 i: 0 text: until - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: EXPR rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_008repeat_0: *108 statement_control__S_008repeat_1: *109 statement_control__S_008repeat_2: *110 statement_control__S_009loop: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: loop - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_paren re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: EXPR rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ; - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: EXPR rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ; - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: EXPR rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: block rest: '' statement_control__S_010for: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: for - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: my quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: $ - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \w quant: - + - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: EXPR rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ; - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: EXPR rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ; - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: EXPR rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: obs rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: xblock rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_011foreach: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: foreach - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: obs rest: 1 statement_control__S_012given: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: given - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: xblock rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_013when: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: when - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: dumbsmart rest: '' - !!perl/hash:RE_method name: xblock rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_014default: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: default - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: block rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_029CATCH: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: CATCH - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: block rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_030CONTROL: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: CONTROL - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: block rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_control__S_031TEMP: !!perl/hash:RE_ast dba: statement_control dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: TEMP - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: block rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_mod_cond__S_032if: !!perl/hash:RE_ast dba: statement_mod_cond dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: if - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: modifier_expr rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_mod_cond__S_033unless: !!perl/hash:RE_ast dba: statement_mod_cond dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: unless - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: modifier_expr rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_mod_cond__S_034when: !!perl/hash:RE_ast dba: statement_mod_cond dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: when - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method name: dumbsmart rest: '' - !!perl/hash:RE_method name: modifier_expr rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_mod_loop__S_035while: !!perl/hash:RE_ast dba: statement_mod_loop dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: while - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: modifier_expr rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_mod_loop__S_036until: !!perl/hash:RE_ast dba: statement_mod_loop dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: until - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: modifier_expr rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_mod_loop__S_037for: !!perl/hash:RE_ast dba: statement_mod_loop dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: for - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: modifier_expr rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_mod_loop__S_038given: !!perl/hash:RE_ast dba: statement_mod_loop dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: nofun i: 0 name: sym rest: '' sym: given - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: modifier_expr rest: '' - !!perl/hash:RE_method name: ws rest: '' statement_prefix__S_015BEGIN: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: BEGIN - !!perl/hash:RE_method name: blast rest: '' - !!perl/hash:RE_method name: explain_mystery rest: '' statement_prefix__S_016CHECK: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: CHECK - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_017INIT: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: INIT - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_018START: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: START - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_019ENTER: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ENTER - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_020FIRST: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: FIRST - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_021END: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: END - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_022LEAVE: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: LEAVE - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_023KEEP: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: KEEP - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_024UNDO: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: UNDO - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_025NEXT: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: NEXT - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_026LAST: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: LAST - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_027PRE: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: PRE - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_028POST: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: POST - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_168sink: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: sink - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_169try: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: try - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_170quietly: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: quietly - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_171gather: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: gather - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_172contend: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: contend - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_173async: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: async - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_174maybe: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: maybe - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_175lazy: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: lazy - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_176do: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: do - !!perl/hash:RE_method name: blast rest: '' statement_prefix__S_177lift: !!perl/hash:RE_ast dba: statement_prefix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: lift - !!perl/hash:RE_method name: blast rest: '' statementlist: !!perl/hash:RE_ast dba: statement list dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &111 !!perl/hash:RE_any altname: statementlist_0 dba: statement list dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: statementlist_0 0 zyg: - !!perl/hash:RE_meta text: $ - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion alt: statementlist_0 1 assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_cclass i: 0 text: '[\)\]\}]' - !!perl/hash:RE_sequence alt: statementlist_0 2 zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: statement rest: '' - !!perl/hash:RE_method name: eat_terminator rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} statementlist_0: *111 strtonum__S_138rational: !!perl/hash:RE_ast dba: strtonum dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[+\-]' quant: - '?' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: integer rest: '' - !!perl/hash:RE_string i: 0 text: / - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: integer rest: '' strtonum__S_139complex: !!perl/hash:RE_ast dba: strtonum dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[+\-]' quant: - '?' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: number rest: '' quant: - '?' - !!perl/hash:RE_cclass i: 0 text: '[+\-]' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: number rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: \ quant: - '?' - !!perl/hash:RE_string i: 0 text: i strtonum__S_140number: !!perl/hash:RE_ast dba: strtonum dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: '[+\-]' quant: - '?' - !!perl/hash:RE_method name: number rest: '' sublongname: !!perl/hash:RE_ast dba: sublongname dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: subshortname rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: sigterm rest: '' quant: - '?' subshortname: !!perl/hash:RE_ast dba: subshortname dic: STD::P6 re: !!perl/hash:RE_bracket re: &112 !!perl/hash:RE_any altname: subshortname_0 dba: subshortname dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: subshortname_0 0 zyg: - !!perl/hash:RE_method name: category rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: colonpair rest: '' quant: - + - !!perl/hash:RE_method alt: subshortname_0 1 name: desigilname rest: '' subshortname_0: *112 term__S_076fatarrow: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: fatarrow rest: '' term__S_077variable: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: variable rest: '' - !!perl/hash:RE_block {} term__S_078package_declarator: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: package_declarator rest: '' term__S_079scope_declarator: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: scope_declarator rest: '' term__S_080multi_declarator: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: &113 !!perl/hash:RE_any altname: term__S_080multi_declarator_0 dba: term dic: STD::P6 zyg: - !!perl/hash:RE_string alt: term__S_080multi_declarator_0 0 i: 0 text: multi - !!perl/hash:RE_string alt: term__S_080multi_declarator_0 1 i: 0 text: proto - !!perl/hash:RE_string alt: term__S_080multi_declarator_0 2 i: 0 text: only - !!perl/hash:RE_method name: multi_declarator rest: '' term__S_080multi_declarator_0: *113 term__S_081routine_declarator: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: routine_declarator rest: '' term__S_082regex_declarator: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: regex_declarator rest: '' term__S_083type_declarator: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: type_declarator rest: '' term__S_084circumfix: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: circumfix rest: '' term__S_085dotty: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: dotty rest: '' term__S_086value: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: value rest: '' term__S_087capterm: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: capterm rest: '' term__S_088sigterm: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: sigterm rest: '' term__S_089statement_prefix: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_method name: statement_prefix rest: '' term__S_090colonpair: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: colonpair rest: '' - !!perl/hash:RE_method name: ws rest: '' quant: - + term__S_178new: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: new - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - + - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ':' - !!perl/hash:RE_method name: obs rest: 1 term__S_179ColonColonQuestionIDENT: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ::? - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: O rest: 1 term__S_180Object: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: Object - !!perl/hash:RE_meta text: » - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: obs rest: 1 term__S_181undef: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: undef - !!perl/hash:RE_meta text: » - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_string i: 0 text: $/ - !!perl/hash:RE_method name: obs rest: 1 quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: twigil rest: '' quant: - '?' - !!perl/hash:RE_meta min: 1 text: \w - !!perl/hash:RE_method name: obs rest: 1 quant: - '?' - !!perl/hash:RE_method name: obs rest: 1 term__S_182proceed: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: proceed - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: O rest: 1 term__S_183time: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: time - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: O rest: 1 term__S_184now: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: now - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: O rest: 1 term__S_185self: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: self - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: O rest: 1 term__S_186defer: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: defer - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: O rest: 1 term__S_187rand: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: rand - !!perl/hash:RE_meta text: » - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: ( quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \h quant: - '*' - !!perl/hash:RE_bracket re: &114 !!perl/hash:RE_any altname: term__S_187rand_0 dba: term dic: STD::P6 zyg: - !!perl/hash:RE_meta alt: term__S_187rand_0 0 min: 1 text: \d - !!perl/hash:RE_string alt: term__S_187rand_0 1 i: 0 text: $ - !!perl/hash:RE_method name: obs rest: 1 quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: () - !!perl/hash:RE_method name: obs rest: 1 quant: - '?' - !!perl/hash:RE_method name: O rest: 1 term__S_187rand_0: *114 term__S_188Star: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '*' - !!perl/hash:RE_method name: O rest: 1 term__S_189StarStar: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '**' - !!perl/hash:RE_method name: O rest: 1 term__S_213lambda: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_method name: lambda rest: '' - !!perl/hash:RE_method name: pblock rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 term__S_329DotDotDot: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '...' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: args rest: '' quant: - '?' - !!perl/hash:RE_method name: O rest: 1 term__S_330QuestionQuestionQuestion: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: ??? - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: args rest: '' quant: - '?' - !!perl/hash:RE_method name: O rest: 1 term__S_331BangBangBang: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method i: 0 name: sym rest: '' sym: '!!!' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: args rest: '' quant: - '?' - !!perl/hash:RE_method name: O rest: 1 term__S_332identifier: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &115 !!perl/hash:RE_any altname: term__S_332identifier_0 dba: term dic: STD::P6 zyg: - !!perl/hash:RE_method alt: term__S_332identifier_0 0 name: unsp rest: '' - !!perl/hash:RE_string alt: term__S_332identifier_0 1 i: 0 text: ( quant: - '?' - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_cclass i: 0 nobind: 1 text: '[:]' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: args rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 term__S_332identifier_0: *115 term__S_333name: !!perl/hash:RE_ast dba: term dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_method name: postcircumfix rest: '' quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: after nobind: 1 re: !!perl/hash:RE_string i: 0 text: '::' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_bracket re: &116 !!perl/hash:RE_any altname: term__S_333name_0 dba: namespace variable lookup dic: STD::P6 zyg: - !!perl/hash:RE_string alt: term__S_333name_0 0 i: 0 text: « - !!perl/hash:RE_string alt: term__S_333name_0 1 i: 0 text: < - !!perl/hash:RE_string alt: term__S_333name_0 2 i: 0 text: '{' - !!perl/hash:RE_string alt: term__S_333name_0 3 i: 0 text: << - !!perl/hash:RE_method name: postcircumfix rest: '' - !!perl/hash:RE_block {} quant: - '?' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: args rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: O rest: 1 term__S_333name_0: *116 terminator__S_343Semi: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ; - !!perl/hash:RE_method name: O rest: 1 terminator__S_344if: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: if - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: O rest: 1 terminator__S_345unless: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: unless - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: O rest: 1 terminator__S_346while: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: while - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: O rest: 1 terminator__S_347until: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: until - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: O rest: 1 terminator__S_348for: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: for - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: O rest: 1 terminator__S_349given: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: given - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: O rest: 1 terminator__S_350when: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: when - !!perl/hash:RE_meta text: » - !!perl/hash:RE_method name: nofun rest: '' - !!perl/hash:RE_method name: O rest: 1 terminator__S_351MinusMinusGt: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: --> - !!perl/hash:RE_method name: O rest: 1 terminator__S_352BangBang: !!perl/hash:RE_ast dba: terminator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '!!' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: O rest: 1 termish: !!perl/hash:RE_ast dba: postfix dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &117 !!perl/hash:RE_any altname: termish_0 dba: prefix or term dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: termish_0 0 zyg: - !!perl/hash:RE_method name: PRE rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: PRE rest: '' quant: - '*' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: term rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method alt: termish_0 1 name: term rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: \ - !!perl/hash:RE_method name: POST rest: '' quant: - + - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: after nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[ \] } > ) ]' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: \ - !!perl/hash:RE_method name: POST rest: '' quant: - + - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: after nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[ \] } > ) ]' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '!' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: POST rest: '' quant: - '*' - !!perl/hash:RE_block {} termish_0: *117 trait: !!perl/hash:RE_ast dba: trait dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &118 !!perl/hash:RE_any altname: trait_0 dba: trait dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: trait_0 0 zyg: - !!perl/hash:RE_method name: trait_mod rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence alt: trait_0 1 zyg: - !!perl/hash:RE_method name: colonpair rest: '' - !!perl/hash:RE_method name: ws rest: '' trait_0: *118 trait_mod__S_069is: !!perl/hash:RE_ast dba: trait_mod dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: is - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: circumfix rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} trait_mod__S_070hides: !!perl/hash:RE_ast dba: trait_mod dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: hides - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: module_name rest: '' - !!perl/hash:RE_method name: ws rest: '' trait_mod__S_071does: !!perl/hash:RE_ast dba: trait_mod dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: does - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: module_name rest: '' - !!perl/hash:RE_method name: ws rest: '' trait_mod__S_072will: !!perl/hash:RE_ast dba: trait_mod dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: will - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: pblock rest: '' - !!perl/hash:RE_method name: ws rest: '' trait_mod__S_073of: !!perl/hash:RE_ast dba: trait_mod dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &119 !!perl/hash:RE_any altname: trait_mod__S_073of_0 dba: trait_mod dic: STD::P6 zyg: - !!perl/hash:RE_string alt: trait_mod__S_073of_0 0 i: 0 text: of - !!perl/hash:RE_string alt: trait_mod__S_073of_0 1 i: 0 text: returns - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: typename rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} trait_mod__S_073of_0: *119 trait_mod__S_074as: !!perl/hash:RE_ast dba: trait_mod dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: as - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: typename rest: '' - !!perl/hash:RE_method name: ws rest: '' trait_mod__S_075handles: !!perl/hash:RE_ast dba: trait_mod dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: handles - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: term rest: '' - !!perl/hash:RE_method name: ws rest: '' tribble: !!perl/hash:RE_ast dba: tribble dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: babble rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_var var: $start - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_var var: $stop - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: quibble rest: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_block {} - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: nibble rest: 1 - !!perl/hash:RE_var var: $stop - !!perl/hash:RE_method name: panic rest: 1 type_constraint: !!perl/hash:RE_ast dba: type_constraint dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &120 !!perl/hash:RE_any altname: type_constraint_0 dba: type_constraint dic: STD::P6 zyg: - !!perl/hash:RE_method alt: type_constraint_0 0 name: value rest: '' - !!perl/hash:RE_sequence alt: type_constraint_0 1 zyg: - !!perl/hash:RE_method name: typename rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: sorry rest: 1 quant: - '?' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: type_constraint_0 2 zyg: - !!perl/hash:RE_string i: 0 text: w - !!perl/hash:RE_string i: 0 text: h - !!perl/hash:RE_string i: 0 text: e - !!perl/hash:RE_string i: 0 text: r - !!perl/hash:RE_string i: 0 text: e - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: EXPR rest: 1 - !!perl/hash:RE_method name: ws rest: '' type_constraint_0: *120 type_declarator__S_165subset: !!perl/hash:RE_ast dba: type_declarator dic: STD::P6 re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: subset - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - '*' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: w - !!perl/hash:RE_string i: 0 text: h - !!perl/hash:RE_string i: 0 text: e - !!perl/hash:RE_string i: 0 text: r - !!perl/hash:RE_string i: 0 text: e - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: EXPR rest: 1 - !!perl/hash:RE_method name: ws rest: '' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: ws rest: '' type_declarator__S_166enum: !!perl/hash:RE_ast dba: type_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: enum - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &121 !!perl/hash:RE_any altname: type_declarator__S_166enum_0 dba: type_declarator dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: type_declarator__S_166enum_0 0 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: type_declarator__S_166enum_0 1 zyg: - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: variable rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion alt: type_declarator__S_166enum_0 2 assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - '*' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_cclass i: 0 text: '[ < ( « ]' - !!perl/hash:RE_method name: term rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_block {} type_declarator__S_166enum_0: *121 type_declarator__S_167constant: !!perl/hash:RE_ast dba: type_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method endsym: spacey i: 0 name: sym rest: '' sym: constant - !!perl/hash:RE_method name: spacey rest: '' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_bracket re: &122 !!perl/hash:RE_any altname: type_declarator__S_167constant_0 dba: type_declarator dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: type_declarator__S_167constant_0 0 zyg: - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_sequence alt: type_declarator__S_167constant_0 1 zyg: - !!perl/hash:RE_method name: variable rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_assertion alt: type_declarator__S_167constant_0 2 assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - '*' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_cclass i: 0 text: -[\n=] quant: - '*' - !!perl/hash:RE_string i: 0 text: = - !!perl/hash:RE_method name: panic rest: 1 - !!perl/hash:RE_method name: sorry rest: 1 - !!perl/hash:RE_method name: getdecl rest: '' type_declarator__S_167constant_0: *122 typename: !!perl/hash:RE_ast dba: typename dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_bracket re: &123 !!perl/hash:RE_any altname: typename_0 dba: typename dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: typename_0 0 zyg: - !!perl/hash:RE_string i: 0 text: ::? - !!perl/hash:RE_method name: identifier rest: '' - !!perl/hash:RE_sequence alt: typename_0 1 zyg: - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: postcircumfix rest: '' quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: postcircumfix rest: '' quant: - '?' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_string i: 0 text: of - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: typename rest: '' quant: - '?' typename_0: *123 unitstart: !!perl/hash:RE_ast dba: unitstart dic: STD::P6 re: !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_noop nobind: 1 value__S_135quote: !!perl/hash:RE_ast dba: value dic: STD::P6 re: !!perl/hash:RE_method name: quote rest: '' value__S_136number: !!perl/hash:RE_ast dba: value dic: STD::P6 re: !!perl/hash:RE_method name: number rest: '' value__S_137version: !!perl/hash:RE_ast dba: value dic: STD::P6 re: !!perl/hash:RE_method name: version rest: '' variable: !!perl/hash:RE_ast dba: variable dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: twigil rest: '' quant: - '?' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '::' - !!perl/hash:RE_bracket re: &124 !!perl/hash:RE_any altname: variable_0 dba: variable dic: STD::P6 zyg: - !!perl/hash:RE_string alt: variable_0 0 i: 0 text: '{' - !!perl/hash:RE_string alt: variable_0 1 i: 0 text: < - !!perl/hash:RE_string alt: variable_0 2 i: 0 text: ( - !!perl/hash:RE_method name: longname rest: '' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '&' - !!perl/hash:RE_bracket re: &125 !!perl/hash:RE_any altname: variable_1 dba: infix noun dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: variable_1 0 zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: twigil rest: '' quant: - '?' - !!perl/hash:RE_method name: sublongname rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket alt: variable_1 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: infixish rest: 1 - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '$::' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: name rest: '' quant: - '?' - !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '$:' - !!perl/hash:RE_method name: name rest: '' - !!perl/hash:RE_bracket re: &126 !!perl/hash:RE_any altname: variable_2 dba: variable dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: variable_2 0 zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: twigil rest: '' quant: - '?' - !!perl/hash:RE_method name: desigilname rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method alt: variable_2 1 name: special_variable rest: '' - !!perl/hash:RE_sequence alt: variable_2 2 zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_method name: decint rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: panic rest: 1 quant: - '?' - !!perl/hash:RE_sequence alt: variable_2 3 zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_method name: postcircumfix rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: panic rest: 1 quant: - '?' - !!perl/hash:RE_sequence alt: variable_2 4 zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: postcircumfix rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_method name: panic rest: 1 quant: - '?' - !!perl/hash:RE_sequence alt: variable_2 5 zyg: - !!perl/hash:RE_method name: sigil rest: '' - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_sequence alt: variable_2 6 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_block nobind: 1 - !!perl/hash:RE_bracket re: &127 !!perl/hash:RE_any altname: variable_3 dba: variable dic: STD::P6 zyg: - !!perl/hash:RE_method alt: variable_3 0 name: unsp rest: '' - !!perl/hash:RE_string alt: variable_3 1 i: 0 text: \ - !!perl/hash:RE_assertion alt: variable_3 2 assert: '?' re: !!perl/hash:RE_noop nobind: 1 - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_method name: postcircumfix rest: '' quant: - '?' variable_0: *124 variable_1: *125 variable_2: *126 variable_3: *127 variable_declarator: !!perl/hash:RE_ast dba: variable_declarator dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: variable rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: unsp rest: '' quant: - '?' - !!perl/hash:RE_bindnamed atom: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_bracket re: &128 !!perl/hash:RE_any altname: variable_declarator_0 dba: shape definition dic: STD::P6 zyg: - !!perl/hash:RE_sequence alt: variable_declarator_0 0 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: ( - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: signature rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ) - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_block {} - !!perl/hash:RE_bracket alt: variable_declarator_0 1 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '[' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semilist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: ']' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_sequence alt: variable_declarator_0 2 zyg: - !!perl/hash:RE_bracket re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: '{' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: semilist rest: '' - !!perl/hash:RE_bracket re: !!perl/hash:RE_first zyg: - !!perl/hash:RE_string i: 0 text: '}' - !!perl/hash:RE_method name: FAILGOAL rest: 1 - !!perl/hash:RE_method name: curlycheck rest: '' - !!perl/hash:RE_sequence alt: variable_declarator_0 3 zyg: - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_string i: 0 text: < - !!perl/hash:RE_method name: postcircumfix rest: '' quant: - '*' quant: - '?' - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: trait rest: '' quant: - '*' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: post_constraint rest: '' quant: - '*' - !!perl/hash:RE_method name: getdecl rest: '' variable_declarator_0: *128 version__S_040v: !!perl/hash:RE_ast dba: version dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_string i: 0 text: v - !!perl/hash:RE_assertion assert: '?' re: !!perl/hash:RE_method_re name: before nobind: 1 re: !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_meta min: 1 text: \d quant: - + - !!perl/hash:RE_meta text: '::' - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_method name: vnum rest: '' quant: - '**' - ':' - !!perl/hash:RE_string a: 0 dba: version dic: STD::P6 i: 0 i_needed: 1 r: 1 s: 0 text: . - !!perl/hash:RE_quantified_atom atom: !!perl/hash:RE_string i: 0 text: + quant: - '?' vnum: !!perl/hash:RE_ast dba: vnum dic: STD::P6 re: &129 !!perl/hash:RE_any altname: vnum_0 dba: vnum dic: STD::P6 zyg: - !!perl/hash:RE_quantified_atom alt: vnum_0 0 atom: !!perl/hash:RE_meta min: 1 text: \d quant: - + - !!perl/hash:RE_string alt: vnum_0 1 i: 0 text: '*' vnum_0: *129 xblock: !!perl/hash:RE_ast dba: xblock dic: STD::P6 re: !!perl/hash:RE_sequence zyg: - !!perl/hash:RE_method name: EXPR rest: '' - !!perl/hash:RE_block {} - !!perl/hash:RE_method name: ws rest: '' - !!perl/hash:RE_method name: pblock rest: '' RETREE_END ## rule comp_unit { sub comp_unit__PEEK { $_[0]->_AUTOLEXpeek('comp_unit', $retree) } sub comp_unit { no warnings 'recursion'; my $self = shift; local $::begin_compunit = 1;local $::endargs = -1;local %::LANG;local $::PKGDECL = "";local $::IN_DECL = '';local $::DECLARAND;local $::OFTYPE;local $::NEWPKG;local $::NEWLEX;local $::QSIGIL = '';local $::IN_META = '';local $::QUASIMODO;local $::SCOPE = "";local $::LEFTSIGIL;local $::PRECLIM;local %::MYSTERY = ();local $::INVOCANT_OK;local $::INVOCANT_IS;local $::CURLEX;local $::MULTINESS = '';local $::SIGNUM = 0;local $::MONKEY_TYPING = 0;local %::WORRIES;local @::WORRIES;local $::FATALS = 0;local $::IN_SUPPOSE = 0;local $::CURPKG; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE comp_unit"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "comp_unit", do { my $C = $C; if (($C) = ($C->ws) and ($C) = (scalar(do { { $::LANG{'MAIN'} = 'STD::P6' ; $::LANG{'Q'} = 'STD::Q' ; $::LANG{'Quasi'} = 'STD::Quasi' ; $::LANG{'Regex'} = 'STD::Regex' ; $::LANG{'P5'} = 'STD::P5' ; $::LANG{'P5Regex'} = 'STD::P5::Regex' ; @::WORRIES = (); $self->load_setting($::SETTINGNAME); my $oid = $::SETTING->id; my $id = 'MY:file<' . $::FILE->{'name'} . '>'; $::CURLEX = Stash->new( 'OUTER::' => [$oid], '!file' => $::FILE, '!line' => 0, '!id' => [$id], ); $ALL->{$id} = $::CURLEX; $::UNIT = $::CURLEX; $ALL->{'UNIT'} = $::UNIT; $self->finishlex; }}, $C)) and ($C) = ($C->unitstart) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['statementlist'], sub { my $C = shift; $C->statementlist })) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->unitstopper)) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->panic("Confused")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; } }))) { scalar(do { { $C->explain_mystery(); $C->{'LEX'} = $::CURLEX; if (@::WORRIES) { print STDERR "Potential difficulties:\n " . join( "\n ", @::WORRIES) . "\n"}; die "Check failed\n" if $::FATALS; }}, $C) } else { () } }); } ; ## token pblock () { sub pblock__PEEK { $_[0]->_AUTOLEXpeek('pblock', $retree) } sub pblock { no warnings 'recursion'; my $self = shift; local $::CURLEX = $::CURLEX; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE pblock"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "pblock", do { my $C = $C; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'pblock_0') { $C->deb("Fate passed to pblock_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT pblock_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM pblock_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'pblock_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("pblock_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->lambda)) { ($C) } else { () } }, sub { my $C=shift; $C->_EXACT("\{") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, scalar(do { { if ($::BORG and $::BORG->{'block'}) { if ($::BORG->{'name'}) { my $m = "Function '" . $::BORG->{'name'} . "' needs parens to avoid gobbling block" . $::BORG->{'culprit'}->locmess; $::BORG->{'block'}->panic($m . "\nMissing block (apparently gobbled by '" . $::BORG->{'name'} . "')"); } else { my $m = "Expression needs parens to avoid gobbling block" . $::BORG->{'culprit'}->locmess; $::BORG->{'block'}->panic($m . "\nMissing block (apparently gobbled by expression)"); }} elsif (%::MYSTERY) { $C->panic("Missing block (apparently gobbled by undeclared routine?)")} else { $C->panic("Missing block")}}}, $C) }; @gather; } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'pblock_1') { $C->deb("Fate passed to pblock_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT pblock_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM pblock_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'pblock_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("pblock_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['lambda'], sub { my $C = shift; $C->lambda })) and ($C) = ($C->newlex(1)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature(1) })) and ($C) = ($C->_SUBSUMEr(['blockoid'], sub { my $C = shift; $C->blockoid })) and ($C) = ($C->getsig)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\{") }))) { ($C) } else { () } })) and ($C) = ($C->newlex(1)) and ($C) = ($C->_SUBSUMEr(['blockoid'], sub { my $C = shift; $C->blockoid })) and ($C) = ($C->getsig)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token unitstart { } sub unitstart__PEEK { $_[0]->_AUTOLEXpeek('unitstart', $retree) } sub unitstart { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE unitstart"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "unitstart", $C->before(sub { my $C=shift; $C })); } ; ## token lambda { '->' | '<->' } sub lambda__PEEK { $_[0]->_AUTOLEXpeek('lambda', $retree) } sub lambda { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE lambda"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "lambda", do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'lambda_0') { $C->deb("Fate passed to lambda_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT lambda_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM lambda_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'lambda_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("lambda_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\-\>") }, sub { my $C=shift; $C->_EXACT("\<\-\>") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }); } ; ## token xblock { sub xblock__PEEK { $_[0]->_AUTOLEXpeek('xblock', $retree) } sub xblock { no warnings 'recursion'; my $self = shift; local $::GOAL = '{';local $::BORG = { }; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE xblock"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "xblock", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR })) and ($C) = (scalar(do { my $M = $C; $::BORG->{'culprit'} //= $M->{'EXPR'}->cursor($self->{'_pos'}) }, $C)) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['pblock'], sub { my $C = shift; $C->pblock }) } else { () } }); } ; ## token block () { sub block__PEEK { $_[0]->_AUTOLEXpeek('block', $retree) } sub block { no warnings 'recursion'; my $self = shift; local $::CURLEX = $::CURLEX; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE block"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "block", do { my $C = $C; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\{") }))) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Missing block"))) { ($C) } else { () } } }; @gather; } })) and ($C) = ($C->newlex) and ($C) = ($C->_SUBSUMEr(['blockoid'], sub { my $C = shift; $C->blockoid })) and ($C) = ($C->checkyada)) { $C } else { () } }); } ; ## token blockoid { sub blockoid__PEEK { $_[0]->_AUTOLEXpeek('blockoid', $retree) } sub blockoid { no warnings 'recursion'; my $self = shift; local %::LANG = %::LANG;local $::SIGNUM; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE blockoid"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "blockoid", do { my $C = $C; if (($C) = ($C->finishlex) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'blockoid_0') { $C->deb("Fate passed to blockoid_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT blockoid_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM blockoid_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'blockoid_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("blockoid_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_EXACT("\{YOU_ARE_HERE\}")) and ($C) = ($C->you_are_here)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\}"; my $goalpos = $C; if (($C) = ($C->_EXACT("\{")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['statementlist'], sub { my $C = shift; $C->statementlist })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\}") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'block', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->curlycheck)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->terminator)) { ($C) } else { () } })) and ($C) = ($C->panic('Missing block'))) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; $C })) and ($C) = ($C->panic("Malformed block"))) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token curlycheck { sub curlycheck__PEEK { $_[0]->_AUTOLEXpeek('curlycheck', $retree) } sub curlycheck { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE curlycheck"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "curlycheck", $C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\x20\t\r]*+(?m:$)/) }))) { ($C) } else { () } }))) { scalar(do { $::MEMOS[$C->{'_pos'}]->{'endstmt'} = 2}, $C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\x20\t\r]*+[\\,:]/) }))) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->unv) and ($C) = ($C->_PATTERN(qr/\G(?m:$)/))) { scalar(do { $::MEMOS[$C->{'_pos'}]->{'endstmt'} = 2}, $C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } }))) { scalar(do { $::MEMOS[$C->{'_pos'}]->{'endargs'} = 1}, $C) } else { () } } }; @gather; } })); } ; ## token regex_block { sub regex_block__PEEK { $_[0]->_AUTOLEXpeek('regex_block', $retree) } sub regex_block { no warnings 'recursion'; my $self = shift; local %::LANG = %::LANG;local %::RX = %::RX;my $lang = $::LANG{'Regex'};local $::GOAL = '}'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE regex_block"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'quotepair'} = []; $self->_MATCHIFYr($S, "regex_block", do { my $C = $C; if (($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['quotepair'], sub { my $C = shift; $C->quotepair })) and ($C) = ($C->ws)) { scalar(do { my $M = $C; my $kv = $M->{'quotepair'}->[-1]; $lang = ($lang->tweak($kv->{'k'}, $kv->{'v'}) or $lang->panic("Unrecognized adverb :" . $kv->{'k'} . '(' . $kv->{'v'} . ')')); }, $C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'regex_block_0') { $C->deb("Fate passed to regex_block_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT regex_block_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM regex_block_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'regex_block_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("regex_block_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_EXACT("\{\*\}")) and ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::MULTINESS eq 'proto' }) }))) { scalar(do { $C->{'onlystar'} = 1 }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_EXACT("\{")) and ($C) = ($C->_SUBSUMEr(['nibble'], sub { my $C = shift; $C->nibble( $C->cursor_fresh($lang)->unbalanced('}') ) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\}") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Unable to parse regex; couldn't find right brace"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->curlycheck)) { $C } else { () } }); } ; ## rule statementlist { sub statementlist__PEEK { $_[0]->_AUTOLEXpeek('statementlist', $retree) } sub statementlist { no warnings 'recursion'; my $self = shift; local $::INVOCANT_OK = 0;local $::MONKEY_TYPING = $::MONKEY_TYPING; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statementlist"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'eat_terminator'} = []; $C->{'statement'} = []; $self->_MATCHIFYr($S, "statementlist", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statementlist_0') { $C->deb("Fate passed to statementlist_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statementlist_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM statementlist_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statementlist_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statementlist_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\G\z/)) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_PATTERN(qr/\G[\)\]\}]/) } else { () } }))) { ($C) } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['statement'], sub { my $C = shift; $C->statement })) and ($C) = ($C->_SUBSUMEr(['eat_terminator'], sub { my $C = shift; $C->eat_terminator })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { scalar(do { my $M = $C; $self->mark_sinks($M->{'statement'}) }, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## rule semilist { sub semilist__PEEK { $_[0]->_AUTOLEXpeek('semilist', $retree) } sub semilist { no warnings 'recursion'; my $self = shift; local $::INVOCANT_OK = 0; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE semilist"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'eat_terminator'} = []; $C->{'statement'} = []; $self->_MATCHIFYr($S, "semilist", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'semilist_0') { $C->deb("Fate passed to semilist_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT semilist_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM semilist_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'semilist_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("semilist_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_PATTERN(qr/\G[\)\]\}]/) } else { () } }))) { ($C) } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['statement'], sub { my $C = shift; $C->statement })) and ($C) = ($C->_SUBSUMEr(['eat_terminator'], sub { my $C = shift; $C->eat_terminator })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token label { sub label__PEEK { $_[0]->_AUTOLEXpeek('label', $retree) } sub label { no warnings 'recursion'; my $self = shift; my $label; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE label"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "label", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier })) and ($C) = ($C->_EXACT("\:")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { my $M = $C; $C->is_name($label = $M->{'identifier'}->Str) }) })) and ($C) = ($C->sorry("Illegal redeclaration of '$label'"))) { $C } else { () } }))) { ($C) } else { () } }))) { scalar(do { { $C->add_constant($label,$self->label_id)}}, $C) } else { () } }); } ; ## token statement { sub statement__PEEK { $_[0]->_AUTOLEXpeek('statement', $retree) } sub statement { no warnings 'recursion'; my $self = shift; local $::endargs = -1;local $::QSIGIL = 0; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'statement_mod_cond'} = []; $C->{'statement_mod_loop'} = []; $self->_MATCHIFYr($S, "statement", do { my $C = $C; if (($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\)\]\}]/) }))) { ($C) } else { () } })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->stopper)) { ($C) } else { () } })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->_NOTBEFORE(sub { my $C=shift; (($C) x !!do { $::LASTSTATE = $C->{'_pos'}; $C = $::LANG{'MAIN'}->bless($C); }) }))) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statement_0') { $C->deb("Fate passed to statement_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM statement_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statement_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['label'], sub { my $C = shift; $C->label }))) { $C->_SUBSUMEr(['statement'], sub { my $C = shift; $C->statement }) } else { () } }, sub { my $C=shift; $C->_SUBSUMEr(['statement_control'], sub { my $C = shift; $C->statement_control }) }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { ($::MEMOS[$C->{'_pos'}]->{'endstmt'} // 0) == 2 }) }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->ws)) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statement_1') { $C->deb("Fate passed to statement_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM statement_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statement_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['statement_mod_loop'], sub { my $C = shift; $C->statement_mod_loop }))) { scalar(do { my $M = $C; { my $sp = $M->{'EXPR'}->{'statement_prefix'}; if ($sp and $sp->{'sym'} eq 'do') { my $s = $M->{'statement_mod_loop'}->[0]->{'sym'}; $C->obs("do...$s" ,"repeat...$s"); }; }}, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['statement_mod_cond'], sub { my $C = shift; $C->statement_mod_cond })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { ($::MEMOS[$C->{'_pos'}]->{'endstmt'} // 0) == 2 }) }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->ws)) { $C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['statement_mod_loop'], sub { my $C = shift; $C->statement_mod_loop }) }) } else { () } } }; @gather; } }))) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } }) } else { () } } }; @gather; } }))) { $C } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\;") }))) { ($C) } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_SUBSUMEr(['stopper'], sub { my $C = shift; $C->stopper }) }))) { ($C) } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (($C) = (scalar(do { }, $C)) and ($C) = ($C->panic("Bogus statement"))) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { ($::MEMOS[$::MEMOS[$C->{'_pos'}]->{'ws'}//$C->{'_pos'}]->{'endargs'}//0) == 1 }) })) and ($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statement_2') { $C->deb("Fate passed to statement_2: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_2'; # some outer ltm is controlling us } else { $x = 'ALTLTM statement_2'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statement_2', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_2 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\;") }, sub { my $C=shift; $C->_EXACT("\)") }, sub { my $C=shift; $C->_EXACT("\]") }, sub { my $C=shift; $C->_EXACT("\}") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->infixstopper)) { ($C) } else { () } })) and ($C) = (scalar(do { $::HIGHWATER = $C->{'_pos'} = $::MEMOS[$C->{'_pos'}]->{'ws'}//$C->{'_pos'}}, $C)) and ($C) = ($C->panic("Strange text after block (missing comma, semicolon, comment marker?)"))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token eat_terminator { sub eat_terminator__PEEK { $_[0]->_AUTOLEXpeek('eat_terminator', $retree) } sub eat_terminator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE eat_terminator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "eat_terminator", $C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\;") } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { ($::MEMOS[$C->{'_pos'}]->{'endstmt'}//0) >= 2 }) })) and ($C) = ($C->ws)) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'eat_terminator_0') { $C->deb("Fate passed to eat_terminator_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT eat_terminator_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM eat_terminator_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'eat_terminator_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("eat_terminator_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\)") }, sub { my $C=shift; $C->_EXACT("\]") }, sub { my $C=shift; $C->_EXACT("\}") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, $C->_PATTERN(qr/\G\z/) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->stopper)) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->suppose(sub { my $C=shift; $C->_SUBSUMEr(['statement_control'], sub { my $C = shift; $C->statement_control }) }))) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->backup_ws) and ($C) = (scalar(do { $::HIGHWATER = -1}, $C)) and ($C) = ($C->panic("Missing semicolon"))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Confused"))) { ($C) } else { () } } }; @gather; } })); } ; ## method backup_ws () sub backup_ws { no warnings 'recursion'; my $self = shift; if ($::MEMOS[$self->{'_pos'}]->{'ws'}) { return $self->cursor($::MEMOS[$self->{'_pos'}]->{'ws'})}; return $self; }; ## token statement_control:need { sub statement_control__S_000need__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_000need', $retree) } sub statement_control__S_000need { no warnings 'recursion'; my $self = shift; ; my $longname; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_000need"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'module_name'} = []; $C->{'version'} = []; $C->{sym} = "need"; $self->_MATCHIFYr($S, "statement_control__S_000need", do { my $C = $C; if (($C) = ($C->_EXACT("need")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_REPSEPr( sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statement_control__S_000need_0') { $C->deb("Fate passed to statement_control__S_000need_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_control__S_000need_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM statement_control__S_000need_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statement_control__S_000need_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_control__S_000need_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['version'], sub { my $C = shift; $C->version })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['module_name'], sub { my $C = shift; $C->module_name })) and ($C) = ($C->ws)) { scalar(do { my $M = $C; { local $::IN_DECL = 'use'; local $::SCOPE = 'use'; $longname = $M->{'module_name'}->[-1]->{'longname'}; $C->do_need($longname->{'name'}); }}, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token statement_control:import { sub statement_control__S_001import__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_001import', $retree) } sub statement_control__S_001import { no warnings 'recursion'; my $self = shift; ; local $::IN_DECL = 'use';local $::SCOPE = 'use'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_001import"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "import"; $self->_MATCHIFYr($S, "statement_control__S_001import", do { my $C = $C; if (($C) = ($C->_EXACT("import")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['term'], sub { my $C = shift; $C->term })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->spacey) and ($C) = ($C->_SUBSUMEr(['arglist'], sub { my $C = shift; $C->arglist }))) { scalar(do { my $M = $C; { local %::MYSTERY; $C->do_import($M->{'term'}, $M->{'arglist'}); $C->explain_mystery(); }}, $C) } else { () } } } or $xact->[-2] or do { push @gather, scalar(do { my $M = $C; { $C->do_import($M->{'term'}, '')}}, $C) }; @gather; } })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token statement_control:use { sub statement_control__S_002use__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_002use', $retree) } sub statement_control__S_002use { no warnings 'recursion'; my $self = shift; ; my $longname;local $::IN_DECL = 'use';local $::SCOPE = 'use';local %::MYSTERY; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_002use"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "use"; $self->_MATCHIFYr($S, "statement_control__S_002use", do { my $C = $C; if (($C) = ($C->_EXACT("use")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statement_control__S_002use_0') { $C->deb("Fate passed to statement_control__S_002use_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_control__S_002use_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM statement_control__S_002use_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statement_control__S_002use_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_control__S_002use_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_SUBSUMEr(['version'], sub { my $C = shift; $C->version }) }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['module_name'], sub { my $C = shift; $C->module_name })) and ($C) = (scalar(do { my $M = $C; { $longname = $M->{'module_name'}->{'longname'}; if ($longname->Str eq 'MONKEY_TYPING') { $::MONKEY_TYPING = 1}; }}, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->spacey) and ($C) = ($C->_SUBSUMEr(['arglist'], sub { my $C = shift; $C->arglist }))) { scalar(do { my $M = $C; { $C->do_use($longname->{'name'}, $M->{'arglist'})}}, $C) } else { () } } } or $xact->[-2] or do { push @gather, scalar(do { { $C->do_use($longname->{'name'}, '')}}, $C) }; @gather; } }))) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->ws) and ($C) = ($C->explain_mystery)) { $C } else { () } }); } ; ## token statement_control:no { sub statement_control__S_003no__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_003no', $retree) } sub statement_control__S_003no { no warnings 'recursion'; my $self = shift; ; local %::MYSTERY; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_003no"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'arglist'} = []; $C->{sym} = "no"; $self->_MATCHIFYr($S, "statement_control__S_003no", do { my $C = $C; if (($C) = ($C->_EXACT("no")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['module_name'], sub { my $C = shift; $C->module_name })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->spacey)) { $C->_SUBSUMEr(['arglist'], sub { my $C = shift; $C->arglist }) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->explain_mystery)) { $C } else { () } }); } ; ## token statement_control:if { sub statement_control__S_004if__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_004if', $retree) } sub statement_control__S_004if { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_004if"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'else'} = []; $C->{'elsif'} = []; $C->{sym} = "if"; $self->_MATCHIFYr($S, "statement_control__S_004if", do { my $C = $C; if (($C) = ($C->_EXACT("if")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['xblock'], sub { my $C = shift; $C->xblock })) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statement_control__S_004if_0') { $C->deb("Fate passed to statement_control__S_004if_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_control__S_004if_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM statement_control__S_004if_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statement_control__S_004if_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_control__S_004if_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\Gelse[\x20\t\r]*+if/)) and ($C) = ($C->ws) and ($C) = ($C->sorry("Please use 'elsif'")) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("elsif")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->spacey)) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['elsif'], sub { my $C = shift; $C->xblock })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_EXACT("else")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->spacey)) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['else'], sub { my $C = shift; $C->pblock })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token statement_control:unless { sub statement_control__S_005unless__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_005unless', $retree) } sub statement_control__S_005unless { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_005unless"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "unless"; $self->_MATCHIFYr($S, "statement_control__S_005unless", do { my $C = $C; if (($C) = ($C->_EXACT("unless")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['xblock'], sub { my $C = shift; $C->xblock })) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_EXACT("else") } else { () } }))) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->panic("\"unless\" does not take \"else\" in Perl 6; please rewrite using \"if\"")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token statement_control:while { sub statement_control__S_006while__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_006while', $retree) } sub statement_control__S_006while { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_006while"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "while"; $self->_MATCHIFYr($S, "statement_control__S_006while", do { my $C = $C; if (($C) = ($C->_EXACT("while")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_EXACT("\(")) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\G(?:my)?+/)) and ($C) = ($C->ws) and ($C) = ($C->_PATTERN(qr/\G\$\w++/)) and ($C) = ($C->ws)) { $C->_EXACT("\=") } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_EXACT("\<")) and ($C) = ($C->ws) and ($C) = ($C->_PATTERN(qr/\G\$?+\w++/)) and ($C) = ($C->ws) and ($C) = ($C->_EXACT("\>")) and ($C) = ($C->ws)) { $C->_EXACT("\)") } else { () } }; }))) { ($C) } else { () } })) and ($C) = ($C->panic("This appears to be Perl 5 code")) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['xblock'], sub { my $C = shift; $C->xblock })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token statement_control:until { sub statement_control__S_007until__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_007until', $retree) } sub statement_control__S_007until { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_007until"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "until"; $self->_MATCHIFYr($S, "statement_control__S_007until", do { my $C = $C; if (($C) = ($C->_EXACT("until")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['xblock'], sub { my $C = shift; $C->xblock })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token statement_control:repeat { sub statement_control__S_008repeat__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_008repeat', $retree) } sub statement_control__S_008repeat { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_008repeat"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "repeat"; $self->_MATCHIFYr($S, "statement_control__S_008repeat", do { my $C = $C; if (($C) = ($C->_EXACT("repeat")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statement_control__S_008repeat_0') { $C->deb("Fate passed to statement_control__S_008repeat_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_control__S_008repeat_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM statement_control__S_008repeat_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statement_control__S_008repeat_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_control__S_008repeat_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['wu'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statement_control__S_008repeat_1') { $C->deb("Fate passed to statement_control__S_008repeat_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_control__S_008repeat_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM statement_control__S_008repeat_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statement_control__S_008repeat_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_control__S_008repeat_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("while") }, sub { my $C=shift; $C->_EXACT("until") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }) })) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['xblock'], sub { my $C = shift; $C->xblock })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['pblock'], sub { my $C = shift; $C->pblock })) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['wu'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'statement_control__S_008repeat_2') { $C->deb("Fate passed to statement_control__S_008repeat_2: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT statement_control__S_008repeat_2'; # some outer ltm is controlling us } else { $x = 'ALTLTM statement_control__S_008repeat_2'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'statement_control__S_008repeat_2', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("statement_control__S_008repeat_2 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("while") }, sub { my $C=shift; $C->_EXACT("until") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->spacey)) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Whitespace required after keyword"))) { ($C) } else { () } } }; @gather; } })) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token statement_control:loop { sub statement_control__S_009loop__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_009loop', $retree) } sub statement_control__S_009loop { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_009loop"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "loop"; $self->_MATCHIFYr($S, "statement_control__S_009loop", do { my $C = $C; if (($C) = ($C->_EXACT("loop")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['eee'], sub { my $C = shift; $C->_PAREN( sub { my $C=shift; do { my $C = $C; if (($C) = ($C->_EXACT("\(")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['e1'], sub { my $C = shift; $C->EXPR }) })) and ($C) = ($C->ws) and ($C) = ($C->_EXACT("\;")) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['e2'], sub { my $C = shift; $C->EXPR }) })) and ($C) = ($C->ws) and ($C) = ($C->_EXACT("\;")) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['e3'], sub { my $C = shift; $C->EXPR }) })) and ($C) = ($C->ws)) { $C->_EXACT("\)") } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Malformed loop spec"))) { ($C) } else { () } } }; @gather; } }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\{") }))) { ($C) } else { () } })) and ($C) = ($C->sorry("Whitespace required before block"))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }; }) }) })) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['block'], sub { my $C = shift; $C->block }) } else { () } }); } ; ## token statement_control:for { sub statement_control__S_010for__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_010for', $retree) } sub statement_control__S_010for { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_010for"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "for"; $self->_MATCHIFYr($S, "statement_control__S_010for", do { my $C = $C; if (($C) = ($C->_EXACT("for")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_PATTERN(qr/\G(?:my)?+/)) and ($C) = ($C->ws) and ($C) = ($C->_PATTERN(qr/\G\$\w++/)) and ($C) = ($C->ws) and ($C) = ($C->_EXACT("\(")) and ($C) = ($C->ws)) { $C } else { () } }; }))) { ($C) } else { () } })) and ($C) = ($C->panic("This appears to be Perl 5 code")) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_EXACT("\(")) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->EXPR)) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_EXACT("\;")) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->EXPR)) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_EXACT("\;")) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->EXPR)) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_EXACT("\)")) and ($C) = ($C->ws)) { $C } else { () } }; }))) { ($C) } else { () } })) and ($C) = ($C->obs('C-style "for (;;)" loop', '"loop (;;)"')) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['xblock'], sub { my $C = shift; $C->xblock })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token statement_control:foreach { sub statement_control__S_011foreach__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_011foreach', $retree) } sub statement_control__S_011foreach { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_011foreach"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "foreach"; $self->_MATCHIFYr($S, "statement_control__S_011foreach", do { my $C = $C; if (($C) = ($C->_EXACT("foreach")) and ($C) = ($C->spacey) and ($C) = ($C->obs("'foreach'", "'for'"))) { $C } else { () } }); } ; ## token statement_control:given { sub statement_control__S_012given__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_012given', $retree) } sub statement_control__S_012given { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_012given"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "given"; $self->_MATCHIFYr($S, "statement_control__S_012given", do { my $C = $C; if (($C) = ($C->_EXACT("given")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['xblock'], sub { my $C = shift; $C->xblock })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token statement_control:when { sub statement_control__S_013when__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_013when', $retree) } sub statement_control__S_013when { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_013when"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "when"; $self->_MATCHIFYr($S, "statement_control__S_013when", do { my $C = $C; if (($C) = ($C->_EXACT("when")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->dumbsmart)) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['xblock'], sub { my $C = shift; $C->xblock })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_control:default { } sub statement_control__S_014default__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_014default', $retree) } sub statement_control__S_014default { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_014default"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "default"; $self->_MATCHIFYr($S, "statement_control__S_014default", do { my $C = $C; if (($C) = ($C->_EXACT("default")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['block'], sub { my $C = shift; $C->block })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token statement_prefix:BEGIN { :my %*MYSTERY; <.explain_mystery> } sub statement_prefix__S_015BEGIN__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_015BEGIN', $retree) } sub statement_prefix__S_015BEGIN { no warnings 'recursion'; my $self = shift; local %::MYSTERY; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_015BEGIN"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "BEGIN"; $self->_MATCHIFYr($S, "statement_prefix__S_015BEGIN", do { my $C = $C; if (($C) = ($C->_EXACT("BEGIN")) and ($C) = ($C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast })) and ($C) = ($C->explain_mystery)) { $C } else { () } }); } ; ## token statement_prefix:CHECK { } sub statement_prefix__S_016CHECK__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_016CHECK', $retree) } sub statement_prefix__S_016CHECK { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_016CHECK"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "CHECK"; $self->_MATCHIFYr($S, "statement_prefix__S_016CHECK", do { if (my ($C) = ($C->_EXACT("CHECK"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:INIT { } sub statement_prefix__S_017INIT__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_017INIT', $retree) } sub statement_prefix__S_017INIT { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_017INIT"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "INIT"; $self->_MATCHIFYr($S, "statement_prefix__S_017INIT", do { if (my ($C) = ($C->_EXACT("INIT"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:START { } sub statement_prefix__S_018START__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_018START', $retree) } sub statement_prefix__S_018START { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_018START"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "START"; $self->_MATCHIFYr($S, "statement_prefix__S_018START", do { if (my ($C) = ($C->_EXACT("START"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:ENTER { } sub statement_prefix__S_019ENTER__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_019ENTER', $retree) } sub statement_prefix__S_019ENTER { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_019ENTER"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "ENTER"; $self->_MATCHIFYr($S, "statement_prefix__S_019ENTER", do { if (my ($C) = ($C->_EXACT("ENTER"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:FIRST { } sub statement_prefix__S_020FIRST__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_020FIRST', $retree) } sub statement_prefix__S_020FIRST { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_020FIRST"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "FIRST"; $self->_MATCHIFYr($S, "statement_prefix__S_020FIRST", do { if (my ($C) = ($C->_EXACT("FIRST"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:END { } sub statement_prefix__S_021END__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_021END', $retree) } sub statement_prefix__S_021END { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_021END"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "END"; $self->_MATCHIFYr($S, "statement_prefix__S_021END", do { if (my ($C) = ($C->_EXACT("END"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:LEAVE { } sub statement_prefix__S_022LEAVE__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_022LEAVE', $retree) } sub statement_prefix__S_022LEAVE { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_022LEAVE"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "LEAVE"; $self->_MATCHIFYr($S, "statement_prefix__S_022LEAVE", do { if (my ($C) = ($C->_EXACT("LEAVE"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:KEEP { } sub statement_prefix__S_023KEEP__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_023KEEP', $retree) } sub statement_prefix__S_023KEEP { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_023KEEP"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "KEEP"; $self->_MATCHIFYr($S, "statement_prefix__S_023KEEP", do { if (my ($C) = ($C->_EXACT("KEEP"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:UNDO { } sub statement_prefix__S_024UNDO__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_024UNDO', $retree) } sub statement_prefix__S_024UNDO { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_024UNDO"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "UNDO"; $self->_MATCHIFYr($S, "statement_prefix__S_024UNDO", do { if (my ($C) = ($C->_EXACT("UNDO"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:NEXT { } sub statement_prefix__S_025NEXT__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_025NEXT', $retree) } sub statement_prefix__S_025NEXT { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_025NEXT"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "NEXT"; $self->_MATCHIFYr($S, "statement_prefix__S_025NEXT", do { if (my ($C) = ($C->_EXACT("NEXT"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:LAST { } sub statement_prefix__S_026LAST__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_026LAST', $retree) } sub statement_prefix__S_026LAST { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_026LAST"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "LAST"; $self->_MATCHIFYr($S, "statement_prefix__S_026LAST", do { if (my ($C) = ($C->_EXACT("LAST"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:PRE { } sub statement_prefix__S_027PRE__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_027PRE', $retree) } sub statement_prefix__S_027PRE { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_027PRE"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "PRE"; $self->_MATCHIFYr($S, "statement_prefix__S_027PRE", do { if (my ($C) = ($C->_EXACT("PRE"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:POST { } sub statement_prefix__S_028POST__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_028POST', $retree) } sub statement_prefix__S_028POST { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_028POST"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "POST"; $self->_MATCHIFYr($S, "statement_prefix__S_028POST", do { if (my ($C) = ($C->_EXACT("POST"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## rule statement_control:CATCH { } sub statement_control__S_029CATCH__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_029CATCH', $retree) } sub statement_control__S_029CATCH { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_029CATCH"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "CATCH"; $self->_MATCHIFYr($S, "statement_control__S_029CATCH", do { my $C = $C; if (($C) = ($C->_EXACT("CATCH")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['block'], sub { my $C = shift; $C->block })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_control:CONTROL { } sub statement_control__S_030CONTROL__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_030CONTROL', $retree) } sub statement_control__S_030CONTROL { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_030CONTROL"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "CONTROL"; $self->_MATCHIFYr($S, "statement_control__S_030CONTROL", do { my $C = $C; if (($C) = ($C->_EXACT("CONTROL")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['block'], sub { my $C = shift; $C->block })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_control:TEMP { } sub statement_control__S_031TEMP__PEEK { $_[0]->_AUTOLEXpeek('statement_control__S_031TEMP', $retree) } sub statement_control__S_031TEMP { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_control__S_031TEMP"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "TEMP"; $self->_MATCHIFYr($S, "statement_control__S_031TEMP", do { my $C = $C; if (($C) = ($C->_EXACT("TEMP")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['block'], sub { my $C = shift; $C->block })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule modifier_expr { } sub modifier_expr__PEEK { $_[0]->_AUTOLEXpeek('modifier_expr', $retree) } sub modifier_expr { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE modifier_expr"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "modifier_expr", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_mod_cond:if { } sub statement_mod_cond__S_032if__PEEK { $_[0]->_AUTOLEXpeek('statement_mod_cond__S_032if', $retree) } sub statement_mod_cond__S_032if { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_mod_cond__S_032if"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "if"; $self->_MATCHIFYr($S, "statement_mod_cond__S_032if", do { my $C = $C; if (($C) = ($C->_EXACT("if")) and ($C) = ($C->nofun) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['modifier_expr'], sub { my $C = shift; $C->modifier_expr })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_mod_cond:unless { } sub statement_mod_cond__S_033unless__PEEK { $_[0]->_AUTOLEXpeek('statement_mod_cond__S_033unless', $retree) } sub statement_mod_cond__S_033unless { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_mod_cond__S_033unless"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "unless"; $self->_MATCHIFYr($S, "statement_mod_cond__S_033unless", do { my $C = $C; if (($C) = ($C->_EXACT("unless")) and ($C) = ($C->nofun) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['modifier_expr'], sub { my $C = shift; $C->modifier_expr })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_mod_cond:when { } sub statement_mod_cond__S_034when__PEEK { $_[0]->_AUTOLEXpeek('statement_mod_cond__S_034when', $retree) } sub statement_mod_cond__S_034when { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_mod_cond__S_034when"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "when"; $self->_MATCHIFYr($S, "statement_mod_cond__S_034when", do { my $C = $C; if (($C) = ($C->_EXACT("when")) and ($C) = ($C->nofun) and ($C) = ($C->ws) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->dumbsmart)) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['modifier_expr'], sub { my $C = shift; $C->modifier_expr })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_mod_loop:while { } sub statement_mod_loop__S_035while__PEEK { $_[0]->_AUTOLEXpeek('statement_mod_loop__S_035while', $retree) } sub statement_mod_loop__S_035while { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_mod_loop__S_035while"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "while"; $self->_MATCHIFYr($S, "statement_mod_loop__S_035while", do { my $C = $C; if (($C) = ($C->_EXACT("while")) and ($C) = ($C->nofun) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['modifier_expr'], sub { my $C = shift; $C->modifier_expr })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_mod_loop:until { } sub statement_mod_loop__S_036until__PEEK { $_[0]->_AUTOLEXpeek('statement_mod_loop__S_036until', $retree) } sub statement_mod_loop__S_036until { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_mod_loop__S_036until"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "until"; $self->_MATCHIFYr($S, "statement_mod_loop__S_036until", do { my $C = $C; if (($C) = ($C->_EXACT("until")) and ($C) = ($C->nofun) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['modifier_expr'], sub { my $C = shift; $C->modifier_expr })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_mod_loop:for { } sub statement_mod_loop__S_037for__PEEK { $_[0]->_AUTOLEXpeek('statement_mod_loop__S_037for', $retree) } sub statement_mod_loop__S_037for { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_mod_loop__S_037for"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "for"; $self->_MATCHIFYr($S, "statement_mod_loop__S_037for", do { my $C = $C; if (($C) = ($C->_EXACT("for")) and ($C) = ($C->nofun) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['modifier_expr'], sub { my $C = shift; $C->modifier_expr })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule statement_mod_loop:given { } sub statement_mod_loop__S_038given__PEEK { $_[0]->_AUTOLEXpeek('statement_mod_loop__S_038given', $retree) } sub statement_mod_loop__S_038given { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_mod_loop__S_038given"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "given"; $self->_MATCHIFYr($S, "statement_mod_loop__S_038given", do { my $C = $C; if (($C) = ($C->_EXACT("given")) and ($C) = ($C->nofun) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['modifier_expr'], sub { my $C = shift; $C->modifier_expr })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token module_name:normal { sub module_name__S_039normal__PEEK { $_[0]->_AUTOLEXpeek('module_name__S_039normal', $retree) } sub module_name__S_039normal { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE module_name__S_039normal"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'arglist'} = []; $C->{sym} = "normal"; $self->_MATCHIFYr($S, "module_name__S_039normal", do { if (my ($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\[") }))) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\]"; my $goalpos = $C; if (($C) = ($C->_EXACT("\[")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['arglist'], sub { my $C = shift; $C->arglist })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\]") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'generic role', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token vnum { sub vnum__PEEK { $_[0]->_AUTOLEXpeek('vnum', $retree) } sub vnum { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE vnum"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "vnum", do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'vnum_0') { $C->deb("Fate passed to vnum_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT vnum_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM vnum_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'vnum_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("vnum_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\d++/) }, sub { my $C=shift; $C->_EXACT("\*") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }); } ; ## token version:sym { sub version__S_040v__PEEK { $_[0]->_AUTOLEXpeek('version__S_040v', $retree) } sub version__S_040v { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE version__S_040v"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'vnum'} = []; $C->{sym} = "v"; $self->_MATCHIFYr($S, "version__S_040v", do { my $C = $C; if (($C) = ($C->_EXACT("v")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\d++/) }))) { ($C) } else { () } })) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->_REPSEPr( sub { my $C=shift; $C->_EXACT("\.") }, sub { my $C=shift; $C->_SUBSUMEr(['vnum'], sub { my $C = shift; $C->vnum }) }))) { $C->_PATTERN(qr/\G\+?+/) } else { () } }); } ; ## token variable_declarator { sub variable_declarator__PEEK { $_[0]->_AUTOLEXpeek('variable_declarator', $retree) } sub variable_declarator { no warnings 'recursion'; my $self = shift; local $::IN_DECL = 'variable';local $::DECLARAND;my $var; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE variable_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'post_constraint'} = []; $C->{'postcircumfix'} = []; $C->{'semilist'} = []; $C->{'shape'} = []; $C->{'signature'} = []; $C->{'trait'} = []; $self->_MATCHIFYr($S, "variable_declarator", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['variable'], sub { my $C = shift; $C->variable })) and ($C) = (scalar(do { my $M = $C; $var = $M->{'variable'}->Str; $C->add_variable($var); $::IN_DECL = ''; }, $C)) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } }))) { $C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['shape'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'variable_declarator_0') { $C->deb("Fate passed to variable_declarator_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT variable_declarator_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM variable_declarator_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'variable_declarator_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("variable_declarator_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\)"; my $goalpos = $C; if (($C) = ($C->_EXACT("\(")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'variable_declarator', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { scalar(do { { given (substr($var,0,1)) { when ('&') { $C->sorry("The () shape syntax in routine declarations is reserved (maybe use :() to declare a longname?)")} ; when ('@') { $C->sorry("The () shape syntax in array declarations is reserved")} ; when ('%') { $C->sorry("The () shape syntax in hash declarations is reserved")} ; default { $C->sorry("The () shape syntax in variable declarations is reserved")} ; } }}, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\]"; my $goalpos = $C; if (($C) = ($C->_EXACT("\[")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['semilist'], sub { my $C = shift; $C->semilist })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\]") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'shape definition', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\}"; my $goalpos = $C; if (($C) = ($C->_EXACT("\{")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['semilist'], sub { my $C = shift; $C->semilist })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\}") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'shape definition', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })) and ($C) = ($C->curlycheck)) { $C } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\<") }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['postcircumfix'], sub { my $C = shift; $C->postcircumfix }) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }) }) }) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) })) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['post_constraint'], sub { my $C = shift; $C->post_constraint }) })) and ($C) = ($C->getdecl)) { $C } else { () } }); } ; ## rule scoped ($*SCOPE) { sub scoped__PEEK { $_[0]->_AUTOLEXpeek('scoped', $retree) } sub scoped { no warnings 'recursion'; my $self = shift; die 'Required argument SCOPE omitted' unless @_; local $::SCOPE = @_ ? shift() : undef; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE scoped"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'typename'} = []; $self->_MATCHIFYr($S, "scoped", do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'scoped_0') { $C->deb("Fate passed to scoped_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT scoped_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM scoped_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'scoped_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("scoped_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['declarator'], sub { my $C = shift; $C->declarator })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['regex_declarator'], sub { my $C = shift; $C->regex_declarator })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['package_declarator'], sub { my $C = shift; $C->package_declarator })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_PLUSr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['typename'], sub { my $C = shift; $C->typename })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = (scalar(do { my $M = $C; my $t = $M->{'typename'}; @$t > 1 and $C->sorry("Multiple prefix constraints not yet supported"); $::OFTYPE = $t->[0]; }, $C)) and ($C) = ($C->_SUBSUMEr(['multi_declarator'], sub { my $C = shift; $C->multi_declarator })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['multi_declarator'], sub { my $C = shift; $C->multi_declarator })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_PATTERN(qr/\G[A-Z]/) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname })) and ($C) = (scalar(do { my $M = $C; { my $t = $M->{'longname'}->Str; if (not $C->is_known($t)) { $C->sorry("In $::SCOPE declaration, typename '$t' must be predeclared (or marked as declarative with :: prefix)")}; }}, $C)) and ($C) = ($C->ws) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; $C }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->panic("Malformed $::SCOPE")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; }); } ; ## token scope_declarator:my { } sub scope_declarator__S_041my__PEEK { $_[0]->_AUTOLEXpeek('scope_declarator__S_041my', $retree) } sub scope_declarator__S_041my { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE scope_declarator__S_041my"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "my"; $self->_MATCHIFYr($S, "scope_declarator__S_041my", do { my $C = $C; if (($C) = ($C->_EXACT("my")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['scoped'], sub { my $C = shift; $C->scoped('my') }) } else { () } }); } ; ## token scope_declarator:our { } sub scope_declarator__S_042our__PEEK { $_[0]->_AUTOLEXpeek('scope_declarator__S_042our', $retree) } sub scope_declarator__S_042our { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE scope_declarator__S_042our"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "our"; $self->_MATCHIFYr($S, "scope_declarator__S_042our", do { my $C = $C; if (($C) = ($C->_EXACT("our")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['scoped'], sub { my $C = shift; $C->scoped('our') }) } else { () } }); } ; ## token scope_declarator:anon { } sub scope_declarator__S_043anon__PEEK { $_[0]->_AUTOLEXpeek('scope_declarator__S_043anon', $retree) } sub scope_declarator__S_043anon { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE scope_declarator__S_043anon"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "anon"; $self->_MATCHIFYr($S, "scope_declarator__S_043anon", do { my $C = $C; if (($C) = ($C->_EXACT("anon")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['scoped'], sub { my $C = shift; $C->scoped('anon') }) } else { () } }); } ; ## token scope_declarator:state { } sub scope_declarator__S_044state__PEEK { $_[0]->_AUTOLEXpeek('scope_declarator__S_044state', $retree) } sub scope_declarator__S_044state { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE scope_declarator__S_044state"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "state"; $self->_MATCHIFYr($S, "scope_declarator__S_044state", do { my $C = $C; if (($C) = ($C->_EXACT("state")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['scoped'], sub { my $C = shift; $C->scoped('state') }) } else { () } }); } ; ## token scope_declarator:has { } sub scope_declarator__S_045has__PEEK { $_[0]->_AUTOLEXpeek('scope_declarator__S_045has', $retree) } sub scope_declarator__S_045has { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE scope_declarator__S_045has"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "has"; $self->_MATCHIFYr($S, "scope_declarator__S_045has", do { my $C = $C; if (($C) = ($C->_EXACT("has")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['scoped'], sub { my $C = shift; $C->scoped('has') }) } else { () } }); } ; ## token scope_declarator:augment { } sub scope_declarator__S_046augment__PEEK { $_[0]->_AUTOLEXpeek('scope_declarator__S_046augment', $retree) } sub scope_declarator__S_046augment { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE scope_declarator__S_046augment"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "augment"; $self->_MATCHIFYr($S, "scope_declarator__S_046augment", do { my $C = $C; if (($C) = ($C->_EXACT("augment")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['scoped'], sub { my $C = shift; $C->scoped('augment') }) } else { () } }); } ; ## token scope_declarator:supersede { } sub scope_declarator__S_047supersede__PEEK { $_[0]->_AUTOLEXpeek('scope_declarator__S_047supersede', $retree) } sub scope_declarator__S_047supersede { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE scope_declarator__S_047supersede"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "supersede"; $self->_MATCHIFYr($S, "scope_declarator__S_047supersede", do { my $C = $C; if (($C) = ($C->_EXACT("supersede")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['scoped'], sub { my $C = shift; $C->scoped('supersede') }) } else { () } }); } ; ## token package_declarator:class { sub package_declarator__S_048class__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_048class', $retree) } sub package_declarator__S_048class { no warnings 'recursion'; my $self = shift; ; local $::PKGDECL = 'class'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_048class"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "class"; $self->_MATCHIFYr($S, "package_declarator__S_048class", do { my $C = $C; if (($C) = ($C->_EXACT("class")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['package_def'], sub { my $C = shift; $C->package_def }) } else { () } }); } ; ## token package_declarator:grammar { sub package_declarator__S_049grammar__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_049grammar', $retree) } sub package_declarator__S_049grammar { no warnings 'recursion'; my $self = shift; ; local $::PKGDECL = 'grammar'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_049grammar"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "grammar"; $self->_MATCHIFYr($S, "package_declarator__S_049grammar", do { my $C = $C; if (($C) = ($C->_EXACT("grammar")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['package_def'], sub { my $C = shift; $C->package_def }) } else { () } }); } ; ## token package_declarator:module { sub package_declarator__S_050module__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_050module', $retree) } sub package_declarator__S_050module { no warnings 'recursion'; my $self = shift; ; local $::PKGDECL = 'module'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_050module"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "module"; $self->_MATCHIFYr($S, "package_declarator__S_050module", do { my $C = $C; if (($C) = ($C->_EXACT("module")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['package_def'], sub { my $C = shift; $C->package_def }) } else { () } }); } ; ## token package_declarator:package { sub package_declarator__S_051package__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_051package', $retree) } sub package_declarator__S_051package { no warnings 'recursion'; my $self = shift; ; local $::PKGDECL = 'package'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_051package"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "package"; $self->_MATCHIFYr($S, "package_declarator__S_051package", do { my $C = $C; if (($C) = ($C->_EXACT("package")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['package_def'], sub { my $C = shift; $C->package_def }) } else { () } }); } ; ## token package_declarator:role { sub package_declarator__S_052role__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_052role', $retree) } sub package_declarator__S_052role { no warnings 'recursion'; my $self = shift; ; local $::PKGDECL = 'role'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_052role"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "role"; $self->_MATCHIFYr($S, "package_declarator__S_052role", do { my $C = $C; if (($C) = ($C->_EXACT("role")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['package_def'], sub { my $C = shift; $C->package_def }) } else { () } }); } ; ## token package_declarator:knowhow { sub package_declarator__S_053knowhow__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_053knowhow', $retree) } sub package_declarator__S_053knowhow { no warnings 'recursion'; my $self = shift; ; local $::PKGDECL = 'knowhow'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_053knowhow"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "knowhow"; $self->_MATCHIFYr($S, "package_declarator__S_053knowhow", do { my $C = $C; if (($C) = ($C->_EXACT("knowhow")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['package_def'], sub { my $C = shift; $C->package_def }) } else { () } }); } ; ## token package_declarator:slang { sub package_declarator__S_054slang__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_054slang', $retree) } sub package_declarator__S_054slang { no warnings 'recursion'; my $self = shift; ; local $::PKGDECL = 'slang'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_054slang"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "slang"; $self->_MATCHIFYr($S, "package_declarator__S_054slang", do { my $C = $C; if (($C) = ($C->_EXACT("slang")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['package_def'], sub { my $C = shift; $C->package_def }) } else { () } }); } ; ## token package_declarator:require { # here because of declarational aspects sub package_declarator__S_055require__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_055require', $retree) } sub package_declarator__S_055require { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_055require"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'EXPR'} = []; $C->{sym} = "require"; $self->_MATCHIFYr($S, "package_declarator__S_055require", do { my $C = $C; if (($C) = ($C->_EXACT("require")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['module_name'], sub { my $C = shift; $C->module_name })) and ($C) = ($C->ws)) { $C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR }) }) } else { () } } } or $xact->[-2] or do { push @gather, $C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR }) }; @gather; } }))) { $C } else { () } }); } ; ## token package_declarator:trusts { sub package_declarator__S_056trusts__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_056trusts', $retree) } sub package_declarator__S_056trusts { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_056trusts"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "trusts"; $self->_MATCHIFYr($S, "package_declarator__S_056trusts", do { my $C = $C; if (($C) = ($C->_EXACT("trusts")) and ($C) = ($C->spacey) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['module_name'], sub { my $C = shift; $C->module_name }) } else { () } }); } ; ## token package_declarator:sym { sub package_declarator__S_057also__PEEK { $_[0]->_AUTOLEXpeek('package_declarator__S_057also', $retree) } sub package_declarator__S_057also { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_declarator__S_057also"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'trait'} = []; $C->{sym} = "also"; $self->_MATCHIFYr($S, "package_declarator__S_057also", do { my $C = $C; if (($C) = ($C->_EXACT("also")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_PLUSr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule package_def { sub package_def__PEEK { $_[0]->_AUTOLEXpeek('package_def', $retree) } sub package_def { no warnings 'recursion'; my $self = shift; my $longname;local $::IN_DECL = 'package';local $::DECLARAND;local $::NEWPKG;local $::NEWLEX;my $outer = $::CURLEX;local $::CURPKG = $::CURPKG;local $::CURLEX = $::CURLEX; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE package_def"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'longname'} = []; $C->{'signature'} = []; $C->{'trait'} = []; $self->_MATCHIFYr($S, "package_def", do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = (scalar(do { $::SCOPE ||= 'our'}, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname })) and ($C) = ($C->ws)) { scalar(do { my $M = $C; $longname = $M->{'longname'}->[0]; $C->add_name($longname->{'name'}->Str); }, $C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->newlex) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { ($::PKGDECL//'') eq 'role' }) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\]"; my $goalpos = $C; if (($C) = ($C->_EXACT("\[")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\]") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'generic role', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })) and ($C) = ($C->ws)) { scalar(do { $::IN_DECL = ''}, $C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) })) and ($C) = ($C->ws) and ($C) = ($C->getdecl) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_EXACT("\{") } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = (scalar(do { { if ($longname and $::NEWPKG) { my $shortname = $longname->{'name'}->Str; if ($::SCOPE eq 'our') { $::CURPKG = $::NEWPKG // $::CURPKG->{$shortname . '::'}; $self->deb("added our " . $::CURPKG->id) if $::DEBUG & DEBUG::symtab; } else { $::CURPKG = $::NEWPKG // $::CURPKG->{$shortname . '::'}; $self->deb("added my " . $::CURPKG->id) if $::DEBUG & DEBUG::symtab; }; }; $::begin_compunit = 0; $::UNIT->{'$?LONGNAME'} ||= $longname ? $longname->{'name'}->Str : ''; }}, $C)) and ($C) = (scalar(do { $::IN_DECL = ''}, $C)) and ($C) = ($C->_SUBSUMEr(['blockoid'], sub { my $C = shift; $C->blockoid })) and ($C) = ($C->ws) and ($C) = ($C->checkyada) and ($C) = ($C->ws)) { $C } else { () } }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_EXACT("\;") } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::begin_compunit }) })) and ($C) = (scalar(do { { $longname or $C->panic("Compilation unit cannot be anonymous"); $outer == $::UNIT or $C->panic("Semicolon form of " . $::PKGDECL . " definition not allowed in subscope;\n please use block form"); $::PKGDECL eq 'package' and $C->panic("Semicolon form of package definition indicates a Perl 5 module; unfortunately,\n STD doesn't know how to parse Perl 5 code yet"); my $shortname = $longname->{'name'}->Str; $::CURPKG = $::NEWPKG // $::CURPKG->{$shortname . '::'}; $::begin_compunit = 0; $::CURLEX = $outer; $::UNIT->{'$?LONGNAME'} = $longname->{'name'}->Str; }}, $C)) and ($C) = (scalar(do { $::IN_DECL = ''}, $C)) and ($C) = ($C->_SUBSUMEr(['statementlist'], sub { my $C = shift; $C->statementlist })) and ($C) = ($C->ws)) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->panic("Too late for semicolon form of " . $::PKGDECL . " definition")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; } }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->panic("Unable to parse " . $::PKGDECL . " definition")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; } }))) { $C } else { () } }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->panic("Malformed $::PKGDECL")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; }); } ; ## token declarator { sub declarator__PEEK { $_[0]->_AUTOLEXpeek('declarator', $retree) } sub declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'trait'} = []; $self->_MATCHIFYr($S, "declarator", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'declarator_0') { $C->deb("Fate passed to declarator_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT declarator_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM declarator_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'declarator_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("declarator_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['variable_declarator'], sub { my $C = shift; $C->variable_declarator }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; $C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_EXACT("\,")) and ($C) = ($C->ws)) { scalar(do { $::MEMOS[$C->{'_pos'}]->{'declend'} = $::SCOPE}, $C) } else { () } }; }))) { ($C) } else { () } }) }))) { ($C) } else { () } }) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\)"; my $goalpos = $C; if (($C) = ($C->_EXACT("\(")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'declarator', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { $C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) }) } else { () } }, sub { my $C=shift; $C->_SUBSUMEr(['routine_declarator'], sub { my $C = shift; $C->routine_declarator }) }, sub { my $C=shift; $C->_SUBSUMEr(['regex_declarator'], sub { my $C = shift; $C->regex_declarator }) }, sub { my $C=shift; $C->_SUBSUMEr(['type_declarator'], sub { my $C = shift; $C->type_declarator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token multi_declarator:multi { sub multi_declarator__S_058multi__PEEK { $_[0]->_AUTOLEXpeek('multi_declarator__S_058multi', $retree) } sub multi_declarator__S_058multi { no warnings 'recursion'; my $self = shift; ; local $::MULTINESS = 'multi'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE multi_declarator__S_058multi"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "multi"; $self->_MATCHIFYr($S, "multi_declarator__S_058multi", do { my $C = $C; if (($C) = ($C->_EXACT("multi")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['declarator'], sub { my $C = shift; $C->declarator }) } or $xact->[-2] or do { push @gather, $C->_SUBSUMEr(['routine_def'], sub { my $C = shift; $C->routine_def('multi') }) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic('Malformed multi'))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token multi_declarator:proto { sub multi_declarator__S_059proto__PEEK { $_[0]->_AUTOLEXpeek('multi_declarator__S_059proto', $retree) } sub multi_declarator__S_059proto { no warnings 'recursion'; my $self = shift; ; local $::MULTINESS = 'proto'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE multi_declarator__S_059proto"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "proto"; $self->_MATCHIFYr($S, "multi_declarator__S_059proto", do { my $C = $C; if (($C) = ($C->_EXACT("proto")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['declarator'], sub { my $C = shift; $C->declarator }) } or $xact->[-2] or do { push @gather, $C->_SUBSUMEr(['routine_def'], sub { my $C = shift; $C->routine_def('proto') }) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic('Malformed proto'))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token multi_declarator:only { sub multi_declarator__S_060only__PEEK { $_[0]->_AUTOLEXpeek('multi_declarator__S_060only', $retree) } sub multi_declarator__S_060only { no warnings 'recursion'; my $self = shift; ; local $::MULTINESS = 'only'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE multi_declarator__S_060only"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "only"; $self->_MATCHIFYr($S, "multi_declarator__S_060only", do { my $C = $C; if (($C) = ($C->_EXACT("only")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['declarator'], sub { my $C = shift; $C->declarator }) } or $xact->[-2] or do { push @gather, $C->_SUBSUMEr(['routine_def'], sub { my $C = shift; $C->routine_def('only') }) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic('Malformed only'))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token multi_declarator:null { sub multi_declarator__S_061null__PEEK { $_[0]->_AUTOLEXpeek('multi_declarator__S_061null', $retree) } sub multi_declarator__S_061null { no warnings 'recursion'; my $self = shift; ; local $::MULTINESS = ''; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE multi_declarator__S_061null"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "null"; $self->_MATCHIFYr($S, "multi_declarator__S_061null", $C->_SUBSUMEr(['declarator'], sub { my $C = shift; $C->declarator })); } ; ## token routine_declarator:sub { } sub routine_declarator__S_062sub__PEEK { $_[0]->_AUTOLEXpeek('routine_declarator__S_062sub', $retree) } sub routine_declarator__S_062sub { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE routine_declarator__S_062sub"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "sub"; $self->_MATCHIFYr($S, "routine_declarator__S_062sub", do { my $C = $C; if (($C) = ($C->_EXACT("sub")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['routine_def'], sub { my $C = shift; $C->routine_def('sub') }) } else { () } }); } ; ## token routine_declarator:method { } sub routine_declarator__S_063method__PEEK { $_[0]->_AUTOLEXpeek('routine_declarator__S_063method', $retree) } sub routine_declarator__S_063method { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE routine_declarator__S_063method"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "method"; $self->_MATCHIFYr($S, "routine_declarator__S_063method", do { my $C = $C; if (($C) = ($C->_EXACT("method")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['method_def'], sub { my $C = shift; $C->method_def }) } else { () } }); } ; ## token routine_declarator:submethod { } sub routine_declarator__S_064submethod__PEEK { $_[0]->_AUTOLEXpeek('routine_declarator__S_064submethod', $retree) } sub routine_declarator__S_064submethod { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE routine_declarator__S_064submethod"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "submethod"; $self->_MATCHIFYr($S, "routine_declarator__S_064submethod", do { my $C = $C; if (($C) = ($C->_EXACT("submethod")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['method_def'], sub { my $C = shift; $C->method_def }) } else { () } }); } ; ## token routine_declarator:macro { } sub routine_declarator__S_065macro__PEEK { $_[0]->_AUTOLEXpeek('routine_declarator__S_065macro', $retree) } sub routine_declarator__S_065macro { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE routine_declarator__S_065macro"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "macro"; $self->_MATCHIFYr($S, "routine_declarator__S_065macro", do { my $C = $C; if (($C) = ($C->_EXACT("macro")) and ($C) = ($C->nofun)) { $C->_SUBSUMEr(['macro_def'], sub { my $C = shift; $C->macro_def }) } else { () } }); } ; ## token regex_declarator:regex { } sub regex_declarator__S_066regex__PEEK { $_[0]->_AUTOLEXpeek('regex_declarator__S_066regex', $retree) } sub regex_declarator__S_066regex { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE regex_declarator__S_066regex"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "regex"; $self->_MATCHIFYr($S, "regex_declarator__S_066regex", do { my $C = $C; if (($C) = ($C->_EXACT("regex")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['regex_def'], sub { my $C = shift; $C->regex_def('r' => 0,'s' => 0) }) } else { () } }); } ; ## token regex_declarator:token { } sub regex_declarator__S_067token__PEEK { $_[0]->_AUTOLEXpeek('regex_declarator__S_067token', $retree) } sub regex_declarator__S_067token { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE regex_declarator__S_067token"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "token"; $self->_MATCHIFYr($S, "regex_declarator__S_067token", do { my $C = $C; if (($C) = ($C->_EXACT("token")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['regex_def'], sub { my $C = shift; $C->regex_def('r' => 1,'s' => 0) }) } else { () } }); } ; ## token regex_declarator:rule { } sub regex_declarator__S_068rule__PEEK { $_[0]->_AUTOLEXpeek('regex_declarator__S_068rule', $retree) } sub regex_declarator__S_068rule { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE regex_declarator__S_068rule"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "rule"; $self->_MATCHIFYr($S, "regex_declarator__S_068rule", do { my $C = $C; if (($C) = ($C->_EXACT("rule")) and ($C) = ($C->spacey)) { $C->_SUBSUMEr(['regex_def'], sub { my $C = shift; $C->regex_def('r' => 1,'s' => 1) }) } else { () } }); } ; ## rule multisig { sub multisig__PEEK { $_[0]->_AUTOLEXpeek('multisig', $retree) } sub multisig { no warnings 'recursion'; my $self = shift; my $signum = 0; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE multisig"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'signature'} = []; $self->_MATCHIFYr($S, "multisig", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_REPSEPr( sub { my $C=shift; $C->_EXACT("\|") }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_PATTERN(qr/\G\:?+/)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\)"; my $goalpos = $C; if (($C) = ($C->_EXACT("\(")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature(++$signum) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'signature', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## method checkyada sub checkyada { no warnings 'recursion'; my $self = shift; eval { my $statements = $self->{'blockoid'}->{'statementlist'}->{'statement'}; my $startsym = $statements->[0]->{'EXPR'}->{'sym'} // ''; given ($startsym) { when ('...') { $::DECLARAND->{'stub'} = 1 } ; when ('!!!') { $::DECLARAND->{'stub'} = 1 } ; when ('???') { $::DECLARAND->{'stub'} = 1 } ; when ('*') { if ($::MULTINESS eq 'proto' and $statements->elems == 1) { delete $self->{'blockoid'}; $self->{'onlystar'} = 1; }} ; } ; }; return $self; }; ## rule routine_def ($d) { sub routine_def__PEEK { $_[0]->_AUTOLEXpeek('routine_def', $retree) } sub routine_def { no warnings 'recursion'; my $self = shift; die 'Required argument d omitted' unless @_; my $d = @_ ? shift() : undef; local $::CURLEX = $::CURLEX;local $::IN_DECL = $d;local $::DECLARAND; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE routine_def"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'deflongname'} = []; $C->{'multisig'} = []; $C->{'sigil'} = []; $C->{'trait'} = []; $self->_MATCHIFYr($S, "routine_def", do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'routine_def_0') { $C->deb("Fate passed to routine_def_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT routine_def_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM routine_def_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'routine_def_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("routine_def_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G\&\*?+/) }) })) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['deflongname'], sub { my $C = shift; $C->deflongname }) })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['deflongname'], sub { my $C = shift; $C->deflongname })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->newlex(1)) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'routine_def_1') { $C->deb("Fate passed to routine_def_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT routine_def_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM routine_def_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'routine_def_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("routine_def_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['multisig'], sub { my $C = shift; $C->multisig })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_EXACT("\{") } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->panic("Malformed block")) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; (($C) x !!do { $::IN_DECL = ''}) })) and ($C) = ($C->_SUBSUMEr(['blockoid'], sub { my $C = shift; $C->blockoid })) and ($C) = ($C->checkyada) and ($C) = ($C->getsig) and ($C) = ($C->getdecl)) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->panic("Malformed routine")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; }); } ; ## rule method_def () { sub method_def__PEEK { $_[0]->_AUTOLEXpeek('method_def', $retree) } sub method_def { no warnings 'recursion'; my $self = shift; local $::CURLEX = $::CURLEX;local $::IN_DECL = 'method';local $::DECLARAND; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE method_def"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'multisig'} = []; $C->{'trait'} = []; $self->_MATCHIFYr($S, "method_def", do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->newlex(1)) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'method_def_0') { $C->deb("Fate passed to method_def_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT method_def_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM method_def_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'method_def_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("method_def_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['type'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G(?:[!^])?+/) }) })) and ($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname })) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'method_def_1') { $C->deb("Fate passed to method_def_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT method_def_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM method_def_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'method_def_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("method_def_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['multisig'], sub { my $C = shift; $C->multisig })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['multisig'], sub { my $C = shift; $C->multisig })) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->ws) and ($C) = ($C->_EXACT("\.")) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'method_def_2') { $C->deb("Fate passed to method_def_2: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT method_def_2'; # some outer ltm is controlling us } else { $x = 'ALTLTM method_def_2'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'method_def_2', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("method_def_2 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\)"; my $goalpos = $C; if (($C) = ($C->_EXACT("\(")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'subscript signature', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\]"; my $goalpos = $C; if (($C) = ($C->_EXACT("\[")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\]") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'subscript signature', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\}"; my $goalpos = $C; if (($C) = ($C->_EXACT("\{")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\}") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'subscript signature', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_EXACT("\<") } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['postcircumfix'], sub { my $C = shift; $C->postcircumfix })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = (scalar(do { $::IN_DECL = ''}, $C)) and ($C) = ($C->_SUBSUMEr(['blockoid'], sub { my $C = shift; $C->blockoid })) and ($C) = ($C->checkyada) and ($C) = ($C->getsig) and ($C) = ($C->getdecl)) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->panic("Malformed method")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; }); } ; ## rule regex_def (:$r, :$s) { sub regex_def__PEEK { $_[0]->_AUTOLEXpeek('regex_def', $retree) } sub regex_def { no warnings 'recursion'; my $self = shift; my %args = @_; my $r = exists $args{r} ? delete $args{r} : undef; my $s = exists $args{s} ? delete $args{s} : undef; local $::CURLEX = $::CURLEX;local $::IN_DECL = 'regex';local %::RX = %::RX;local $::DECLARAND; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE regex_def"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'deflongname'} = []; $C->{'signature'} = []; $C->{'trait'} = []; $self->_MATCHIFYr($S, "regex_def", do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = (scalar(do { $::RX{'s'} = $s; $::RX{'r'} = $r; }, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'regex_def_0') { $C->deb("Fate passed to regex_def_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT regex_def_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM regex_def_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'regex_def_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("regex_def_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_EXACT("\&")) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['deflongname'], sub { my $C = shift; $C->deflongname }) })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['deflongname'], sub { my $C = shift; $C->deflongname })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->newlex(1)) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'regex_def_1') { $C->deb("Fate passed to regex_def_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT regex_def_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM regex_def_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'regex_def_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("regex_def_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\G\:?+\(/)) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature(1) })) and ($C) = ($C->ws)) { $C->_EXACT("\)") } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_EXACT("\{") } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->panic("Malformed block")) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = (scalar(do { $::IN_DECL = ''}, $C)) and ($C) = ($C->finishlex) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['regex_block'], sub { my $C = shift; $C->regex_block })) and ($C) = ($C->getsig) and ($C) = ($C->getdecl)) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->panic("Malformed regex")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; }); } ; ## rule macro_def () { sub macro_def__PEEK { $_[0]->_AUTOLEXpeek('macro_def', $retree) } sub macro_def { no warnings 'recursion'; my $self = shift; local $::CURLEX = $::CURLEX;local $::IN_DECL = 'macro';local $::DECLARAND; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE macro_def"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'deflongname'} = []; $C->{'multisig'} = []; $C->{'trait'} = []; $self->_MATCHIFYr($S, "macro_def", do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'macro_def_0') { $C->deb("Fate passed to macro_def_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT macro_def_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM macro_def_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'macro_def_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("macro_def_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_EXACT("\&")) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['deflongname'], sub { my $C = shift; $C->deflongname }) })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['deflongname'], sub { my $C = shift; $C->deflongname })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->newlex(1)) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'macro_def_1') { $C->deb("Fate passed to macro_def_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT macro_def_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM macro_def_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'macro_def_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("macro_def_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['multisig'], sub { my $C = shift; $C->multisig })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ws)) { $C->_EXACT("\{") } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->panic("Malformed block")) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = (scalar(do { $::IN_DECL = ''}, $C)) and ($C) = ($C->_SUBSUMEr(['blockoid'], sub { my $C = shift; $C->blockoid })) and ($C) = ($C->checkyada) and ($C) = ($C->getsig) and ($C) = ($C->getdecl)) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->panic("Malformed macro")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; }); } ; ## rule trait { sub trait__PEEK { $_[0]->_AUTOLEXpeek('trait', $retree) } sub trait { no warnings 'recursion'; my $self = shift; local $::IN_DECL = 0; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE trait"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "trait", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'trait_0') { $C->deb("Fate passed to trait_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT trait_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM trait_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'trait_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("trait_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['trait_mod'], sub { my $C = shift; $C->trait_mod })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['colonpair'], sub { my $C = shift; $C->colonpair })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token trait_mod:is { sub trait_mod__S_069is__PEEK { $_[0]->_AUTOLEXpeek('trait_mod__S_069is', $retree) } sub trait_mod__S_069is { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE trait_mod__S_069is"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'circumfix'} = []; $C->{sym} = "is"; $self->_MATCHIFYr($S, "trait_mod__S_069is", do { my $C = $C; if (($C) = ($C->_EXACT("is")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname })) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['circumfix'], sub { my $C = shift; $C->circumfix }) })) and ($C) = ($C->ws)) { scalar(do { my $M = $C; { if ($::DECLARAND) { my $traitname = $M->{'longname'}->Str; $::DECLARAND->{$traitname} = $self->gettrait($traitname, $M->{'circumfix'}); }}}, $C) } else { () } }); } ; ## token trait_mod:hides { sub trait_mod__S_070hides__PEEK { $_[0]->_AUTOLEXpeek('trait_mod__S_070hides', $retree) } sub trait_mod__S_070hides { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE trait_mod__S_070hides"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "hides"; $self->_MATCHIFYr($S, "trait_mod__S_070hides", do { my $C = $C; if (($C) = ($C->_EXACT("hides")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['module_name'], sub { my $C = shift; $C->module_name })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token trait_mod:does { sub trait_mod__S_071does__PEEK { $_[0]->_AUTOLEXpeek('trait_mod__S_071does', $retree) } sub trait_mod__S_071does { no warnings 'recursion'; my $self = shift; ; local $::PKGDECL = 'role'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE trait_mod__S_071does"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "does"; $self->_MATCHIFYr($S, "trait_mod__S_071does", do { my $C = $C; if (($C) = ($C->_EXACT("does")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['module_name'], sub { my $C = shift; $C->module_name })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token trait_mod:will { sub trait_mod__S_072will__PEEK { $_[0]->_AUTOLEXpeek('trait_mod__S_072will', $retree) } sub trait_mod__S_072will { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE trait_mod__S_072will"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "will"; $self->_MATCHIFYr($S, "trait_mod__S_072will", do { my $C = $C; if (($C) = ($C->_EXACT("will")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier })) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['pblock'], sub { my $C = shift; $C->pblock })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token trait_mod:of { sub trait_mod__S_073of__PEEK { $_[0]->_AUTOLEXpeek('trait_mod__S_073of', $retree) } sub trait_mod__S_073of { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE trait_mod__S_073of"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "of"; $self->_MATCHIFYr($S, "trait_mod__S_073of", do { my $C = $C; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'trait_mod__S_073of_0') { $C->deb("Fate passed to trait_mod__S_073of_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT trait_mod__S_073of_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM trait_mod__S_073of_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'trait_mod__S_073of_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("trait_mod__S_073of_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("of") }, sub { my $C=shift; $C->_EXACT("returns") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['typename'], sub { my $C = shift; $C->typename })) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::DECLARAND->{'of'} }) })) and ($C) = ($C->sorry("Extra 'of' type; already declared as type " . $::DECLARAND->{'of'}->Str)) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { scalar(do { my $M = $C; $::DECLARAND->{'of'} = $M->{'typename'}}, $C) } else { () } }); } ; ## token trait_mod:as { :s } sub trait_mod__S_074as__PEEK { $_[0]->_AUTOLEXpeek('trait_mod__S_074as', $retree) } sub trait_mod__S_074as { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE trait_mod__S_074as"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "as"; $self->_MATCHIFYr($S, "trait_mod__S_074as", do { my $C = $C; if (($C) = ($C->_EXACT("as")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['typename'], sub { my $C = shift; $C->typename })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token trait_mod:handles { :s } sub trait_mod__S_075handles__PEEK { $_[0]->_AUTOLEXpeek('trait_mod__S_075handles', $retree) } sub trait_mod__S_075handles { no warnings 'recursion'; my $self = shift; ; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE trait_mod__S_075handles"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "handles"; $self->_MATCHIFYr($S, "trait_mod__S_075handles", do { my $C = $C; if (($C) = ($C->_EXACT("handles")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['term'], sub { my $C = shift; $C->term })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token nullterm { sub nullterm__PEEK { $_[0]->_AUTOLEXpeek('nullterm', $retree) } sub nullterm { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE nullterm"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "nullterm", $C->before(sub { my $C=shift; $C })); } ; ## token nulltermish { sub nulltermish__PEEK { $_[0]->_AUTOLEXpeek('nulltermish', $retree) } sub nulltermish { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE nulltermish"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "nulltermish", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'nulltermish_0') { $C->deb("Fate passed to nulltermish_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT nulltermish_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM nulltermish_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'nulltermish_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("nulltermish_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->stdstopper)) { ($C) } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['term'], sub { my $C = shift; $C->termish }))) { scalar(do { my $M = $C; $C->{'PRE'} = delete $M->{'term'}->{'PRE'}; $C->{'POST'} = delete $M->{'term'}->{'POST'}; $C->{'~CAPS'} = $M->{'term'}->{'~CAPS'}; }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token termish { sub termish__PEEK { $_[0]->_AUTOLEXpeek('termish', $retree) } sub termish { no warnings 'recursion'; my $self = shift; local $::SCOPE = "";local $::MULTINESS = "";local $::OFTYPE;local $::VAR; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE termish"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'POST'} = []; $C->{'PRE'} = []; $self->_MATCHIFYr($S, "termish", do { my $C = $C; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'termish_0') { $C->deb("Fate passed to termish_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT termish_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM termish_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'termish_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("termish_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['PRE'], sub { my $C = shift; $C->PRE })) and ($C) = ($C->_STARr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->_NOTBEFORE(sub { my $C=shift; (($C) x !!do { my $M = $C; my $p = $M->{'PRE'}; my @p = @$p; $p[-1]->{'O'}->{'term'} and $M->{'term'} = pop @$p ; }) }))) { $C->_SUBSUMEr(['PRE'], sub { my $C = shift; $C->PRE }) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { my $M = $C; $M->{'term'} }) }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, $C->_SUBSUMEr(['term'], sub { my $C = shift; $C->term }) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Prefix requires an argument"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }, sub { my $C=shift; $C->_SUBSUMEr(['term'], sub { my $C = shift; $C->term }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::QSIGIL }) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::QSIGIL eq '$' }) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = (STD::LazyMap::lazymap(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->after(sub { my $C=shift; $C->_PATTERN(qr/\G(?<=[\]}>)])/) }))) { ($C) } else { () } }))) { ($C) } else { () } }, $C->_PLUSg(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\\") }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['POST'], sub { my $C = shift; $C->POST }) } else { () } }))) { ($C) } else { () } })))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, scalar(do { my $M = $C; $M->{'POST'} = [] }, $C) }; @gather; } }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = (STD::LazyMap::lazymap(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->after(sub { my $C=shift; $C->_PATTERN(qr/\G(?<=[\]}>)])/) }))) { ($C) } else { () } }))) { ($C) } else { () } }, $C->_PLUSg(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\\") }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['POST'], sub { my $C = shift; $C->POST }) } else { () } }))) { ($C) } else { () } })))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, scalar(do { $::VAR = 0}, $C) }; @gather; } }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->_NOTBEFORE(sub { my $C=shift; (($C) x !!do { $::QSIGIL }) }))) { $C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['POST'], sub { my $C = shift; $C->POST }) }) } else { () } } }; @gather; } }))) { scalar(do { my $M = $C; $self->check_variable($::VAR) if $::VAR; $C->{'~CAPS'} = $M->{'term'}->{'~CAPS'}; }, $C) } else { () } }); } ; ## token term:fatarrow { } sub term__S_076fatarrow__PEEK { $_[0]->_AUTOLEXpeek('term__S_076fatarrow', $retree) } sub term__S_076fatarrow { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_076fatarrow"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "fatarrow"; $self->_MATCHIFYr($S, "term__S_076fatarrow", $C->_SUBSUMEr(['fatarrow'], sub { my $C = shift; $C->fatarrow })); } ; ## token term:variable { { $*VAR = $ } } sub term__S_077variable__PEEK { $_[0]->_AUTOLEXpeek('term__S_077variable', $retree) } sub term__S_077variable { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_077variable"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "variable"; $self->_MATCHIFYr($S, "term__S_077variable", do { if (my ($C) = ($C->_SUBSUMEr(['variable'], sub { my $C = shift; $C->variable }))) { scalar(do { my $M = $C; $::VAR = $M->{'variable'} }, $C) } else { () } }); } ; ## token term:package_declarator { } sub term__S_078package_declarator__PEEK { $_[0]->_AUTOLEXpeek('term__S_078package_declarator', $retree) } sub term__S_078package_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_078package_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "package_declarator"; $self->_MATCHIFYr($S, "term__S_078package_declarator", $C->_SUBSUMEr(['package_declarator'], sub { my $C = shift; $C->package_declarator })); } ; ## token term:scope_declarator { } sub term__S_079scope_declarator__PEEK { $_[0]->_AUTOLEXpeek('term__S_079scope_declarator', $retree) } sub term__S_079scope_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_079scope_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "scope_declarator"; $self->_MATCHIFYr($S, "term__S_079scope_declarator", $C->_SUBSUMEr(['scope_declarator'], sub { my $C = shift; $C->scope_declarator })); } ; ## token term:multi_declarator { } sub term__S_080multi_declarator__PEEK { $_[0]->_AUTOLEXpeek('term__S_080multi_declarator', $retree) } sub term__S_080multi_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_080multi_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "multi_declarator"; $self->_MATCHIFYr($S, "term__S_080multi_declarator", do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'term__S_080multi_declarator_0') { $C->deb("Fate passed to term__S_080multi_declarator_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT term__S_080multi_declarator_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM term__S_080multi_declarator_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'term__S_080multi_declarator_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("term__S_080multi_declarator_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("multi") }, sub { my $C=shift; $C->_EXACT("proto") }, sub { my $C=shift; $C->_EXACT("only") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['multi_declarator'], sub { my $C = shift; $C->multi_declarator }) } else { () } }); } ; ## token term:routine_declarator { } sub term__S_081routine_declarator__PEEK { $_[0]->_AUTOLEXpeek('term__S_081routine_declarator', $retree) } sub term__S_081routine_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_081routine_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "routine_declarator"; $self->_MATCHIFYr($S, "term__S_081routine_declarator", $C->_SUBSUMEr(['routine_declarator'], sub { my $C = shift; $C->routine_declarator })); } ; ## token term:regex_declarator { } sub term__S_082regex_declarator__PEEK { $_[0]->_AUTOLEXpeek('term__S_082regex_declarator', $retree) } sub term__S_082regex_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_082regex_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "regex_declarator"; $self->_MATCHIFYr($S, "term__S_082regex_declarator", $C->_SUBSUMEr(['regex_declarator'], sub { my $C = shift; $C->regex_declarator })); } ; ## token term:type_declarator { } sub term__S_083type_declarator__PEEK { $_[0]->_AUTOLEXpeek('term__S_083type_declarator', $retree) } sub term__S_083type_declarator { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_083type_declarator"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "type_declarator"; $self->_MATCHIFYr($S, "term__S_083type_declarator", $C->_SUBSUMEr(['type_declarator'], sub { my $C = shift; $C->type_declarator })); } ; ## token term:circumfix { } sub term__S_084circumfix__PEEK { $_[0]->_AUTOLEXpeek('term__S_084circumfix', $retree) } sub term__S_084circumfix { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_084circumfix"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "circumfix"; $self->_MATCHIFYr($S, "term__S_084circumfix", $C->_SUBSUMEr(['circumfix'], sub { my $C = shift; $C->circumfix })); } ; ## token term:dotty { } sub term__S_085dotty__PEEK { $_[0]->_AUTOLEXpeek('term__S_085dotty', $retree) } sub term__S_085dotty { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_085dotty"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "dotty"; $self->_MATCHIFYr($S, "term__S_085dotty", $C->_SUBSUMEr(['dotty'], sub { my $C = shift; $C->dotty })); } ; ## token term:value { } sub term__S_086value__PEEK { $_[0]->_AUTOLEXpeek('term__S_086value', $retree) } sub term__S_086value { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_086value"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "value"; $self->_MATCHIFYr($S, "term__S_086value", $C->_SUBSUMEr(['value'], sub { my $C = shift; $C->value })); } ; ## token term:capterm { } sub term__S_087capterm__PEEK { $_[0]->_AUTOLEXpeek('term__S_087capterm', $retree) } sub term__S_087capterm { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_087capterm"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "capterm"; $self->_MATCHIFYr($S, "term__S_087capterm", $C->_SUBSUMEr(['capterm'], sub { my $C = shift; $C->capterm })); } ; ## token term:sigterm { } sub term__S_088sigterm__PEEK { $_[0]->_AUTOLEXpeek('term__S_088sigterm', $retree) } sub term__S_088sigterm { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_088sigterm"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "sigterm"; $self->_MATCHIFYr($S, "term__S_088sigterm", $C->_SUBSUMEr(['sigterm'], sub { my $C = shift; $C->sigterm })); } ; ## token term:statement_prefix { } sub term__S_089statement_prefix__PEEK { $_[0]->_AUTOLEXpeek('term__S_089statement_prefix', $retree) } sub term__S_089statement_prefix { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_089statement_prefix"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "statement_prefix"; $self->_MATCHIFYr($S, "term__S_089statement_prefix", $C->_SUBSUMEr(['statement_prefix'], sub { my $C = shift; $C->statement_prefix })); } ; ## token term:colonpair { [ <.ws> ]+ } sub term__S_090colonpair__PEEK { $_[0]->_AUTOLEXpeek('term__S_090colonpair', $retree) } sub term__S_090colonpair { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_090colonpair"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'colonpair'} = []; $C->{sym} = "colonpair"; $self->_MATCHIFYr($S, "term__S_090colonpair", $C->_PLUSr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['colonpair'], sub { my $C = shift; $C->colonpair })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })); } ; ## token fatarrow { sub fatarrow__PEEK { $_[0]->_AUTOLEXpeek('fatarrow', $retree) } sub fatarrow { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE fatarrow"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "fatarrow", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['key'], sub { my $C = shift; $C->identifier })) and ($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+\=\>/)) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['val'], sub { my $C = shift; $C->EXPR(\%item_assignment) }) } else { () } }); } ; ## token coloncircumfix ($front) { sub coloncircumfix__PEEK { $_[0]->_AUTOLEXpeek('coloncircumfix', $retree) } sub coloncircumfix { no warnings 'recursion'; my $self = shift; die 'Required argument front omitted' unless @_; my $front = @_ ? shift() : undef; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE coloncircumfix"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "coloncircumfix", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'coloncircumfix_0') { $C->deb("Fate passed to coloncircumfix_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT coloncircumfix_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM coloncircumfix_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'coloncircumfix_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("coloncircumfix_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_EXACT("\<\>")) and ($C) = ($C->worry("Pair with <> really means a Nil value, not null string; use :$front" . "('') to represent the null string,\n or :$front" . "() to represent Nil more accurately"))) { $C } else { () } }, sub { my $C=shift; $C->_SUBSUMEr(['circumfix'], sub { my $C = shift; $C->circumfix }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token colonpair { sub colonpair__PEEK { $_[0]->_AUTOLEXpeek('colonpair', $retree) } sub colonpair { no warnings 'recursion'; my $self = shift; my $key;my $value; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE colonpair"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "colonpair", do { my $C = $C; if (($C) = ($C->_EXACT("\:")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'colonpair_0') { $C->deb("Fate passed to colonpair_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT colonpair_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM colonpair_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'colonpair_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("colonpair_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_EXACT("\!")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier }) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Malformed False pair; expected identifier"))) { ($C) } else { () } } }; @gather; } })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\[\(\<\{]/) }))) { ($C) } else { () } })) and ($C) = ($C->panic("Extra argument not allowed; pair already has False argument"))) { $C } else { () } }))) { ($C) } else { () } }))) { scalar(do { my $M = $C; $key = $M->{'identifier'}->Str; $value = 0; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['num'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G\d++/) }) })) and ($C) = ($C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\[\(\<\{]/) }))) { ($C) } else { () } })) and ($C) = (do { my $M = $C; $C->sorry("Extra argument not allowed; pair already has argument of " . $M->{'num'}->Str) }) and ($C) = ($C->circumfix)) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier })) and ($C) = (scalar(do { my $M = $C; $key = $M->{'identifier'}->Str}, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['coloncircumfix'], sub { my $C = shift; $C->coloncircumfix($key) }))) { scalar(do { my $M = $C; $value = $M->{'coloncircumfix'}}, $C) } else { () } } } or $xact->[-2] or do { push @gather, scalar(do { $value = 1}, $C) }; @gather; } }))) { $C } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\)"; my $goalpos = $C; if (($C) = ($C->_EXACT("\(")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['fakesignature'], sub { my $C = shift; $C->fakesignature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'signature', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['coloncircumfix'], sub { my $C = shift; $C->coloncircumfix('') }))) { scalar(do { my $M = $C; $key = ""; $value = $M->{'coloncircumfix'}; }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['var'], sub { my $C = shift; $C->_PAREN( sub { my $C=shift; do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'colonpair_1') { $C->deb("Fate passed to colonpair_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT colonpair_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM colonpair_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'colonpair_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("colonpair_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['twigil'], sub { my $C = shift; $C->twigil }) }))) { $C->_SUBSUMEr(['desigilname'], sub { my $C = shift; $C->desigilname }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("\<")) and ($C) = ($C->_SUBSUMEr(['desigilname'], sub { my $C = shift; $C->desigilname }))) { $C->_EXACT("\>") } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }; }) }))) { scalar(do { my $M = $C; $key = $M->{'var'}->{'desigilname'}->Str; $value = $M->{'var'}; $C->check_variable($value); }, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { scalar(do { my $M = $C; $M->{'k'} = $key; $M->{'v'} = $value; }, $C) } else { () } }); } ; ## token special_variable:sym<$¢> { } sub special_variable__S_091Dollar_a2___PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_091Dollar_a2_', $retree) } sub special_variable__S_091Dollar_a2_ { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_091Dollar_a2_"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$¢"; $self->_MATCHIFYr($S, "special_variable__S_091Dollar_a2_", $C->_EXACT("\$¢")); } ; ## token special_variable:sym<$!> { } sub special_variable__S_092DollarBang__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_092DollarBang', $retree) } sub special_variable__S_092DollarBang { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_092DollarBang"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\!"; $self->_MATCHIFYr($S, "special_variable__S_092DollarBang", do { my $C = $C; if (($C) = ($C->_EXACT("\$\!")) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\w/) }))) { ($C) } else { () } }))) { $C } else { () } }); } ; ## token special_variable:sym<$!{ }> { sub special_variable__S_093DollarBangCur_Ly__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_093DollarBangCur_Ly', $retree) } sub special_variable__S_093DollarBangCur_Ly { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_093DollarBangCur_Ly"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\!\{\ \}"; $self->_MATCHIFYr($S, "special_variable__S_093DollarBangCur_Ly", do { my $C = $C; if (($C) = ($C->_EXACT("\$\!")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\}"; my $goalpos = $C; if (($C) = ($C->_EXACT("\{")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_093DollarBangCur_Ly_0') { $C->deb("Fate passed to special_variable__S_093DollarBangCur_Ly_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_093DollarBangCur_Ly_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_093DollarBangCur_Ly_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_093DollarBangCur_Ly_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_093DollarBangCur_Ly_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier }) }, sub { my $C=shift; $C->_SUBSUMEr(['statementlist'], sub { my $C = shift; $C->statementlist }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\}") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'special_variable', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { scalar(do { { my $all = substr($::ORIG, $self->{'_pos'}, $C->{'_pos'} - $self->{'_pos'}); my ($inside) = $all =~ m!^...\s*(.*?)\s*.$!; $C->obs("Perl 5's $all construct", "a smartmatch like \$! ~~ $inside" ); }}, $C) } else { () } }); } ; ## token special_variable:sym<$/> { sub special_variable__S_094DollarSlash__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_094DollarSlash', $retree) } sub special_variable__S_094DollarSlash { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_094DollarSlash"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\/"; $self->_MATCHIFYr($S, "special_variable__S_094DollarSlash", do { if (my ($C) = ($C->_EXACT("\$\/"))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+\=/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; $C->_PATTERN(qr/\G[=]/) }))) { $C } else { () } }; }))) { ($C) } else { () } })) and ($C) = ($C->obs('$/ variable as input record separator', "the filehandle's :irs attribute"))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token special_variable:sym<$~> { sub special_variable__S_095DollarTilde__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_095DollarTilde', $retree) } sub special_variable__S_095DollarTilde { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_095DollarTilde"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\~"; $self->_MATCHIFYr($S, "special_variable__S_095DollarTilde", do { my $C = $C; if (($C) = ($C->_EXACT("\$\~")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_095DollarTilde_0') { $C->deb("Fate passed to special_variable__S_095DollarTilde_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_095DollarTilde_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_095DollarTilde_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_095DollarTilde_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_095DollarTilde_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$~ variable', 'Form module'))) { $C } else { () } }); } ; ## token special_variable:sym<$`> { sub special_variable__S_096DollarGrave__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_096DollarGrave', $retree) } sub special_variable__S_096DollarGrave { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_096DollarGrave"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\`"; $self->_MATCHIFYr($S, "special_variable__S_096DollarGrave", do { my $C = $C; if (($C) = ($C->_EXACT("\$\`")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_096DollarGrave_0') { $C->deb("Fate passed to special_variable__S_096DollarGrave_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_096DollarGrave_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_096DollarGrave_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_096DollarGrave_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_096DollarGrave_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$` variable', 'explicit pattern before <('))) { $C } else { () } }); } ; ## token special_variable:sym<$@> { sub special_variable__S_097DollarAt__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_097DollarAt', $retree) } sub special_variable__S_097DollarAt { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_097DollarAt"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\@"; $self->_MATCHIFYr($S, "special_variable__S_097DollarAt", do { my $C = $C; if (($C) = ($C->_EXACT("\$\@")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\W/) }))) { ($C) } else { () } })) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->obs('$@ variable as eval error', '$!'))) { $C } else { () } }); } ; ## token special_variable:sym<$#> { sub special_variable__S_098DollarSharp__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_098DollarSharp', $retree) } sub special_variable__S_098DollarSharp { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_098DollarSharp"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\#"; $self->_MATCHIFYr($S, "special_variable__S_098DollarSharp", do { my $C = $C; if (($C) = ($C->_EXACT("\$\#")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['0'], sub { my $C = shift; $C->_PAREN( sub { my $C=shift; $C->_PATTERN(qr/\G\w++/) }) })) and ($C) = (do { my $M = $C; $C->obs("\$#" . $M->{0}->Str . " variable", '@' . $M->{0}->Str . '.end') })) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->obs('$# variable', '.fmt'))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token special_variable:sym<$$> { sub special_variable__S_099DollarDollar__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_099DollarDollar', $retree) } sub special_variable__S_099DollarDollar { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_099DollarDollar"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\$"; $self->_MATCHIFYr($S, "special_variable__S_099DollarDollar", do { my $C = $C; if (($C) = ($C->_EXACT("\$\$")) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; $C->_PATTERN(qr/\G[_[:alpha:]]/) })) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_099DollarDollar_0') { $C->deb("Fate passed to special_variable__S_099DollarDollar_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_099DollarDollar_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_099DollarDollar_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_099DollarDollar_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_099DollarDollar_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$$ variable', '$*PID'))) { $C } else { () } }); } ; ## token special_variable:sym<$%> { sub special_variable__S_100DollarPercent__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_100DollarPercent', $retree) } sub special_variable__S_100DollarPercent { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_100DollarPercent"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\%"; $self->_MATCHIFYr($S, "special_variable__S_100DollarPercent", do { my $C = $C; if (($C) = ($C->_EXACT("\$\%")) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\w/) }))) { ($C) } else { () } })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->sigil)) { ($C) } else { () } })) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->obs('$% variable', 'Form module'))) { $C } else { () } }); } ; ## token special_variable:sym<$^X> { sub special_variable__S_101DollarCaretX__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_101DollarCaretX', $retree) } sub special_variable__S_101DollarCaretX { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_101DollarCaretX"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\^X"; $self->_MATCHIFYr($S, "special_variable__S_101DollarCaretX", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->_EXACT("\^")) and ($C) = ($C->_SUBSUMEr(['letter'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G[A-Z]/) }) })) and ($C) = ($C->_PATTERN(qr/\G\W/)) and ($C) = (do { my $M = $C; $C->obscaret($M->{'sigil'}->Str . '^' . $M->{'letter'}->Str, $M->{'sigil'}->Str, $M->{'letter'}->Str) })) { $C } else { () } }); } ; ## token special_variable:sym<$^> { sub special_variable__S_102DollarCaret__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_102DollarCaret', $retree) } sub special_variable__S_102DollarCaret { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_102DollarCaret"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\^"; $self->_MATCHIFYr($S, "special_variable__S_102DollarCaret", do { my $C = $C; if (($C) = ($C->_EXACT("\$\^")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_102DollarCaret_0') { $C->deb("Fate passed to special_variable__S_102DollarCaret_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_102DollarCaret_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_102DollarCaret_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_102DollarCaret_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_102DollarCaret_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$^ variable', 'Form module'))) { $C } else { () } }); } ; ## token special_variable:sym<$&> { sub special_variable__S_103DollarAmp__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_103DollarAmp', $retree) } sub special_variable__S_103DollarAmp { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_103DollarAmp"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\&"; $self->_MATCHIFYr($S, "special_variable__S_103DollarAmp", do { my $C = $C; if (($C) = ($C->_EXACT("\$\&")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_103DollarAmp_0') { $C->deb("Fate passed to special_variable__S_103DollarAmp_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_103DollarAmp_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_103DollarAmp_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_103DollarAmp_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_103DollarAmp_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$& variable', '$/ or $()'))) { $C } else { () } }); } ; ## token special_variable:sym<$*> { sub special_variable__S_104DollarStar__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_104DollarStar', $retree) } sub special_variable__S_104DollarStar { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_104DollarStar"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\*"; $self->_MATCHIFYr($S, "special_variable__S_104DollarStar", do { my $C = $C; if (($C) = ($C->_EXACT("\$\*")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_104DollarStar_0') { $C->deb("Fate passed to special_variable__S_104DollarStar_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_104DollarStar_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_104DollarStar_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_104DollarStar_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_104DollarStar_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$* variable', '^^ and $$'))) { $C } else { () } }); } ; ## token special_variable:sym<$)> { sub special_variable__S_105DollarThesis__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_105DollarThesis', $retree) } sub special_variable__S_105DollarThesis { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_105DollarThesis"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\)"; $self->_MATCHIFYr($S, "special_variable__S_105DollarThesis", do { my $C = $C; if (($C) = ($C->_EXACT("\$\)")) and ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::GOAL ne ')' }) })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_105DollarThesis_0') { $C->deb("Fate passed to special_variable__S_105DollarThesis_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_105DollarThesis_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_105DollarThesis_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_105DollarThesis_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_105DollarThesis_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$) variable', '$*EGID'))) { $C } else { () } }); } ; ## token special_variable:sym<$-> { sub special_variable__S_106DollarMinus__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_106DollarMinus', $retree) } sub special_variable__S_106DollarMinus { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_106DollarMinus"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\-"; $self->_MATCHIFYr($S, "special_variable__S_106DollarMinus", do { my $C = $C; if (($C) = ($C->_EXACT("\$\-")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_106DollarMinus_0') { $C->deb("Fate passed to special_variable__S_106DollarMinus_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_106DollarMinus_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_106DollarMinus_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_106DollarMinus_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_106DollarMinus_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$- variable', 'Form module'))) { $C } else { () } }); } ; ## token special_variable:sym<$=> { sub special_variable__S_107DollarEqual__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_107DollarEqual', $retree) } sub special_variable__S_107DollarEqual { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_107DollarEqual"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\="; $self->_MATCHIFYr($S, "special_variable__S_107DollarEqual", do { my $C = $C; if (($C) = ($C->_EXACT("\$\=")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_107DollarEqual_0') { $C->deb("Fate passed to special_variable__S_107DollarEqual_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_107DollarEqual_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_107DollarEqual_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_107DollarEqual_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_107DollarEqual_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$= variable', 'Form module'))) { $C } else { () } }); } ; ## token special_variable:sym<@+> { sub special_variable__S_108AtPlus__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_108AtPlus', $retree) } sub special_variable__S_108AtPlus { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_108AtPlus"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\@\+"; $self->_MATCHIFYr($S, "special_variable__S_108AtPlus", do { my $C = $C; if (($C) = ($C->_EXACT("\@\+")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_108AtPlus_0') { $C->deb("Fate passed to special_variable__S_108AtPlus_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_108AtPlus_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_108AtPlus_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_108AtPlus_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_108AtPlus_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('@+ variable', '.to method'))) { $C } else { () } }); } ; ## token special_variable:sym<%+> { sub special_variable__S_109PercentPlus__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_109PercentPlus', $retree) } sub special_variable__S_109PercentPlus { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_109PercentPlus"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\%\+"; $self->_MATCHIFYr($S, "special_variable__S_109PercentPlus", do { my $C = $C; if (($C) = ($C->_EXACT("\%\+")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_109PercentPlus_0') { $C->deb("Fate passed to special_variable__S_109PercentPlus_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_109PercentPlus_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_109PercentPlus_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_109PercentPlus_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_109PercentPlus_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('%+ variable', '.to method'))) { $C } else { () } }); } ; ## token special_variable:sym<$+[ ]> { sub special_variable__S_110DollarPlusBra_Ket__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_110DollarPlusBra_Ket', $retree) } sub special_variable__S_110DollarPlusBra_Ket { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_110DollarPlusBra_Ket"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\+\[\ \]"; $self->_MATCHIFYr($S, "special_variable__S_110DollarPlusBra_Ket", do { my $C = $C; if (($C) = ($C->_EXACT("\$\+\[")) and ($C) = ($C->obs('@+ variable', '.to method'))) { $C } else { () } }); } ; ## token special_variable:sym<@+[ ]> { sub special_variable__S_111AtPlusBra_Ket__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_111AtPlusBra_Ket', $retree) } sub special_variable__S_111AtPlusBra_Ket { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_111AtPlusBra_Ket"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\@\+\[\ \]"; $self->_MATCHIFYr($S, "special_variable__S_111AtPlusBra_Ket", do { my $C = $C; if (($C) = ($C->_EXACT("\@\+\[")) and ($C) = ($C->obs('@+ variable', '.to method'))) { $C } else { () } }); } ; ## token special_variable:sym<@+{ }> { sub special_variable__S_112AtPlusCur_Ly__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_112AtPlusCur_Ly', $retree) } sub special_variable__S_112AtPlusCur_Ly { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_112AtPlusCur_Ly"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\@\+\{\ \}"; $self->_MATCHIFYr($S, "special_variable__S_112AtPlusCur_Ly", do { my $C = $C; if (($C) = ($C->_EXACT("\@\+\{")) and ($C) = ($C->obs('%+ variable', '.to method'))) { $C } else { () } }); } ; ## token special_variable:sym<@-> { sub special_variable__S_113AtMinus__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_113AtMinus', $retree) } sub special_variable__S_113AtMinus { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_113AtMinus"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\@\-"; $self->_MATCHIFYr($S, "special_variable__S_113AtMinus", do { my $C = $C; if (($C) = ($C->_EXACT("\@\-")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_113AtMinus_0') { $C->deb("Fate passed to special_variable__S_113AtMinus_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_113AtMinus_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_113AtMinus_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_113AtMinus_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_113AtMinus_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('@- variable', '.from method'))) { $C } else { () } }); } ; ## token special_variable:sym<%-> { sub special_variable__S_114PercentMinus__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_114PercentMinus', $retree) } sub special_variable__S_114PercentMinus { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_114PercentMinus"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\%\-"; $self->_MATCHIFYr($S, "special_variable__S_114PercentMinus", do { my $C = $C; if (($C) = ($C->_EXACT("\%\-")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_114PercentMinus_0') { $C->deb("Fate passed to special_variable__S_114PercentMinus_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_114PercentMinus_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_114PercentMinus_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_114PercentMinus_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_114PercentMinus_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('%- variable', '.from method'))) { $C } else { () } }); } ; ## token special_variable:sym<$-[ ]> { sub special_variable__S_115DollarMinusBra_Ket__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_115DollarMinusBra_Ket', $retree) } sub special_variable__S_115DollarMinusBra_Ket { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_115DollarMinusBra_Ket"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\-\[\ \]"; $self->_MATCHIFYr($S, "special_variable__S_115DollarMinusBra_Ket", do { my $C = $C; if (($C) = ($C->_EXACT("\$\-\[")) and ($C) = ($C->obs('@- variable', '.from method'))) { $C } else { () } }); } ; ## token special_variable:sym<@-[ ]> { sub special_variable__S_116AtMinusBra_Ket__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_116AtMinusBra_Ket', $retree) } sub special_variable__S_116AtMinusBra_Ket { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_116AtMinusBra_Ket"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\@\-\[\ \]"; $self->_MATCHIFYr($S, "special_variable__S_116AtMinusBra_Ket", do { my $C = $C; if (($C) = ($C->_EXACT("\@\-\[")) and ($C) = ($C->obs('@- variable', '.from method'))) { $C } else { () } }); } ; ## token special_variable:sym<%-{ }> { sub special_variable__S_117PercentMinusCur_Ly__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_117PercentMinusCur_Ly', $retree) } sub special_variable__S_117PercentMinusCur_Ly { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_117PercentMinusCur_Ly"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\%\-\{\ \}"; $self->_MATCHIFYr($S, "special_variable__S_117PercentMinusCur_Ly", do { my $C = $C; if (($C) = ($C->_EXACT("\@\-\{")) and ($C) = ($C->obs('%- variable', '.from method'))) { $C } else { () } }); } ; ## token special_variable:sym<$+> { sub special_variable__S_118DollarPlus__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_118DollarPlus', $retree) } sub special_variable__S_118DollarPlus { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_118DollarPlus"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\+"; $self->_MATCHIFYr($S, "special_variable__S_118DollarPlus", do { my $C = $C; if (($C) = ($C->_EXACT("\$\+")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_118DollarPlus_0') { $C->deb("Fate passed to special_variable__S_118DollarPlus_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_118DollarPlus_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_118DollarPlus_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_118DollarPlus_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_118DollarPlus_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$+ variable', 'Form module'))) { $C } else { () } }); } ; ## token special_variable:sym<${^ }> { sub special_variable__S_119DollarCurCaret_Ly__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_119DollarCurCaret_Ly', $retree) } sub special_variable__S_119DollarCurCaret_Ly { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_119DollarCurCaret_Ly"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\{\^\ \}"; $self->_MATCHIFYr($S, "special_variable__S_119DollarCurCaret_Ly", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->_EXACT("\{\^")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->_SUBSUMEr(['text'], sub { my $C = shift; $C->_BRACKET(sub { my $C=shift; $C->_SCANf() }) })) and ($C) = ($C->_EXACT("\}")) and ($C) = (do { my $M = $C; $C->obscaret($M->{'sigil'}->Str . '{^' . $M->{'text'}->Str . '}', $M->{'sigil'}->Str, $M->{'text'}->Str) })) { $C } else { () } }); } ; ## method obscaret (Str $var, Str $sigil, Str $name) sub obscaret { no warnings 'recursion'; my $self = shift; die 'Required argument var omitted' unless @_; my $var = @_ ? shift() : undef; die 'Required argument sigil omitted' unless @_; my $sigil = @_ ? shift() : undef; die 'Required argument name omitted' unless @_; my $name = @_ ? shift() : undef; my $repl; given ($sigil) { when ('$') { given ($name) { when ('MATCH') { $repl = '$/' } ; when ('PREMATCH') { $repl = 'an explicit pattern before <(' } ; when ('POSTMATCH') { $repl = 'an explicit pattern after )>' } ; when ('ENCODING') { $repl = '$?ENCODING' } ; when ('UNICODE') { $repl = '$?UNICODE' } ; when ('TAINT') { $repl = '$*TAINT' } ; when ('OPEN') { $repl = 'filehandle introspection' } ; when ('N') { $repl = '$-1' } ; when ('L') { $repl = 'Form module' } ; when ('A') { $repl = 'Form module' } ; when ('E') { $repl = '$!.extended_os_error' } ; when ('C') { $repl = 'COMPILING namespace' } ; when ('D') { $repl = '$*DEBUGGING' } ; when ('F') { $repl = '$*SYSTEM_FD_MAX' } ; when ('H') { $repl = '$?FOO variables' } ; when ('I') { $repl = '$*INPLACE' } ; when ('O') { $repl = '$?OS or $*OS' } ; when ('P') { $repl = 'whatever debugger Perl 6 comes with' } ; when ('R') { $repl = 'an explicit result variable' } ; when ('S') { $repl = 'the context function' } ; when ('T') { $repl = '$*BASETIME' } ; when ('V') { $repl = '$*PERL_VERSION' } ; when ('W') { $repl = '$*WARNING' } ; when ('X') { $repl = '$*EXECUTABLE_NAME' } ; default { $repl = "a global form such as $sigil*$name" } ; } } ; when ('%') { given ($name) { when ('H') { $repl = '$?FOO variables' } ; default { $repl = "a global form such as $sigil*$name" } ; } } ; default { $repl = "a global form such as $sigil*$name" } ; }; return $self->obs("$var variable", $repl); }; ## token special_variable:sym<::{ }> { sub special_variable__S_120ColonColonCur_Ly__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_120ColonColonCur_Ly', $retree) } sub special_variable__S_120ColonColonCur_Ly { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_120ColonColonCur_Ly"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\:\:\{\ \}"; $self->_MATCHIFYr($S, "special_variable__S_120ColonColonCur_Ly", do { my $C = $C; if (($C) = ($C->_EXACT("\:\:")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\{") }))) { ($C) } else { () } }))) { $C } else { () } }); } ; ## regex special_variable:sym<${ }> { sub special_variable__S_121DollarCur_Ly__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_121DollarCur_Ly', $retree) } sub special_variable__S_121DollarCur_Ly { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_121DollarCur_Ly"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\{\ \}"; $self->_MATCHIFY($S, "special_variable__S_121DollarCur_Ly", STD::LazyMap::lazymap(sub { my $C=shift; if (($C) = ($C->_EXACT("\{")) and ($C) = (scalar(do { }, $C))) { STD::LazyMap::lazymap(sub { my $C=shift; if (my ($C) = ($C->_EXACT("\}"))) { scalar(do { my $M = $C; { my $sigil = $M->{'sigil'}->Str; my $text = $M->{'text'}->Str; my $bad = $sigil . '{' . $text . '}'; $text = $text - 1 if $text =~ /^\d+$/; if ($text !~ /^(\w|\:)+$/) { return () if $::QSIGIL; $C->obs($bad, $sigil . '(' . $text . ')'); } elsif ($::QSIGIL) { $C->obs($bad, '{' . $sigil . $text . '}')} else { $C->obs($bad, $sigil . $text)}; }}, $C) } else { () } }, $C->_SUBSUME(['text'], sub { my $C = shift; $C->_BRACKET(sub { my $C=shift; $C->_SCANf() }) })) } else { () } }, $C->_SUBSUME(['sigil'], sub { my $C = shift; $C->sigil }))); } ; ## token special_variable:sym<$[> { sub special_variable__S_122DollarBra__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_122DollarBra', $retree) } sub special_variable__S_122DollarBra { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_122DollarBra"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\["; $self->_MATCHIFYr($S, "special_variable__S_122DollarBra", do { my $C = $C; if (($C) = ($C->_EXACT("\$\[")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_122DollarBra_0') { $C->deb("Fate passed to special_variable__S_122DollarBra_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_122DollarBra_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_122DollarBra_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_122DollarBra_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_122DollarBra_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$[ variable', 'user-defined array indices'))) { $C } else { () } }); } ; ## token special_variable:sym<$]> { sub special_variable__S_123DollarKet__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_123DollarKet', $retree) } sub special_variable__S_123DollarKet { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_123DollarKet"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\]"; $self->_MATCHIFYr($S, "special_variable__S_123DollarKet", do { my $C = $C; if (($C) = ($C->_EXACT("\$\]")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_123DollarKet_0') { $C->deb("Fate passed to special_variable__S_123DollarKet_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_123DollarKet_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_123DollarKet_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_123DollarKet_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_123DollarKet_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$] variable', '$*PERL_VERSION'))) { $C } else { () } }); } ; ## token special_variable:sym<$\\> { sub special_variable__S_124DollarBack__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_124DollarBack', $retree) } sub special_variable__S_124DollarBack { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_124DollarBack"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\\"; $self->_MATCHIFYr($S, "special_variable__S_124DollarBack", do { my $C = $C; if (($C) = ($C->_EXACT("\$\\")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_124DollarBack_0') { $C->deb("Fate passed to special_variable__S_124DollarBack_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_124DollarBack_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_124DollarBack_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_124DollarBack_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_124DollarBack_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$\\ variable', "the filehandle's :ors attribute"))) { $C } else { () } }); } ; ## token special_variable:sym<$|> { sub special_variable__S_125DollarVert__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_125DollarVert', $retree) } sub special_variable__S_125DollarVert { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_125DollarVert"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\|"; $self->_MATCHIFYr($S, "special_variable__S_125DollarVert", do { my $C = $C; if (($C) = ($C->_EXACT("\$\|")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_125DollarVert_0') { $C->deb("Fate passed to special_variable__S_125DollarVert_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_125DollarVert_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_125DollarVert_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_125DollarVert_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_125DollarVert_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$| variable', ':autoflush on open'))) { $C } else { () } }); } ; ## token special_variable:sym<$:> { sub special_variable__S_126DollarColon__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_126DollarColon', $retree) } sub special_variable__S_126DollarColon { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_126DollarColon"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\:"; $self->_MATCHIFYr($S, "special_variable__S_126DollarColon", do { my $C = $C; if (($C) = ($C->_EXACT("\$\:")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\x20\t\n\],=)}]/) }))) { ($C) } else { () } })) and ($C) = ($C->obs('$: variable', 'Form module'))) { $C } else { () } }); } ; ## token special_variable:sym<$;> { sub special_variable__S_127DollarSemi__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_127DollarSemi', $retree) } sub special_variable__S_127DollarSemi { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_127DollarSemi"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\;"; $self->_MATCHIFYr($S, "special_variable__S_127DollarSemi", do { my $C = $C; if (($C) = ($C->_EXACT("\$\;")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_127DollarSemi_0') { $C->deb("Fate passed to special_variable__S_127DollarSemi_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_127DollarSemi_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_127DollarSemi_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_127DollarSemi_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_127DollarSemi_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$; variable', 'real multidimensional hashes'))) { $C } else { () } }); } ; ## token special_variable:sym<$'> { #' sub special_variable__S_128DollarSingle__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_128DollarSingle', $retree) } sub special_variable__S_128DollarSingle { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_128DollarSingle"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\'"; $self->_MATCHIFYr($S, "special_variable__S_128DollarSingle", do { my $C = $C; if (($C) = ($C->_EXACT("\$\'")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_128DollarSingle_0') { $C->deb("Fate passed to special_variable__S_128DollarSingle_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_128DollarSingle_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_128DollarSingle_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_128DollarSingle_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_128DollarSingle_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$' . "'" . 'variable', "explicit pattern after )\x{3E}"))) { $C } else { () } }); } ; ## token special_variable:sym<$"> { sub special_variable__S_129DollarDouble__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_129DollarDouble', $retree) } sub special_variable__S_129DollarDouble { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_129DollarDouble"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\""; $self->_MATCHIFYr($S, "special_variable__S_129DollarDouble", do { my $C = $C; if (($C) = ($C->_EXACT("\$\"")) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; (($C) x !!do { $::QSIGIL }) })) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_129DollarDouble_0') { $C->deb("Fate passed to special_variable__S_129DollarDouble_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_129DollarDouble_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_129DollarDouble_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_129DollarDouble_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_129DollarDouble_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\=") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$" variable', '.join() method'))) { $C } else { () } }); } ; ## token special_variable:sym<$,> { sub special_variable__S_130DollarComma__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_130DollarComma', $retree) } sub special_variable__S_130DollarComma { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_130DollarComma"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\,"; $self->_MATCHIFYr($S, "special_variable__S_130DollarComma", do { my $C = $C; if (($C) = ($C->_EXACT("\$\,")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_130DollarComma_0') { $C->deb("Fate passed to special_variable__S_130DollarComma_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_130DollarComma_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_130DollarComma_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_130DollarComma_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_130DollarComma_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$, variable', ".join() method"))) { $C } else { () } }); } ; ## token special_variable:sym['$<'] { sub special_variable__S_131DollarLt__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_131DollarLt', $retree) } sub special_variable__S_131DollarLt { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_131DollarLt"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\<"; $self->_MATCHIFYr($S, "special_variable__S_131DollarLt", do { my $C = $C; if (($C) = ($C->_EXACT("\$\<")) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+[=,;?:!)\]}]/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\S*+\>/) }))) { ($C) } else { () } }))) { $C } else { () } }; }))) { ($C) } else { () } })) and ($C) = ($C->obs('$< variable', '$*UID'))) { $C } else { () } }); } ; ## token special_variable:sym«\$>» { sub special_variable__S_132DollarGt__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_132DollarGt', $retree) } sub special_variable__S_132DollarGt { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_132DollarGt"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\>"; $self->_MATCHIFYr($S, "special_variable__S_132DollarGt", do { my $C = $C; if (($C) = ($C->_EXACT("\$\>")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_132DollarGt_0') { $C->deb("Fate passed to special_variable__S_132DollarGt_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_132DollarGt_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_132DollarGt_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_132DollarGt_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_132DollarGt_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$> variable', '$*EUID'))) { $C } else { () } }); } ; ## token special_variable:sym<$.> { sub special_variable__S_133DollarDot__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_133DollarDot', $retree) } sub special_variable__S_133DollarDot { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_133DollarDot"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\."; $self->_MATCHIFYr($S, "special_variable__S_133DollarDot", do { my $C = $C; if (($C) = ($C->_EXACT("\$\.")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_133DollarDot_0') { $C->deb("Fate passed to special_variable__S_133DollarDot_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_133DollarDot_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_133DollarDot_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_133DollarDot_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_133DollarDot_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$. variable', "the filehandle's .line method"))) { $C } else { () } }); } ; ## token special_variable:sym<$?> { sub special_variable__S_134DollarQuestion__PEEK { $_[0]->_AUTOLEXpeek('special_variable__S_134DollarQuestion', $retree) } sub special_variable__S_134DollarQuestion { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE special_variable__S_134DollarQuestion"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\$\?"; $self->_MATCHIFYr($S, "special_variable__S_134DollarQuestion", do { my $C = $C; if (($C) = ($C->_EXACT("\$\?")) and ($C) = ($C->_COMMITLTM()) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'special_variable__S_134DollarQuestion_0') { $C->deb("Fate passed to special_variable__S_134DollarQuestion_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT special_variable__S_134DollarQuestion_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM special_variable__S_134DollarQuestion_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'special_variable__S_134DollarQuestion_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("special_variable__S_134DollarQuestion_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }, sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_SUBSUMEr(['terminator'], sub { my $C = shift; $C->terminator }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('$? variable as child error', '$!'))) { $C } else { () } }); } ; ## token desigilname { sub desigilname__PEEK { $_[0]->_AUTOLEXpeek('desigilname', $retree) } sub desigilname { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE desigilname"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "desigilname", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'desigilname_0') { $C->deb("Fate passed to desigilname_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT desigilname_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM desigilname_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'desigilname_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("desigilname_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\$") }))) { ($C) } else { () } })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::IN_DECL }) })) and ($C) = ($C->panic("Can't declare an indirect variable name"))) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['variable'], sub { my $C = shift; $C->variable }))) { scalar(do { my $M = $C; $::VAR = $M->{'variable'}; $self->check_variable($::VAR) if substr($::VAR,1,1) ne '$'; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->{'sigil'} = []; do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G[\@\%\&]/)) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil }) }))) { $C->_PATTERN(qr/\G\w/) } else { () } }; }))) { ($C) } else { () } })) and ($C) = ($C->panic("Invalid hard reference syntax"))) { $C } else { () } }, sub { my $C=shift; $C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token variable { sub variable__PEEK { $_[0]->_AUTOLEXpeek('variable', $retree) } sub variable { no warnings 'recursion'; my $self = shift; local $::IN_META = '';my $sigil = '';my $twigil = '';my $name; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE variable"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'name'} = []; $C->{'postcircumfix'} = []; $C->{'twigil'} = []; $self->_MATCHIFYr($S, "variable", do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil }))) { scalar(do { my $M = $C; $sigil = $M->{'sigil'}->Str; $::LEFTSIGIL ||= $sigil; }, $C) } else { () } }))) { ($C) } else { () } })) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['twigil'], sub { my $C = shift; $C->twigil }) })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; do { my $C = $C; if (($C) = ($C->_EXACT("\:\:")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'variable_0') { $C->deb("Fate passed to variable_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT variable_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM variable_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'variable_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("variable_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\{") }, sub { my $C=shift; $C->_EXACT("\<") }, sub { my $C=shift; $C->_EXACT("\(") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }; }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname }) } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->_EXACT("\&")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'variable_1') { $C->deb("Fate passed to variable_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT variable_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM variable_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'variable_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("variable_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['twigil'], sub { my $C = shift; $C->twigil }) })) and ($C) = ($C->_SUBSUMEr(['sublongname'], sub { my $C = shift; $C->sublongname }))) { scalar(do { my $M = $C; $name = $M->{'sublongname'}->Str }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\]"; my $goalpos = $C; if (($C) = ($C->_EXACT("\[")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['infixish'], sub { my $C = shift; $C->infixish('[]') })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\]") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'infix noun', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->_EXACT("\$\:\:"))) { $C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['name'], sub { my $C = shift; $C->name }) }) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->_EXACT("\$\:"))) { $C->_SUBSUMEr(['name'], sub { my $C = shift; $C->name }) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'variable_2') { $C->deb("Fate passed to variable_2: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT variable_2'; # some outer ltm is controlling us } else { $x = 'ALTLTM variable_2'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'variable_2', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("variable_2 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['twigil'], sub { my $C = shift; $C->twigil }) })) and ($C) = ($C->_SUBSUMEr(['desigilname'], sub { my $C = shift; $C->desigilname }))) { scalar(do { my $M = $C; $name = $M->{'desigilname'}->Str }, $C) } else { () } }, sub { my $C=shift; $C->_SUBSUMEr(['special_variable'], sub { my $C = shift; $C->special_variable }) }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->_SUBSUMEr(['index'], sub { my $C = shift; $C->decint }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::IN_DECL }) })) and ($C) = ($C->panic("Can't declare a numeric variable"))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\<") }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['postcircumfix'], sub { my $C = shift; $C->postcircumfix }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::IN_DECL }) })) and ($C) = ($C->panic("Can't declare a match variable"))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['postcircumfix'], sub { my $C = shift; $C->postcircumfix }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::IN_DECL }) })) and ($C) = ($C->panic("Can't declare a contextualizer"))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::IN_DECL }) }))) { $C } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C }))) { scalar(do { { if ($::QSIGIL) { return ()} else { $C->sorry("Non-declarative sigil is missing its name")}}}, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } } }; @gather; } })) and ($C) = (scalar(do { my $M = $C; my $t = $M->{'twigil'}; $twigil = $t->[0]->Str if @$t; }, $C))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $twigil eq '.' }) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'variable_3') { $C->deb("Fate passed to variable_3: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT variable_3'; # some outer ltm is controlling us } else { $x = 'ALTLTM variable_3'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'variable_3', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("variable_3 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } }, sub { my $C=shift; $C->_EXACT("\\") }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['postcircumfix'], sub { my $C = shift; $C->postcircumfix }) } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token deflongname { sub deflongname__PEEK { $_[0]->_AUTOLEXpeek('deflongname', $retree) } sub deflongname { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE deflongname"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'colonpair'} = []; $self->_MATCHIFYr($S, "deflongname", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['name'], sub { my $C = shift; $C->name })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'deflongname_0') { $C->deb("Fate passed to deflongname_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT deflongname_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM deflongname_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'deflongname_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("deflongname_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_PLUSr(sub { my $C=shift; $C->_SUBSUMEr(['colonpair'], sub { my $C = shift; $C->colonpair }) }))) { scalar(do { $C->add_categorical(substr($::ORIG, $self->{'_pos'}, $C->{'_pos'} - $self->{'_pos'})) if $::IN_DECL}, $C) } else { () } }, sub { my $C=shift; scalar(do { my $M = $C; $C->add_routine($M->{'name'}->Str) if $::IN_DECL}, $C) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token subshortname { sub subshortname__PEEK { $_[0]->_AUTOLEXpeek('subshortname', $retree) } sub subshortname { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE subshortname"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'colonpair'} = []; $self->_MATCHIFYr($S, "subshortname", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'subshortname_0') { $C->deb("Fate passed to subshortname_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT subshortname_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM subshortname_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'subshortname_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("subshortname_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['category'], sub { my $C = shift; $C->category }))) { $C->_PLUSr(sub { my $C=shift; $C->_SUBSUMEr(['colonpair'], sub { my $C = shift; $C->colonpair }) }) } else { () } }, sub { my $C=shift; $C->_SUBSUMEr(['desigilname'], sub { my $C = shift; $C->desigilname }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token sublongname { sub sublongname__PEEK { $_[0]->_AUTOLEXpeek('sublongname', $retree) } sub sublongname { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE sublongname"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'sigterm'} = []; $self->_MATCHIFYr($S, "sublongname", do { if (my ($C) = ($C->_SUBSUMEr(['subshortname'], sub { my $C = shift; $C->subshortname }))) { $C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['sigterm'], sub { my $C = shift; $C->sigterm }) }) } else { () } }); } ; ## token value:quote { } sub value__S_135quote__PEEK { $_[0]->_AUTOLEXpeek('value__S_135quote', $retree) } sub value__S_135quote { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE value__S_135quote"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "quote"; $self->_MATCHIFYr($S, "value__S_135quote", $C->_SUBSUMEr(['quote'], sub { my $C = shift; $C->quote })); } ; ## token value:number { } sub value__S_136number__PEEK { $_[0]->_AUTOLEXpeek('value__S_136number', $retree) } sub value__S_136number { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE value__S_136number"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "number"; $self->_MATCHIFYr($S, "value__S_136number", $C->_SUBSUMEr(['number'], sub { my $C = shift; $C->number })); } ; ## token value:version { } sub value__S_137version__PEEK { $_[0]->_AUTOLEXpeek('value__S_137version', $retree) } sub value__S_137version { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE value__S_137version"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "version"; $self->_MATCHIFYr($S, "value__S_137version", $C->_SUBSUMEr(['version'], sub { my $C = shift; $C->version })); } ; ## token typename { sub typename__PEEK { $_[0]->_AUTOLEXpeek('typename', $retree) } sub typename { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE typename"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'param'} = []; $C->{'typename'} = []; $C->{'whence'} = []; $self->_MATCHIFYr($S, "typename", do { my $C = $C; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'typename_0') { $C->deb("Fate passed to typename_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT typename_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM typename_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'typename_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("typename_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_EXACT("\:\:\?"))) { $C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname })) and ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { my $M = $C; { my $longname = $M->{'longname'}->Str; if (substr($longname, 0, 2) eq '::') { $C->add_my_name(substr($longname, 2))} else { $C->is_name($longname) }; }}) }))) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\[") }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['param'], sub { my $C = shift; $C->postcircumfix }) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->unsp)) { ($C) } else { () } })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\{") }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['whence'], sub { my $C = shift; $C->postcircumfix }) } else { () } }))) { ($C) } else { () } }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_EXACT("of")) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['typename'], sub { my $C = shift; $C->typename }) } else { () } }))) { ($C) } else { () } }) } else { () } }); } ; ## token number { sub number__PEEK { $_[0]->_AUTOLEXpeek('number', $retree) } sub number { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE number"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "number", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'number_0') { $C->deb("Fate passed to number_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT number_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM number_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'number_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("number_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_PATTERN(qr/\GNaN\b/) }, sub { my $C=shift; $C->_SUBSUMEr(['integer'], sub { my $C = shift; $C->integer }) }, sub { my $C=shift; $C->_SUBSUMEr(['dec_number'], sub { my $C = shift; $C->dec_number }) }, sub { my $C=shift; $C->_SUBSUMEr(['rad_number'], sub { my $C = shift; $C->rad_number }) }, sub { my $C=shift; $C->_PATTERN(qr/\GInf\b/) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token strtonum:rational { <[+\-]>?'/' } sub strtonum__S_138rational__PEEK { $_[0]->_AUTOLEXpeek('strtonum__S_138rational', $retree) } sub strtonum__S_138rational { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE strtonum__S_138rational"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "rational"; $self->_MATCHIFYr($S, "strtonum__S_138rational", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G(?:[+\-])?+/)) and ($C) = ($C->_SUBSUMEr(['nu'], sub { my $C = shift; $C->integer })) and ($C) = ($C->_EXACT("\/"))) { $C->_SUBSUMEr(['de'], sub { my $C = shift; $C->integer }) } else { () } }); } ; ## token strtonum:complex { [<[+\-]>?]? <[+\-]>'\\'?'i' } sub strtonum__S_139complex__PEEK { $_[0]->_AUTOLEXpeek('strtonum__S_139complex', $retree) } sub strtonum__S_139complex { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE strtonum__S_139complex"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'re'} = []; $C->{sym} = "complex"; $self->_MATCHIFYr($S, "strtonum__S_139complex", do { my $C = $C; if (($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->_PATTERN(qr/\G(?:[+\-])?+/))) { $C->_SUBSUMEr(['re'], sub { my $C = shift; $C->number }) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_PATTERN(qr/\G[+\-]/)) and ($C) = ($C->_SUBSUMEr(['im'], sub { my $C = shift; $C->number }))) { $C->_PATTERN(qr/\G\\?+i/) } else { () } }); } ; ## token strtonum:number { <[+\-]>? } sub strtonum__S_140number__PEEK { $_[0]->_AUTOLEXpeek('strtonum__S_140number', $retree) } sub strtonum__S_140number { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE strtonum__S_140number"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "number"; $self->_MATCHIFYr($S, "strtonum__S_140number", do { if (my ($C) = ($C->_PATTERN(qr/\G(?:[+\-])?+/))) { $C->_SUBSUMEr(['number'], sub { my $C = shift; $C->number }) } else { () } }); } ; ## token sibble ($l, $lang2) { sub sibble__PEEK { $_[0]->_AUTOLEXpeek('sibble', $retree) } sub sibble { no warnings 'recursion'; my $self = shift; die 'Required argument l omitted' unless @_; my $l = @_ ? shift() : undef; die 'Required argument lang2 omitted' unless @_; my $lang2 = @_ ? shift() : undef; my ($lang, $start, $stop); local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE sibble"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "sibble", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['babble'], sub { my $C = shift; $C->babble($l) })) and ($C) = (scalar(do { my $M = $C; my $B = $M->{'babble'}->{'B'}; ($lang,$start,$stop) = @$B; }, $C)) and ($C) = ($C->_EXACT($start)) and ($C) = ($C->_SUBSUMEr(['left'], sub { my $C = shift; $C->nibble($lang) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->_EXACT($stop))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Couldn't find terminator $stop"))) { ($C) } else { () } } }; @gather; } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $start ne $stop }) })) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['infixish'], sub { my $C = shift; $C->infixish }) } or $xact->[-2] or do { push @gather, $C->_SUBSUMEr(['panic'], sub { my $C = shift; $C->panic("Missing assignment operator") }) }; @gather; } })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { my $M = $C; $M->{'infixish'}->Str eq '=' || $M->{'infixish'}->{'infix_postfix_meta_operator'} }) }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Malformed assignment operator"))) { ($C) } else { () } } }; @gather; } })) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['right','EXPR'], sub { my $C = shift; $C->EXPR(\%item_assignment) }) } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = (scalar(do { $lang = $lang2->unbalanced($stop)}, $C)) and ($C) = ($C->_SUBSUMEr(['right'], sub { my $C = shift; $C->nibble($lang) })) and ($C) = ($C->_EXACT($stop))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Malformed replacement part; couldn't find final $stop"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token tribble ($l, $lang2 = $l) { sub tribble__PEEK { $_[0]->_AUTOLEXpeek('tribble', $retree) } sub tribble { no warnings 'recursion'; my $self = shift; die 'Required argument l omitted' unless @_; my $l = @_ ? shift() : undef; my $lang2 = @_ ? shift() : $l; my ($lang, $start, $stop);local $::CCSTATE = ''; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE tribble"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "tribble", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['babble'], sub { my $C = shift; $C->babble($l) })) and ($C) = (scalar(do { my $M = $C; my $B = $M->{'babble'}->{'B'}; ($lang,$start,$stop) = @$B; }, $C)) and ($C) = ($C->_EXACT($start)) and ($C) = ($C->_SUBSUMEr(['left'], sub { my $C = shift; $C->nibble($lang) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->_EXACT($stop))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Couldn't find terminator $stop"))) { ($C) } else { () } } }; @gather; } })) and ($C) = (scalar(do { $::CCSTATE = ''}, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $start ne $stop }) })) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble($lang2) }) } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = (scalar(do { $lang = $lang2->unbalanced($stop)}, $C)) and ($C) = ($C->_SUBSUMEr(['right'], sub { my $C = shift; $C->nibble($lang) })) and ($C) = ($C->_EXACT($stop))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Malformed replacement part; couldn't find final $stop"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token quasiquibble ($l) { sub quasiquibble__PEEK { $_[0]->_AUTOLEXpeek('quasiquibble', $retree) } sub quasiquibble { no warnings 'recursion'; my $self = shift; die 'Required argument l omitted' unless @_; my $l = @_ ? shift() : undef; local %::LANG = %::LANG;my ($lang, $start, $stop);local $::QUASIMODO = 0; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quasiquibble"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "quasiquibble", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['babble'], sub { my $C = shift; $C->babble($l) })) and ($C) = (scalar(do { my $M = $C; my $B = $M->{'babble'}->{'B'}; ($lang,$start,$stop) = @$B; $::LANG{'MAIN'} = $lang; }, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $start eq '{' }) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; my $newlang = ($lang); $C = bless($C, (ref($newlang) || $newlang)); $C->_SUBSUMEr(['block'], sub { my $C = shift; $C->block }) }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; my $newlang = ($lang); $C = bless($C, (ref($newlang) || $newlang)); do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['starter'], sub { my $C = shift; $C->starter })) and ($C) = ($C->_SUBSUMEr(['statementlist'], sub { my $C = shift; $C->statementlist })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['stopper'], sub { my $C = shift; $C->stopper }) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Couldn't find terminator $stop"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } } }))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }); } ; ## token quote:sym { sub quote__S_141SlashSlash__PEEK { $_[0]->_AUTOLEXpeek('quote__S_141SlashSlash', $retree) } sub quote__S_141SlashSlash { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_141SlashSlash"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\/\/"; $self->_MATCHIFYr($S, "quote__S_141SlashSlash", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G\/\s*+\//)) and ($C) = ($C->sorry("Null regex not allowed"))) { $C } else { () } }); } ; ## token quote:sym { sub quote__S_142Slash_Slash__PEEK { $_[0]->_AUTOLEXpeek('quote__S_142Slash_Slash', $retree) } sub quote__S_142Slash_Slash { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_142Slash_Slash"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\/\ \/"; $self->_MATCHIFYr($S, "quote__S_142Slash_Slash", do { my $C = $C; if (($C) = ($C->_EXACT("\/")) and ($C) = ($C->_SUBSUMEr(['nibble'], sub { my $C = shift; $C->nibble( $C->cursor_fresh( $::LANG{'Regex'} )->unbalanced("/") ) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\/") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Unable to parse regex; couldn't find final '/'"))) { ($C) } else { () } } }; @gather; } }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->old_rx_mods)) { ($C) } else { () } }) } else { () } }); } ; ## token quote:qq { sub quote__S_143qq__PEEK { $_[0]->_AUTOLEXpeek('quote__S_143qq', $retree) } sub quote__S_143qq { no warnings 'recursion'; my $self = shift; my $qm; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_143qq"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "qq"; $self->_MATCHIFYr($S, "quote__S_143qq", do { my $C = $C; if (($C) = ($C->_EXACT("qq")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'quote__S_143qq_0') { $C->deb("Fate passed to quote__S_143qq_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT quote__S_143qq_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM quote__S_143qq_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'quote__S_143qq_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("quote__S_143qq_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['quote_mod'], sub { my $C = shift; $C->quote_mod })) and ($C) = ($C->_PATTERN(qr/\G\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = (scalar(do { my $M = $C; $qm = $M->{'quote_mod'}->Str }, $C)) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble($C->cursor_fresh( $::LANG{'Q'} )->tweak('qq' => 1)->tweak($qm => 1)) }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\G\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble($C->cursor_fresh( $::LANG{'Q'} )->tweak('qq' => 1)) }) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token quote:q { sub quote__S_144q__PEEK { $_[0]->_AUTOLEXpeek('quote__S_144q', $retree) } sub quote__S_144q { no warnings 'recursion'; my $self = shift; my $qm; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_144q"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "q"; $self->_MATCHIFYr($S, "quote__S_144q", do { my $C = $C; if (($C) = ($C->_EXACT("q")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'quote__S_144q_0') { $C->deb("Fate passed to quote__S_144q_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT quote__S_144q_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM quote__S_144q_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'quote__S_144q_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("quote__S_144q_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['quote_mod'], sub { my $C = shift; $C->quote_mod })) and ($C) = ($C->_PATTERN(qr/\G\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = (scalar(do { my $M = $C; $qm = $M->{'quote_mod'}->Str }, $C))) { $C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble($C->cursor_fresh( $::LANG{'Q'} )->tweak('q' => 1)->tweak($qm => 1)) }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\G\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble($C->cursor_fresh( $::LANG{'Q'} )->tweak('q' => 1)) }) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token quote:Q { sub quote__S_145Q__PEEK { $_[0]->_AUTOLEXpeek('quote__S_145Q', $retree) } sub quote__S_145Q { no warnings 'recursion'; my $self = shift; my $qm; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_145Q"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "Q"; $self->_MATCHIFYr($S, "quote__S_145Q", do { my $C = $C; if (($C) = ($C->_EXACT("Q")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'quote__S_145Q_0') { $C->deb("Fate passed to quote__S_145Q_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT quote__S_145Q_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM quote__S_145Q_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'quote__S_145Q_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("quote__S_145Q_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['quote_mod'], sub { my $C = shift; $C->quote_mod })) and ($C) = ($C->_PATTERN(qr/\G\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = (scalar(do { my $M = $C; $qm = $M->{'quote_mod'}->Str }, $C))) { $C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble($C->cursor_fresh( $::LANG{'Q'} )->tweak($qm => 1)) }) } else { () } }, sub { my $C=shift; if (($C) = ($C->_PATTERN(qr/\G\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble($C->cursor_fresh( $::LANG{'Q'} )) }) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token quote_mod:w { } sub quote_mod__S_146w__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_146w', $retree) } sub quote_mod__S_146w { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_146w"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "w"; $self->_MATCHIFYr($S, "quote_mod__S_146w", $C->_EXACT("w")); } ; ## token quote_mod:ww { } sub quote_mod__S_147ww__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_147ww', $retree) } sub quote_mod__S_147ww { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_147ww"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "ww"; $self->_MATCHIFYr($S, "quote_mod__S_147ww", $C->_EXACT("ww")); } ; ## token quote_mod:p { } sub quote_mod__S_148p__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_148p', $retree) } sub quote_mod__S_148p { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_148p"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "p"; $self->_MATCHIFYr($S, "quote_mod__S_148p", $C->_EXACT("p")); } ; ## token quote_mod:x { } sub quote_mod__S_149x__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_149x', $retree) } sub quote_mod__S_149x { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_149x"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "x"; $self->_MATCHIFYr($S, "quote_mod__S_149x", $C->_EXACT("x")); } ; ## token quote_mod:to { } sub quote_mod__S_150to__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_150to', $retree) } sub quote_mod__S_150to { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_150to"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "to"; $self->_MATCHIFYr($S, "quote_mod__S_150to", $C->_EXACT("to")); } ; ## token quote_mod:s { } sub quote_mod__S_151s__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_151s', $retree) } sub quote_mod__S_151s { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_151s"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "s"; $self->_MATCHIFYr($S, "quote_mod__S_151s", $C->_EXACT("s")); } ; ## token quote_mod:a { } sub quote_mod__S_152a__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_152a', $retree) } sub quote_mod__S_152a { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_152a"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "a"; $self->_MATCHIFYr($S, "quote_mod__S_152a", $C->_EXACT("a")); } ; ## token quote_mod:h { } sub quote_mod__S_153h__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_153h', $retree) } sub quote_mod__S_153h { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_153h"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "h"; $self->_MATCHIFYr($S, "quote_mod__S_153h", $C->_EXACT("h")); } ; ## token quote_mod:f { } sub quote_mod__S_154f__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_154f', $retree) } sub quote_mod__S_154f { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_154f"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "f"; $self->_MATCHIFYr($S, "quote_mod__S_154f", $C->_EXACT("f")); } ; ## token quote_mod:c { } sub quote_mod__S_155c__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_155c', $retree) } sub quote_mod__S_155c { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_155c"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "c"; $self->_MATCHIFYr($S, "quote_mod__S_155c", $C->_EXACT("c")); } ; ## token quote_mod:b { } sub quote_mod__S_156b__PEEK { $_[0]->_AUTOLEXpeek('quote_mod__S_156b', $retree) } sub quote_mod__S_156b { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote_mod__S_156b"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "b"; $self->_MATCHIFYr($S, "quote_mod__S_156b", $C->_EXACT("b")); } ; ## token quote:rx { sub quote__S_157rx__PEEK { $_[0]->_AUTOLEXpeek('quote__S_157rx', $retree) } sub quote__S_157rx { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_157rx"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "rx"; $self->_MATCHIFYr($S, "quote__S_157rx", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Grx\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble( $C->cursor_fresh( $::LANG{'Regex'} ) ) })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->old_rx_mods)) { ($C) } else { () } }))) { $C } else { () } }); } ; ## token quote:m { sub quote__S_158m__PEEK { $_[0]->_AUTOLEXpeek('quote__S_158m', $retree) } sub quote__S_158m { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_158m"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "m"; $self->_MATCHIFYr($S, "quote__S_158m", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Gm\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble( $C->cursor_fresh( $::LANG{'Regex'} ) ) })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->old_rx_mods)) { ($C) } else { () } }))) { $C } else { () } }); } ; ## token quote:mm { sub quote__S_159mm__PEEK { $_[0]->_AUTOLEXpeek('quote__S_159mm', $retree) } sub quote__S_159mm { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_159mm"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "mm"; $self->_MATCHIFYr($S, "quote__S_159mm", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Gmm\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['quibble'], sub { my $C = shift; $C->quibble( $C->cursor_fresh( $::LANG{'Regex'} )->tweak('s' => 1)) })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->old_rx_mods)) { ($C) } else { () } }))) { $C } else { () } }); } ; ## token quote:s { sub quote__S_160s__PEEK { $_[0]->_AUTOLEXpeek('quote__S_160s', $retree) } sub quote__S_160s { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_160s"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "s"; $self->_MATCHIFYr($S, "quote__S_160s", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Gs\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['pat'], sub { my $C = shift; $C->sibble( $C->cursor_fresh( $::LANG{'Regex'} ), $C->cursor_fresh( $::LANG{'Q'} )->tweak('qq' => 1)) })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->old_rx_mods)) { ($C) } else { () } }))) { $C } else { () } }); } ; ## token quote:ss { sub quote__S_161ss__PEEK { $_[0]->_AUTOLEXpeek('quote__S_161ss', $retree) } sub quote__S_161ss { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_161ss"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "ss"; $self->_MATCHIFYr($S, "quote__S_161ss", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Gss\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['pat'], sub { my $C = shift; $C->sibble( $C->cursor_fresh( $::LANG{'Regex'} )->tweak('s' => 1), $C->cursor_fresh( $::LANG{'Q'} )->tweak('qq' => 1)) })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->old_rx_mods)) { ($C) } else { () } }))) { $C } else { () } }); } ; ## token quote:tr { sub quote__S_162tr__PEEK { $_[0]->_AUTOLEXpeek('quote__S_162tr', $retree) } sub quote__S_162tr { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_162tr"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "tr"; $self->_MATCHIFYr($S, "quote__S_162tr", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Gtr\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['pat'], sub { my $C = shift; $C->tribble( $C->cursor_fresh( $::LANG{'Q'} )->tweak('cc' => 1)) })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->old_tr_mods)) { ($C) } else { () } }))) { $C } else { () } }); } ; ## token quote:y { sub quote__S_163y__PEEK { $_[0]->_AUTOLEXpeek('quote__S_163y', $retree) } sub quote__S_163y { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_163y"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "y"; $self->_MATCHIFYr($S, "quote__S_163y", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Gy\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; (($C) x !!do { $self->is_known('&y') or $self->is_known('y') }) })) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\x20\t\r]*+\W/) }))) { ($C) } else { () } })) and ($C) = ($C->obs('y///','tr///'))) { $C } else { () } }); } ; ## token old_rx_mods { sub old_rx_mods__PEEK { $_[0]->_AUTOLEXpeek('old_rx_mods', $retree) } sub old_rx_mods { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE old_rx_mods"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "old_rx_mods", do { my $C = $C; if (($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->after(sub { my $C=shift; $C->_PATTERN(qr/\G(?<=\w)/) }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['0'], sub { my $C = shift; $C->_PAREN( sub { my $C=shift; $C->_PLUSr(sub { my $C=shift; if (my ($C) = ($C->_ARRAY( qw< i g s m x c e > ))) { ($C) } else { () } }) }) }))) { scalar(do { my $M = $C; { given ($M->{0}->Str) { $_ =~ /i/ and $C->worryobs('/i',':i'); $_ =~ /g/ and $C->worryobs('/g',':g'); $_ =~ /m/ and $C->worryobs('/m','^^ and $$ anchors'); $_ =~ /s/ and $C->worryobs('/s','. or \N'); $_ =~ /x/ and $C->worryobs('/x','normal default whitespace'); $_ =~ /c/ and $C->worryobs('/c',':c or :p'); $_ =~ /e/ and $C->worryobs('/e','interpolated {...} or s{} = ... form'); $C->obs('suffix regex modifiers','prefix adverbs'); } }}, $C) } else { () } }); } ; ## token old_tr_mods { sub old_tr_mods__PEEK { $_[0]->_AUTOLEXpeek('old_tr_mods', $retree) } sub old_tr_mods { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE old_tr_mods"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "old_tr_mods", do { if (my ($C) = ($C->_SUBSUMEr(['0'], sub { my $C = shift; $C->_PAREN( sub { my $C=shift; $C->_PLUSr(sub { my $C=shift; if (my ($C) = ($C->_ARRAY( qw< c d s ] > ))) { ($C) } else { () } }) }) }))) { scalar(do { my $M = $C; { given ($M->{0}->Str) { $_ =~ /c/ and $C->worryobs('/c',':c'); $_ =~ /d/ and $C->worryobs('/g',':d'); $_ =~ /s/ and $C->worryobs('/s',':s'); $C->obs('suffix transliteration modifiers','prefix adverbs'); } }}, $C) } else { () } }); } ; ## token quote:quasi { sub quote__S_164quasi__PEEK { $_[0]->_AUTOLEXpeek('quote__S_164quasi', $retree) } sub quote__S_164quasi { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE quote__S_164quasi"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "quasi"; $self->_MATCHIFYr($S, "quote__S_164quasi", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Gquasi\b/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\(") }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['quasiquibble'], sub { my $C = shift; $C->quasiquibble($C->cursor_fresh( $::LANG{'Quasi'} )) }) } else { () } }); } ; ## token capterm { sub capterm__PEEK { $_[0]->_AUTOLEXpeek('capterm', $retree) } sub capterm { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE capterm"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'capture'} = []; $self->_MATCHIFYr($S, "capterm", do { my $C = $C; if (($C) = ($C->_EXACT("\\")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'capterm_0') { $C->deb("Fate passed to capterm_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT capterm_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM capterm_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'capterm_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("capterm_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_EXACT("\(")) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['capture'], sub { my $C = shift; $C->capture }) }))) { $C->_EXACT("\)") } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\S/) }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['termish'], sub { my $C = shift; $C->termish }) } else { () } }, sub { my $C=shift; if (($C) = (scalar(do { }, $C)) and ($C) = ($C->panic("You can't backslash that"))) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## rule capture { sub capture__PEEK { $_[0]->_AUTOLEXpeek('capture', $retree) } sub capture { no warnings 'recursion'; my $self = shift; local $::INVOCANT_OK = 1; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE capture"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "capture", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token sigterm { sub sigterm__PEEK { $_[0]->_AUTOLEXpeek('sigterm', $retree) } sub sigterm { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE sigterm"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "sigterm", $C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\)"; my $goalpos = $C; if (($C) = ($C->_EXACT("\:\(")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['fakesignature'], sub { my $C = shift; $C->fakesignature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'signature', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })); } ; ## rule param_sep { [','|':'|';'|';;'] } sub param_sep__PEEK { $_[0]->_AUTOLEXpeek('param_sep', $retree) } sub param_sep { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE param_sep"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "param_sep", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'param_sep_0') { $C->deb("Fate passed to param_sep_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT param_sep_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM param_sep_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'param_sep_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("param_sep_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\,") }, sub { my $C=shift; $C->_EXACT("\:") }, sub { my $C=shift; $C->_EXACT("\;") }, sub { my $C=shift; $C->_EXACT("\;\;") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token fakesignature() { sub fakesignature__PEEK { $_[0]->_AUTOLEXpeek('fakesignature', $retree) } sub fakesignature { no warnings 'recursion'; my $self = shift; local $::CURLEX = $::CURLEX;local $::DECLARAND; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE fakesignature"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "fakesignature", do { if (my ($C) = ($C->newlex)) { $C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature }) } else { () } }); } ; ## token signature ($lexsig = 0) { sub signature__PEEK { $_[0]->_AUTOLEXpeek('signature', $retree) } sub signature { no warnings 'recursion'; my $self = shift; my $lexsig = @_ ? shift() : 0; local $::IN_DECL = 'sig';local $::zone = 'posreq';my $startpos = $self->{'_pos'};local $::MULTINESS = 'only';local $::SIGNUM = $lexsig; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE signature"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'longname'} = []; $C->{'param_sep'} = []; $C->{'parameter'} = []; $C->{'type_constraint'} = []; $self->_MATCHIFYr($S, "signature", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'signature_0') { $C->deb("Fate passed to signature_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT signature_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM signature_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'signature_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("signature_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_EXACT("\\\|")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("\\| signature must contain one variable"))) { ($C) } else { () } } }; @gather; } })) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'signature_1') { $C->deb("Fate passed to signature_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT signature_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM signature_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'signature_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("signature_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\-\-\>") }, sub { my $C=shift; $C->_EXACT("\)") }, sub { my $C=shift; $C->_EXACT("\]") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("\\| signature may contain only a variable"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }, sub { my $C=shift; $C->_REPSEPr( sub { my $C=shift; $C->_SUBSUMEr(['param_sep'], sub { my $C = shift; $C->param_sep }) }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'signature_2') { $C->deb("Fate passed to signature_2: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT signature_2'; # some outer ltm is controlling us } else { $x = 'ALTLTM signature_2'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'signature_2', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("signature_2 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = (do { do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'signature_3') { $C->deb("Fate passed to signature_3: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT signature_3'; # some outer ltm is controlling us } else { $x = 'ALTLTM signature_3'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'signature_3', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("signature_3 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_EXACT("\-\-\>") }, sub { my $C=shift; $C->_EXACT("\)") }, sub { my $C=shift; $C->_EXACT("\]") }, sub { my $C=shift; $C->_EXACT("\{") }, sub { my $C=shift; $C->_PATTERN(qr/\G\:\s/) }, sub { my $C=shift; $C->_EXACT("\;\;") } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) { ($C) } else { () } }))) { ($C) } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['parameter'], sub { my $C = shift; $C->parameter }) } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Malformed parameter"))) { ($C) } else { () } } }; @gather; } }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { ($C) } else { () } }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->ws) and ($C) = (scalar(do { $::IN_DECL = ''}, $C)) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_EXACT("\-\-\>")) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_SUBSUMEr(['type_constraint'], sub { my $C = shift; $C->type_constraint }) } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname })) and ($C) = (do { my $M = $C; $C->panic("Typename " . $M->{'longname'}->[0]->Str . " must be predeclared") })) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("No type found after -->"))) { ($C) } else { () } } }; @gather; } })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } }))) { scalar(do { { $::LEFTSIGIL = '@'; if ($lexsig) { $::CURLEX->{'$?SIGNATURE'} .= '|' if $lexsig > 1; $::CURLEX->{'$?SIGNATURE'} .= '(' . substr($::ORIG, $startpos, $C->{'_pos'} - $startpos) . ')'; delete $::CURLEX->{'!NEEDSIG'}; }; }}, $C) } else { () } }); } ; ## token type_declarator:subset { sub type_declarator__S_165subset__PEEK { $_[0]->_AUTOLEXpeek('type_declarator__S_165subset', $retree) } sub type_declarator__S_165subset { no warnings 'recursion'; my $self = shift; ; local $::IN_DECL = 'subset';local $::DECLARAND; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE type_declarator__S_165subset"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'EXPR'} = []; $C->{'longname'} = []; $C->{'trait'} = []; $C->{sym} = "subset"; $self->_MATCHIFYr($S, "type_declarator__S_165subset", do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->_EXACT("subset")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname })) and ($C) = ($C->ws)) { scalar(do { my $M = $C; $C->add_name($M->{'longname'}->[0]->Str)}, $C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) })) and ($C) = ($C->ws) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_EXACT("where")) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR(\%item_assignment) })) and ($C) = ($C->ws)) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->panic("Malformed subset")) and ($C) = ($C->ws)) { $C } else { () } } }; @gather; }); } ; ## token type_declarator:enum { sub type_declarator__S_166enum__PEEK { $_[0]->_AUTOLEXpeek('type_declarator__S_166enum', $retree) } sub type_declarator__S_166enum { no warnings 'recursion'; my $self = shift; ; local $::IN_DECL = 'enum';local $::DECLARAND; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE type_declarator__S_166enum"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'trait'} = []; $C->{sym} = "enum"; $self->_MATCHIFYr($S, "type_declarator__S_166enum", do { my $C = $C; if (($C) = ($C->_EXACT("enum")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'type_declarator__S_166enum_0') { $C->deb("Fate passed to type_declarator__S_166enum_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT type_declarator__S_166enum_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM type_declarator__S_166enum_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'type_declarator__S_166enum_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("type_declarator__S_166enum_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['name','longname'], sub { my $C = shift; $C->longname }))) { scalar(do { my $M = $C; $C->add_name($M->{'name'}->Str)}, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['name','variable'], sub { my $C = shift; $C->variable }))) { scalar(do { my $M = $C; $C->add_variable($M->{'name'}->Str)}, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = (scalar(do { $::IN_DECL = ''}, $C)) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[<(«]/) }))) { ($C) } else { () } })) and ($C) = ($C->_SUBSUMEr(['term'], sub { my $C = shift; $C->term })) and ($C) = ($C->ws)) { scalar(do { my $M = $C; $C->add_enum($M->{'name'}, $M->{'term'}->Str)}, $C) } else { () } }); } ; ## token type_declarator:constant { sub type_declarator__S_167constant__PEEK { $_[0]->_AUTOLEXpeek('type_declarator__S_167constant', $retree) } sub type_declarator__S_167constant { no warnings 'recursion'; my $self = shift; ; local $::IN_DECL = 'constant';local $::DECLARAND; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE type_declarator__S_167constant"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'trait'} = []; $C->{sym} = "constant"; $self->_MATCHIFYr($S, "type_declarator__S_167constant", do { my $C = $C; if (($C) = ($C->_EXACT("constant")) and ($C) = ($C->spacey) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'type_declarator__S_167constant_0') { $C->deb("Fate passed to type_declarator__S_167constant_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT type_declarator__S_167constant_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM type_declarator__S_167constant_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'type_declarator__S_167constant_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("type_declarator__S_167constant_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier }))) { scalar(do { my $M = $C; $C->add_name($M->{'identifier'}->Str)}, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['variable'], sub { my $C = shift; $C->variable }))) { scalar(do { my $M = $C; $C->add_variable($M->{'variable'}->Str)}, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = (scalar(do { $::IN_DECL = ''}, $C)) and ($C) = ($C->ws) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { if (my ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\=") }))) { ($C) } else { () } }))) { ($C) } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G(?:[^\n=])*+\=/) }))) { ($C) } else { () } })) and ($C) = ($C->panic("Malformed constant"))) { $C } else { () } } } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->sorry("Missing initializer on constant declaration"))) { ($C) } else { () } } }; @gather; } })) and ($C) = ($C->getdecl)) { $C } else { () } }); } ; ## token type_constraint { sub type_constraint__PEEK { $_[0]->_AUTOLEXpeek('type_constraint', $retree) } sub type_constraint { no warnings 'recursion'; my $self = shift; local $::IN_DECL = ''; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE type_constraint"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "type_constraint", do { my $C = $C; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'type_constraint_0') { $C->deb("Fate passed to type_constraint_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT type_constraint_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM type_constraint_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'type_constraint_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("type_constraint_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_SUBSUMEr(['value'], sub { my $C = shift; $C->value }) }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['typename'], sub { my $C = shift; $C->typename })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $::DECLARAND->{'of'} }) })) and ($C) = ($C->sorry("Extra 'of' type; already declared as type " . $::DECLARAND->{'of'}->Str))) { $C } else { () } }))) { ($C) } else { () } }))) { scalar(do { my $M = $C; $::DECLARAND->{'of'} = $M->{'typename'}}, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("where")) and ($C) = ($C->ws)) { $C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR(\%item_assignment) }) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## rule post_constraint { sub post_constraint__PEEK { $_[0]->_AUTOLEXpeek('post_constraint', $retree) } sub post_constraint { no warnings 'recursion'; my $self = shift; local $::IN_DECL = ''; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE post_constraint"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "post_constraint", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'post_constraint_0') { $C->deb("Fate passed to post_constraint_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT post_constraint_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM post_constraint_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'post_constraint_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("post_constraint_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\]"; my $goalpos = $C; if (($C) = ($C->_EXACT("\[")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\]") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'constraint', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\)"; my $goalpos = $C; if (($C) = ($C->_EXACT("\(")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'constraint', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } })) and ($C) = ($C->ws)) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("where")) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR(\%item_assignment) })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token named_param { sub named_param__PEEK { $_[0]->_AUTOLEXpeek('named_param', $retree) } sub named_param { no warnings 'recursion'; my $self = shift; local $::GOAL = ')'; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE named_param"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "named_param", do { my $C = $C; if (($C) = ($C->_EXACT("\:")) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'named_param_0') { $C->deb("Fate passed to named_param_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT named_param_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM named_param_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'named_param_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("named_param_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['name'], sub { my $C = shift; $C->identifier })) and ($C) = ($C->_EXACT("\(")) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'named_param_1') { $C->deb("Fate passed to named_param_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT named_param_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM named_param_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'named_param_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("named_param_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_SUBSUMEr(['named_param'], sub { my $C = shift; $C->named_param }) }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var })) and ($C) = ($C->ws)) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->panic("Unable to parse named parameter; couldn't find right parenthesis"))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }, sub { my $C=shift; $C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var(1) }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token param_var($named = 0) { sub param_var__PEEK { $_[0]->_AUTOLEXpeek('param_var', $retree) } sub param_var { no warnings 'recursion'; my $self = shift; my $named = @_ ? shift() : 0; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE param_var"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'name'} = []; $C->{'postcircumfix'} = []; $C->{'twigil'} = []; $self->_MATCHIFYr($S, "param_var", $C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'param_var_0') { $C->deb("Fate passed to param_var_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT param_var_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM param_var_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'param_var_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("param_var_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\]"; my $goalpos = $C; if (($C) = ($C->_EXACT("\[")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\]") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'formal parameter', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; local $::GOAL = "\)"; my $goalpos = $C; if (($C) = ($C->_EXACT("\(")) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['signature'], sub { my $C = shift; $C->signature })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\)") } or $xact->[-2] or do { push @gather, do { if (my ($C) = ($C->FAILGOAL($::GOAL, 'formal parameter', $goalpos))) { ($C) } else { () } } }; @gather; } }))) { $C } else { () } }))) { ($C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['twigil'], sub { my $C = shift; $C->twigil }) })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { my $M = $C; $M->{'sigil'}->Str eq '&' }) })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->ident)) { ($C) } else { () } })) and ($C) = (scalar(do { }, $C))) { $C->_SUBSUMEr(['name'], sub { my $C = shift; $C->sublongname }) } else { () } } } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; (($C) x !!do { my $M = $C; $M->{'sigil'}->Str eq '@' || $M->{'sigil'}->Str eq '%' }) })) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['name'], sub { my $C = shift; $C->identifier }) })) and ($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\<\(\[\{]/) }))) { ($C) } else { () } }))) { $C->_SUBSUMEr(['postcircumfix'], sub { my $C = shift; $C->postcircumfix }) } else { () } } } or $xact->[-2] or do { push @gather, $C->_SUBSUMEr(['name'], sub { my $C = shift; $C->identifier }) } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['name'], sub { my $C = shift; $C->decint })) and ($C) = ($C->panic("Can't declare a numeric parameter"))) { $C } else { () } } } or $xact->[-2] or do { push @gather, $C->_SUBSUMEr(['name'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; $C->_PATTERN(qr/\G[\/!]/) }) }) }; @gather; } }))) { ($C) } else { () } }))) { scalar(do { my $M = $C; { my $vname = $M->{'sigil'}->Str; my $t = $M->{'twigil'}; my $twigil = ''; $twigil = $t->[0]->Str if @$t; $vname .= $twigil; my $n = eval { $M->{'name'}->[0]->Str } // ''; $vname .= $n; given ($twigil) { when ('') { $self->add_my_name($vname) if $n ne ''; $::CURLEX->{$vname}->{'used'} = 1 if $named and $n; } ; when ('.') { } ; when ('!') { } ; when ('*') { } ; default { $self->panic("You may not use the $twigil twigil in a signature")} ; } ; }}, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })); } ; ## token parameter { sub parameter__PEEK { $_[0]->_AUTOLEXpeek('parameter', $retree) } sub parameter { no warnings 'recursion'; my $self = shift; my $kind;my $quant = '';local $::DECLARAND;local $::OFTYPE; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE parameter"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{'default_value'} = []; $C->{'post_constraint'} = []; $C->{'trait'} = []; $C->{'type_constraint'} = []; $self->_MATCHIFYr($S, "parameter", do { my $C = $C; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'parameter_0') { $C->deb("Fate passed to parameter_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT parameter_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM parameter_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'parameter_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("parameter_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_PLUSr(sub { my $C=shift; $C->_SUBSUMEr(['type_constraint'], sub { my $C = shift; $C->type_constraint }) })) and ($C) = (scalar(do { my $M = $C; { my $t = $M->{'type_constraint'}; my @t = grep { substr($_->Str,0,2) ne '::' } @$t; @t > 1 and $C->sorry("Multiple prefix constraints not yet supported") ; }}, $C)) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'parameter_1') { $C->deb("Fate passed to parameter_1: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT parameter_1'; # some outer ltm is controlling us } else { $x = 'ALTLTM parameter_1'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'parameter_1', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("parameter_1 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (($C) = ($C->_EXACT("\*\*")) and ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = '**'; $kind = '*'; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("\*")) and ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = '*'; $kind = '*'; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("\|")) and ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = '|'; $kind = '*'; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("\\")) and ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = '\\'; $kind = '!'; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'parameter_2') { $C->deb("Fate passed to parameter_2: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT parameter_2'; # some outer ltm is controlling us } else { $x = 'ALTLTM parameter_2'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'parameter_2', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("parameter_2 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = ''; $kind = '!'; }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['named_param'], sub { my $C = shift; $C->named_param }))) { scalar(do { $quant = ''; $kind = '*'; }, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'parameter_3') { $C->deb("Fate passed to parameter_3: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT parameter_3'; # some outer ltm is controlling us } else { $x = 'ALTLTM parameter_3'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'parameter_3', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("parameter_3 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_EXACT("\?"))) { scalar(do { $quant = '?'; $kind = '?' ; }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_EXACT("\!"))) { scalar(do { $quant = '!'; $kind //= '!' ; }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C }))) { scalar(do { $quant = ''; $kind = '!' ; }, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("\*\*")) and ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = '**'; $kind = '*'; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("\*")) and ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = '*'; $kind = '*'; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("\|")) and ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = '|'; $kind = '*'; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_EXACT("\\")) and ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = '\\'; $kind = '!'; }, $C) } else { () } }, sub { my $C=shift; if (($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'parameter_4') { $C->deb("Fate passed to parameter_4: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT parameter_4'; # some outer ltm is controlling us } else { $x = 'ALTLTM parameter_4'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'parameter_4', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("parameter_4 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['param_var'], sub { my $C = shift; $C->param_var }))) { scalar(do { $quant = ''; $kind = '!'; }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_SUBSUMEr(['named_param'], sub { my $C = shift; $C->named_param }))) { scalar(do { $quant = ''; $kind = '*'; }, $C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'parameter_5') { $C->deb("Fate passed to parameter_5: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT parameter_5'; # some outer ltm is controlling us } else { $x = 'ALTLTM parameter_5'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'parameter_5', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("parameter_5 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; if (my ($C) = ($C->_EXACT("\?"))) { scalar(do { $quant = '?'; $kind = '?' ; }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->_EXACT("\!"))) { scalar(do { $quant = '!'; $kind //= '!' ; }, $C) } else { () } }, sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C }))) { ($C) } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }, sub { my $C=shift; if (($C) = (scalar(do { }, $C)) and ($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname })) and ($C) = (do { my $M = $C; $C->panic("In parameter declaration, typename '" . $M->{'longname'}->Str . "' must be predeclared (or marked as declarative with :: prefix)") })) { $C } else { () } } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; })) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['trait'], sub { my $C = shift; $C->trait }) })) and ($C) = ($C->_STARr(sub { my $C=shift; $C->_SUBSUMEr(['post_constraint'], sub { my $C = shift; $C->post_constraint }) })) and ($C) = ($C->getdecl) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_SUBSUMEr(['default_value'], sub { my $C = shift; $C->default_value })) and ($C) = (scalar(do { { given ($quant) { when ('!') { $C->sorry("Can't put a default on a required parameter") } ; when ('*') { $C->sorry("Can't put a default on a slurpy parameter") } ; when ('**') { $C->sorry("Can't put a default on a slice parameter") } ; when ('|') { $C->sorry("Can't put a default on an slurpy capture parameter") } ; when ('\\') { $C->sorry("Can't put a default on a capture parameter") } ; } ; $kind = '?' if $kind eq '!'; }}, $C)) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\:") }))) { ($C) } else { () } })) and ($C) = ($C->sorry("Can't put a default on the invocant parameter"))) { $C } else { () } }))) { ($C) } else { () } }))) { $C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[,;)\]\{\-]/) }))) { ($C) } else { () } })) and ($C) = ($C->sorry("Default expression must come last"))) { $C } else { () } }))) { ($C) } else { () } }) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\:") }))) { ($C) } else { () } })) and ($C) = ($C->before(sub { my $C=shift; (($C) x !!do { $kind ne '!' }) })) and ($C) = ($C->sorry("Invocant is too exotic"))) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = (scalar(do { my $M = $C; $M->{'quant'} = $quant; $M->{'kind'} = $kind; }, $C))) { scalar(do { { given ($kind) { when ('!') { given ($::zone) { when ('posopt') { $C->sorry("Can't put required parameter after optional parameters")} ; when ('var') { $C->sorry("Can't put required parameter after variadic parameters")} ; } } ; when ('?') { given ($::zone) { when ('posreq') { $::zone = 'posopt' } ; when ('var') { $C->sorry("Can't put optional positional parameter after variadic parameters")} ; } } ; when ('*') { $::zone = 'var'} ; } }}, $C) } else { () } }); } ; ## rule default_value { sub default_value__PEEK { $_[0]->_AUTOLEXpeek('default_value', $retree) } sub default_value { no warnings 'recursion'; my $self = shift; local $::IN_DECL = ''; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE default_value"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "default_value", do { my $C = $C; if (($C) = ($C->ws) and ($C) = ($C->_EXACT("\=")) and ($C) = ($C->ws) and ($C) = ($C->_SUBSUMEr(['EXPR'], sub { my $C = shift; $C->EXPR(\%item_assignment) })) and ($C) = ($C->ws)) { $C } else { () } }); } ; ## token statement_prefix:sink { } sub statement_prefix__S_168sink__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_168sink', $retree) } sub statement_prefix__S_168sink { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_168sink"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "sink"; $self->_MATCHIFYr($S, "statement_prefix__S_168sink", do { if (my ($C) = ($C->_EXACT("sink"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:try { } sub statement_prefix__S_169try__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_169try', $retree) } sub statement_prefix__S_169try { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_169try"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "try"; $self->_MATCHIFYr($S, "statement_prefix__S_169try", do { if (my ($C) = ($C->_EXACT("try"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:quietly { } sub statement_prefix__S_170quietly__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_170quietly', $retree) } sub statement_prefix__S_170quietly { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_170quietly"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "quietly"; $self->_MATCHIFYr($S, "statement_prefix__S_170quietly", do { if (my ($C) = ($C->_EXACT("quietly"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:gather { } sub statement_prefix__S_171gather__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_171gather', $retree) } sub statement_prefix__S_171gather { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_171gather"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "gather"; $self->_MATCHIFYr($S, "statement_prefix__S_171gather", do { if (my ($C) = ($C->_EXACT("gather"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:contend { } sub statement_prefix__S_172contend__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_172contend', $retree) } sub statement_prefix__S_172contend { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_172contend"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "contend"; $self->_MATCHIFYr($S, "statement_prefix__S_172contend", do { if (my ($C) = ($C->_EXACT("contend"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:async { } sub statement_prefix__S_173async__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_173async', $retree) } sub statement_prefix__S_173async { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_173async"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "async"; $self->_MATCHIFYr($S, "statement_prefix__S_173async", do { if (my ($C) = ($C->_EXACT("async"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:maybe { } sub statement_prefix__S_174maybe__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_174maybe', $retree) } sub statement_prefix__S_174maybe { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_174maybe"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "maybe"; $self->_MATCHIFYr($S, "statement_prefix__S_174maybe", do { if (my ($C) = ($C->_EXACT("maybe"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:lazy { } sub statement_prefix__S_175lazy__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_175lazy', $retree) } sub statement_prefix__S_175lazy { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_175lazy"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "lazy"; $self->_MATCHIFYr($S, "statement_prefix__S_175lazy", do { if (my ($C) = ($C->_EXACT("lazy"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:do { } sub statement_prefix__S_176do__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_176do', $retree) } sub statement_prefix__S_176do { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_176do"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "do"; $self->_MATCHIFYr($S, "statement_prefix__S_176do", do { if (my ($C) = ($C->_EXACT("do"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token statement_prefix:lift { sub statement_prefix__S_177lift__PEEK { $_[0]->_AUTOLEXpeek('statement_prefix__S_177lift', $retree) } sub statement_prefix__S_177lift { no warnings 'recursion'; my $self = shift; local $::QUASIMODO = 1; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE statement_prefix__S_177lift"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "lift"; $self->_MATCHIFYr($S, "statement_prefix__S_177lift", do { if (my ($C) = ($C->_EXACT("lift"))) { $C->_SUBSUMEr(['blast'], sub { my $C = shift; $C->blast }) } else { () } }); } ; ## token blast { sub blast__PEEK { $_[0]->_AUTOLEXpeek('blast', $retree) } sub blast { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE blast"); my $xact = $C->xact; my $S = $C->{'_pos'}; $self->_MATCHIFYr($S, "blast", do { my $C = $C; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G\s/) }))) { ($C) } else { () } })) and ($C) = ($C->ws) and ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my ($tag, $try); my @try; my $relex; my $fate; my $x; if ($fate = $C->{'_fate'} and $fate->[1] eq 'blast_0') { $C->deb("Fate passed to blast_0: ", ::fatestr($fate)) if $::DEBUG & DEBUG::fates; ($C->{'_fate'}, $tag, $try) = @$fate; @try = ($try); $x = 'ALT blast_0'; # some outer ltm is controlling us } else { $x = 'ALTLTM blast_0'; # we are top level ltm } my $C = $C->cursor_xact($x); my $xact = $C->{_xact}; my @gather = (); for (;;) { unless (@try) { $relex //= $C->cursor_fate('STD::P6', 'blast_0', $retree); @try = $relex->($C) or last; } $try = shift(@try) // next; if (ref $try) { ($C->{'_fate'}, $tag, $try) = @$try; # next candidate fate } $C->deb("blast_0 trying $tag $try") if $::DEBUG & DEBUG::try_processing; push @gather, (( sub { my $C=shift; $C->_SUBSUMEr(['block'], sub { my $C = shift; $C->block }) }, sub { my $C=shift; $C->_SUBSUMEr(['statement'], sub { my $C = shift; $C->statement }) } )[$try])->($C); last if @gather; last if $xact->[-2]; # committed? } @gather; }; }))) { $C } else { () } }); } ; ## token term:new { sub term__S_178new__PEEK { $_[0]->_AUTOLEXpeek('term__S_178new', $retree) } sub term__S_178new { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_178new"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "new"; $self->_MATCHIFYr($S, "term__S_178new", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Gnew[\x20\t\r]++/)) and ($C) = ($C->_SUBSUMEr(['longname'], sub { my $C = shift; $C->longname })) and ($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+/)) and ($C) = ($C->_NOTBEFORE(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_EXACT("\:") }))) { ($C) } else { () } })) and ($C) = ($C->obs("C++ constructor syntax", "method call syntax"))) { $C } else { () } }); } ; ## token term:sym<::?IDENT> { sub term__S_179ColonColonQuestionIDENT__PEEK { $_[0]->_AUTOLEXpeek('term__S_179ColonColonQuestionIDENT', $retree) } sub term__S_179ColonColonQuestionIDENT { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_179ColonColonQuestionIDENT"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "\:\:\?IDENT"; $self->_MATCHIFYr($S, "term__S_179ColonColonQuestionIDENT", do { my $C = $C; if (($C) = ($C->_SUBSUMEr(['sym'], sub { my $C = shift; $C->_BRACKETr(sub { my $C=shift; if (my ($C) = ($C->_EXACT("\:\:\?"))) { $C->_SUBSUMEr(['identifier'], sub { my $C = shift; $C->identifier }) } else { () } }) })) and ($C) = ($C->_PATTERN(qr/\G\b/))) { $C->_SUBSUMEr(['O'], sub { my $C = shift; $C->O(%term) }) } else { () } }); } ; ## token term:sym { sub term__S_180Object__PEEK { $_[0]->_AUTOLEXpeek('term__S_180Object', $retree) } sub term__S_180Object { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_180Object"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "Object"; $self->_MATCHIFYr($S, "term__S_180Object", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\GObject\b/)) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->obs('Object', 'Mu as the "most universal" object type'))) { $C } else { () } }); } ; ## token term:sym { sub term__S_181undef__PEEK { $_[0]->_AUTOLEXpeek('term__S_181undef', $retree) } sub term__S_181undef { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_181undef"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "undef"; $self->_MATCHIFYr($S, "term__S_181undef", do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\Gundef\b/)) and ($C) = (scalar(do { }, $C)) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->_PATTERN(qr/\G[\x20\t\r]*+\$\//) }))) { ($C) } else { () } })) and ($C) = ($C->obs('$/ variable as input record separator', "the filehandle's .slurp method"))) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->_OPTr(sub { my $C=shift; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; if (($C) = ($C->before(sub { my $C=shift; if (my ($C) = ($C->before(sub { my $C=shift; $C->{'sigil'} = []; $C->{'twigil'} = []; if (my ($C) = ($C->_BRACKETr(sub { my $C=shift; do { my $C = $C->cursor_xact('ALT ||'); my $xact = $C->xact; my @gather; do { push @gather, $C->_EXACT("\(") } or $xact->[-2] or do { push @gather, do { my $C = $C; if (($C) = ($C->_PATTERN(qr/\G[\x20\t\r]*+/)) and ($C) = ($C->_SUBSUMEr(['sigil'], sub { my $C = shift; $C->sigil })) and ($C) = ($C->_OPTr(sub { my $C=shift; $C->_SUBSUMEr(['twigil'], sub { my $C = shift; $C->twigil }) }))) { $C->_PATTERN(qr/\G\w/) } else { () } } }; @gather; } }))) { ($C) } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('undef as a verb', 'undefine function or assignment of Nil'))) { $C } else { () } }))) { ($C) } else { () } })) and ($C) = ($C->obs('undef as a value', "something more specific:\n\tMu (the \"most undefined\" type object),\n\tan undefined type object such as Int,\n\tNil as an empty list,\n\t:!defined as a matcher,\n\tAny:U as a type constraint\n\tor fail() as a failure return\n\t "))) { $C } else { () } }); } ; ## token term:sym sub term__S_182proceed__PEEK { $_[0]->_AUTOLEXpeek('term__S_182proceed', $retree) } sub term__S_182proceed { no warnings 'recursion'; my $self = shift; local $::CTX = $self->callm() if $::DEBUG & DEBUG::trace_call; my $C = $self->cursor_xact("RULE term__S_182proceed"); my $xact = $C->xact; my $S = $C->{'_pos'}; $C->{sym} = "proceed"; $self->_MATCHIFYr($S, "term__S_182proceed", do { if (my ($C) = ($C->_PATTERN(qr/\Gproceed\b/))) { $C->_SUBSUMEr(['O'], sub { my $C = shift; $C->O(%term) }) } else { () } }); } ; ## token term:sym