packages feed

Pugs 6.2.13.10 → 6.2.13.11

raw patch · 12 files changed

+15287/−15191 lines, 12 filesdep +FindBin

Dependencies added: FindBin

Files

Configure.PL view
@@ -72,7 +72,7 @@ s/^-I// for @include_dirs;  my @cc_options = map { /^-optc(.+)/ ? $1 : () } (split(/\s+/, $embed_flags), split(/\s+/, $ccdlflags));-my @ld_options = map { /^-optl(.+)/ ? $1 : () } (split(/\s+/, $embed_flags), split(/\s+/, $ccdlflags));+my @ld_options = grep { not /,/ } map { /^-optl(.+)/ ? $1 : () } (split(/\s+/, $embed_flags), split(/\s+/, $ccdlflags));  open INFO, ">Pugs.buildinfo" or die "Cannot write build info: $!"; print INFO << ".";
Pugs.cabal view
@@ -1,5 +1,5 @@ Name            : Pugs-Version         : 6.2.13.10+Version         : 6.2.13.11 license         : BSD3 license-file    : LICENSE cabal-version   : >= 1.2@@ -162,7 +162,7 @@     build-depends:         base, haskell98, filepath, mtl, stm, parsec < 3.0.0, network,         pretty, time, random, process, containers, bytestring,-        array, directory, utf8-string, binary, haskeline >= 0.2.1,+        array, directory, utf8-string, binary, haskeline >= 0.2.1, FindBin,          MetaObject       >= 0.0.4,         HsParrot         >= 0.0.2,
blib6/pugs/perl5/lib/Pugs/Compiler/Rule.pm view
@@ -4,7 +4,7 @@  package Pugs::Compiler::Rule; -our $VERSION = '0.28';+our $VERSION = '0.35';  use base 'Pugs::Compiler::Regex'; 
blib6/pugs/perl5/lib/Pugs/Emitter/Rule/Perl5.pm view
@@ -295,6 +295,7 @@ } sub special_char {     my ($char, $data) = $_[0] =~ /^.(.)(.*)/;+    $_[1] = '' unless defined $_[1];      return  "$_[1] perl5( '\\N{" . join( "}\\N{", split( /\s*;\s*/, $data ) ) . "}' )\n"         if $char eq 'c';
blib6/pugs/perl5/lib/Pugs/Emitter/Rule/Perl5/CharClass.pm view
@@ -1,9 +1,11 @@ package Pugs::Emitter::Rule::Perl5::CharClass;  use strict;+use charnames (); use Data::Dumper;+use utf8; -use vars qw( %char_class );+use vars qw( %char_class %extra_unicode ); BEGIN {     %char_class = map { $_ => 1 } qw(         alpha alnum ascii blank@@ -11,8 +13,57 @@         print punct space upper         word  xdigit     );+    %extra_unicode = (+        'Lr'       => '(?:\p{isLl}|\p{isLu}|\p{isLt})',+        'InLatin1Supplement'      => '[\x{0080}–\x{00FF}]',+        'InCyrillicSupplementary' => '[\x{0500}–\x{052F}]',++        # http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Grapheme_Link=True:]+        'GraphemeLink'  => '[\x{94d}\x{9cd}\x{a4d}\x{acd}\x{b4d}\x{bcd}\x{c4d}\x{ccd}\x{d4d}\x{dca}\x{e3a}\x{f84}\x{1039}\x{103a}\x{1714}\x{1734}\x{17d2}\x{1b44}\x{1baa}\x{a806}\x{a8c4}\x{a953}\x{10a3f}]',+        +        # $ perl -e 'use Set::IntSpan; BEGIN{ binmode(STDOUT, ":utf8") }END{ $set= new Set::IntSpan @nums; $set="$set"; $set =~ s/(\d+)/ sprintf("\\x{%0X}",$1) /ge; print $set,"\n"} for (0..0x10000) { push @nums,$_ if chr($_) =~ /\p{Cn}/ } '+        'Cn' => '[\x{242}-\x{24F},\x{370}-\x{373},\x{376}-\x{379},\x{37B}-\x{37D},\x{37F}-\x{383},\x{38B},\x{38D},\x{3A2},\x{3CF},\x{487},\x{4CF},\x{4FA}-\x{4FF},\x{510}-\x{530},\x{557}-\x{558},\x{560},\x{588},\x{58B}-\x{590},\x{5BA},\x{5C8}-\x{5CF},\x{5EB}-\x{5EF},\x{5F5}-\x{5FF},\x{604}-\x{60A},\x{616}-\x{61A},\x{61C}-\x{61D},\x{620},\x{63B}-\x{63F},\x{65F},\x{70E},\x{74B}-\x{74C},\x{76E}-\x{77F},\x{7B2}-\x{900},\x{93A}-\x{93B},\x{94E}-\x{94F},\x{955}-\x{957},\x{971}-\x{97C},\x{97E}-\x{980},\x{984},\x{98D}-\x{98E},\x{991}-\x{992},\x{9A9},\x{9B1},\x{9B3}-\x{9B5},\x{9BA}-\x{9BB},\x{9C5}-\x{9C6},\x{9C9}-\x{9CA},\x{9CF}-\x{9D6},\x{9D8}-\x{9DB},\x{9DE},\x{9E4}-\x{9E5},\x{9FB}-\x{A00},\x{A04},\x{A0B}-\x{A0E},\x{A11}-\x{A12},\x{A29},\x{A31},\x{A34},\x{A37},\x{A3A}-\x{A3B},\x{A3D},\x{A43}-\x{A46},\x{A49}-\x{A4A},\x{A4E}-\x{A58},\x{A5D},\x{A5F}-\x{A65},\x{A75}-\x{A80},\x{A84},\x{A8E},\x{A92},\x{AA9},\x{AB1},\x{AB4},\x{ABA}-\x{ABB},\x{AC6},\x{ACA},\x{ACE}-\x{ACF},\x{AD1}-\x{ADF},\x{AE4}-\x{AE5},\x{AF0},\x{AF2}-\x{B00},\x{B04},\x{B0D}-\x{B0E},\x{B11}-\x{B12},\x{B29},\x{B31},\x{B34},\x{B3A}-\x{B3B},\x{B44}-\x{B46},\x{B49}-\x{B4A},\x{B4E}-\x{B55},\x{B58}-\x{B5B},\x{B5E},\x{B62}-\x{B65},\x{B72}-\x{B81},\x{B84},\x{B8B}-\x{B8D},\x{B91},\x{B96}-\x{B98},\x{B9B},\x{B9D},\x{BA0}-\x{BA2},\x{BA5}-\x{BA7},\x{BAB}-\x{BAD},\x{BBA}-\x{BBD},\x{BC3}-\x{BC5},\x{BC9},\x{BCE}-\x{BD6},\x{BD8}-\x{BE5},\x{BFB}-\x{C00},\x{C04},\x{C0D},\x{C11},\x{C29},\x{C34},\x{C3A}-\x{C3D},\x{C45},\x{C49},\x{C4E}-\x{C54},\x{C57}-\x{C5F},\x{C62}-\x{C65},\x{C70}-\x{C81},\x{C84},\x{C8D},\x{C91},\x{CA9},\x{CB4},\x{CBA}-\x{CBB},\x{CC5},\x{CC9},\x{CCE}-\x{CD4},\x{CD7}-\x{CDD},\x{CDF},\x{CE2}-\x{CE5},\x{CF0}-\x{D01},\x{D04},\x{D0D},\x{D11},\x{D29},\x{D3A}-\x{D3D},\x{D44}-\x{D45},\x{D49},\x{D4E}-\x{D56},\x{D58}-\x{D5F},\x{D62}-\x{D65},\x{D70}-\x{D81},\x{D84},\x{D97}-\x{D99},\x{DB2},\x{DBC},\x{DBE}-\x{DBF},\x{DC7}-\x{DC9},\x{DCB}-\x{DCE},\x{DD5},\x{DD7},\x{DE0}-\x{DF1},\x{DF5}-\x{E00},\x{E3B}-\x{E3E},\x{E5C}-\x{E80},\x{E83},\x{E85}-\x{E86},\x{E89},\x{E8B}-\x{E8C},\x{E8E}-\x{E93},\x{E98},\x{EA0},\x{EA4},\x{EA6},\x{EA8}-\x{EA9},\x{EAC},\x{EBA},\x{EBE}-\x{EBF},\x{EC5},\x{EC7},\x{ECE}-\x{ECF},\x{EDA}-\x{EDB},\x{EDE}-\x{EFF},\x{F48},\x{F6B}-\x{F70},\x{F8C}-\x{F8F},\x{F98},\x{FBD},\x{FCD}-\x{FCE},\x{FD2}-\x{FFF},\x{1022},\x{1028},\x{102B},\x{1033}-\x{1035},\x{103A}-\x{103F},\x{105A}-\x{109F},\x{10C6}-\x{10CF},\x{10FD}-\x{10FF},\x{115A}-\x{115E},\x{11A3}-\x{11A7},\x{11FA}-\x{11FF},\x{1249},\x{124E}-\x{124F},\x{1257},\x{1259},\x{125E}-\x{125F},\x{1289},\x{128E}-\x{128F},\x{12B1},\x{12B6}-\x{12B7},\x{12BF},\x{12C1},\x{12C6}-\x{12C7},\x{12D7},\x{1311},\x{1316}-\x{1317},\x{135B}-\x{135E},\x{137D}-\x{137F},\x{139A}-\x{139F},\x{13F5}-\x{1400},\x{1677}-\x{167F},\x{169D}-\x{169F},\x{16F1}-\x{16FF},\x{170D},\x{1715}-\x{171F},\x{1737}-\x{173F},\x{1754}-\x{175F},\x{176D},\x{1771},\x{1774}-\x{177F},\x{17DE}-\x{17DF},\x{17EA}-\x{17EF},\x{17FA}-\x{17FF},\x{180F},\x{181A}-\x{181F},\x{1878}-\x{187F},\x{18AA}-\x{18FF},\x{191D}-\x{191F},\x{192C}-\x{192F},\x{193C}-\x{193F},\x{1941}-\x{1943},\x{196E}-\x{196F},\x{1975}-\x{197F},\x{19AA}-\x{19AF},\x{19CA}-\x{19CF},\x{19DA}-\x{19DD},\x{1A1C}-\x{1A1D},\x{1A20}-\x{1CFF},\x{1DC4}-\x{1DFF},\x{1E9C}-\x{1E9F},\x{1EFA}-\x{1EFF},\x{1F16}-\x{1F17},\x{1F1E}-\x{1F1F},\x{1F46}-\x{1F47},\x{1F4E}-\x{1F4F},\x{1F58},\x{1F5A},\x{1F5C},\x{1F5E},\x{1F7E}-\x{1F7F},\x{1FB5},\x{1FC5},\x{1FD4}-\x{1FD5},\x{1FDC},\x{1FF0}-\x{1FF1},\x{1FF5},\x{1FFF},\x{2064}-\x{2069},\x{2072}-\x{2073},\x{208F},\x{2095}-\x{209F},\x{20B6}-\x{20CF},\x{20EC}-\x{20FF},\x{214D}-\x{2152},\x{2184}-\x{218F},\x{23DC}-\x{23FF},\x{2427}-\x{243F},\x{244B}-\x{245F},\x{269D}-\x{269F},\x{26B2}-\x{2700},\x{2705},\x{270A}-\x{270B},\x{2728},\x{274C},\x{274E},\x{2753}-\x{2755},\x{2757},\x{275F}-\x{2760},\x{2795}-\x{2797},\x{27B0},\x{27BF},\x{27C7}-\x{27CF},\x{27EC}-\x{27EF},\x{2B14}-\x{2BFF},\x{2C2F},\x{2C5F}-\x{2C7F},\x{2CEB}-\x{2CF8},\x{2D26}-\x{2D2F},\x{2D66}-\x{2D6E},\x{2D70}-\x{2D7F},\x{2D97}-\x{2D9F},\x{2DA7},\x{2DAF},\x{2DB7},\x{2DBF},\x{2DC7},\x{2DCF},\x{2DD7},\x{2DDF}-\x{2DFF},\x{2E18}-\x{2E1B},\x{2E1E}-\x{2E7F},\x{2E9A},\x{2EF4}-\x{2EFF},\x{2FD6}-\x{2FEF},\x{2FFC}-\x{2FFF},\x{3040},\x{3097}-\x{3098},\x{3100}-\x{3104},\x{312D}-\x{3130},\x{318F},\x{31B8}-\x{31BF},\x{31D0}-\x{31EF},\x{321F},\x{3244}-\x{324F},\x{32FF},\x{4DB6}-\x{4DBF},\x{9FBC}-\x{9FFF},\x{A48D}-\x{A48F},\x{A4C7}-\x{A6FF},\x{A717}-\x{A7FF},\x{A82C}-\x{ABFF},\x{D7A4}-\x{D7FF},\x{FA2E}-\x{FA2F},\x{FA6B}-\x{FA6F},\x{FADA}-\x{FAFF},\x{FB07}-\x{FB12},\x{FB18}-\x{FB1C},\x{FB37},\x{FB3D},\x{FB3F},\x{FB42},\x{FB45},\x{FBB2}-\x{FBD2},\x{FD40}-\x{FD4F},\x{FD90}-\x{FD91},\x{FDC8}-\x{FDEF},\x{FDFE}-\x{FDFF},\x{FE1A}-\x{FE1F},\x{FE24}-\x{FE2F},\x{FE53},\x{FE67},\x{FE6C}-\x{FE6F},\x{FE75},\x{FEFD}-\x{FEFE},\x{FF00},\x{FFBF}-\x{FFC1},\x{FFC8}-\x{FFC9},\x{FFD0}-\x{FFD1},\x{FFD8}-\x{FFD9},\x{FFDD}-\x{FFDF},\x{FFE7},\x{FFEF}-\x{FFF8},\x{FFFE}-\x{FFFF}]',+        +    # $ perl -MSet::IntSpan -ne ' @x=split/;/; $v=hex($x[0]); push @nums, $v if $x[4] eq "EN"; END{ $set= new Set::IntSpan @nums; $set="$set"; $set =~ s/(\d+)/ sprintf("\\x{%0X}",$1) /ge; print $set,"\n"}'  +    #     /opt/local/lib/perl5/5.8.8/unicore/UnicodeData.txt ++        'BidiEN'   => '[\x{30}-\x{39},\x{B2}-\x{B3},\x{B9},\x{6F0}-\x{6F9},\x{2070},\x{2074}-\x{2079},\x{2080}-\x{2089},\x{2488}-\x{249B},\x{FF10}-\x{FF19},\x{1D7CE}-\x{1D7FF}]',++        'BidiWS'   => '[\x{0C},\x{20},\x{1680},\x{180E},\x{2000}-\x{200A},\x{2028},\x{205F},\x{3000}]',++        'BidiET'   => '[\x{23}-\x{25},\x{A2}-\x{A5},\x{B0}-\x{B1},\x{66A},\x{9F2}-\x{9F3},\x{AF1},\x{BF9},\x{E3F},\x{17DB},\x{2030}-\x{2034},\x{20A0}-\x{20B5},\x{212E},\x{2213},\x{FE5F},\x{FE69}-\x{FE6A},\x{FF03}-\x{FF05},\x{FFE0}-\x{FFE1},\x{FFE5}-\x{FFE6}]',++        'BidiES'   => '\x{2F}',    # SOLIDUS ???++        'BidiR'    => '[\x{5BE},\x{5C0},\x{5C3},\x{5C6},\x{5D0}-\x{5EA},\x{5F0}-\x{5F4},\x{200F},\x{FB1D},\x{FB1F}-\x{FB28},\x{FB2A}-\x{FB36},\x{FB38}-\x{FB3C},\x{FB3E},\x{FB40}-\x{FB41},\x{FB43}-\x{FB44},\x{FB46}-\x{FB4F},\x{10800}-\x{10805},\x{10808},\x{1080A}-\x{10835},\x{10837}-\x{10838},\x{1083C},\x{1083F},\x{10A00},\x{10A10}-\x{10A13},\x{10A15}-\x{10A17},\x{10A19}-\x{10A33},\x{10A40}-\x{10A47},\x{10A50}-\x{10A58}]',++        'BidiL'    => '[\x{41}-\x{5A},\x{61}-\x{7A},\x{AA},\x{B5},\x{BA},\x{C0}-\x{D6},\x{D8}-\x{F6},\x{F8}-\x{241},\x{250}-\x{2B8},\x{2BB}-\x{2C1},\x{2D0}-\x{2D1},\x{2E0}-\x{2E4},\x{2EE},\x{37A},\x{386},\x{388}-\x{38A},\x{38C},\x{38E}-\x{3A1},\x{3A3}-\x{3CE},\x{3D0}-\x{3F5},\x{3F7}-\x{482},\x{48A}-\x{4CE},\x{4D0}-\x{4F9},\x{500}-\x{50F},\x{531}-\x{556},\x{559}-\x{55F},\x{561}-\x{587},\x{589},\x{903}-\x{939},\x{93D}-\x{940},\x{949}-\x{94C},\x{950},\x{958}-\x{961},\x{964}-\x{970},\x{97D},\x{982}-\x{983},\x{985}-\x{98C},\x{98F}-\x{990},\x{993}-\x{9A8},\x{9AA}-\x{9B0},\x{9B2},\x{9B6}-\x{9B9},\x{9BD}-\x{9C0},\x{9C7}-\x{9C8},\x{9CB}-\x{9CC},\x{9CE},\x{9D7},\x{9DC}-\x{9DD},\x{9DF}-\x{9E1},\x{9E6}-\x{9F1},\x{9F4}-\x{9FA},\x{A03},\x{A05}-\x{A0A},\x{A0F}-\x{A10},\x{A13}-\x{A28},\x{A2A}-\x{A30},\x{A32}-\x{A33},\x{A35}-\x{A36},\x{A38}-\x{A39},\x{A3E}-\x{A40},\x{A59}-\x{A5C},\x{A5E},\x{A66}-\x{A6F},\x{A72}-\x{A74},\x{A83},\x{A85}-\x{A8D},\x{A8F}-\x{A91},\x{A93}-\x{AA8},\x{AAA}-\x{AB0},\x{AB2}-\x{AB3},\x{AB5}-\x{AB9},\x{ABD}-\x{AC0},\x{AC9},\x{ACB}-\x{ACC},\x{AD0},\x{AE0}-\x{AE1},\x{AE6}-\x{AEF},\x{B02}-\x{B03},\x{B05}-\x{B0C},\x{B0F}-\x{B10},\x{B13}-\x{B28},\x{B2A}-\x{B30},\x{B32}-\x{B33},\x{B35}-\x{B39},\x{B3D}-\x{B3E},\x{B40},\x{B47}-\x{B48},\x{B4B}-\x{B4C},\x{B57},\x{B5C}-\x{B5D},\x{B5F}-\x{B61},\x{B66}-\x{B71},\x{B83},\x{B85}-\x{B8A},\x{B8E}-\x{B90},\x{B92}-\x{B95},\x{B99}-\x{B9A},\x{B9C},\x{B9E}-\x{B9F},\x{BA3}-\x{BA4},\x{BA8}-\x{BAA},\x{BAE}-\x{BB9},\x{BBE}-\x{BBF},\x{BC1}-\x{BC2},\x{BC6}-\x{BC8},\x{BCA}-\x{BCC},\x{BD7},\x{BE6}-\x{BF2},\x{C01}-\x{C03},\x{C05}-\x{C0C},\x{C0E}-\x{C10},\x{C12}-\x{C28},\x{C2A}-\x{C33},\x{C35}-\x{C39},\x{C41}-\x{C44},\x{C60}-\x{C61},\x{C66}-\x{C6F},\x{C82}-\x{C83},\x{C85}-\x{C8C},\x{C8E}-\x{C90},\x{C92}-\x{CA8},\x{CAA}-\x{CB3},\x{CB5}-\x{CB9},\x{CBD}-\x{CC4},\x{CC6}-\x{CC8},\x{CCA}-\x{CCB},\x{CD5}-\x{CD6},\x{CDE},\x{CE0}-\x{CE1},\x{CE6}-\x{CEF},\x{D02}-\x{D03},\x{D05}-\x{D0C},\x{D0E}-\x{D10},\x{D12}-\x{D28},\x{D2A}-\x{D39},\x{D3E}-\x{D40},\x{D46}-\x{D48},\x{D4A}-\x{D4C},\x{D57},\x{D60}-\x{D61},\x{D66}-\x{D6F},\x{D82}-\x{D83},\x{D85}-\x{D96},\x{D9A}-\x{DB1},\x{DB3}-\x{DBB},\x{DBD},\x{DC0}-\x{DC6},\x{DCF}-\x{DD1},\x{DD8}-\x{DDF},\x{DF2}-\x{DF4},\x{E01}-\x{E30},\x{E32}-\x{E33},\x{E40}-\x{E46},\x{E4F}-\x{E5B},\x{E81}-\x{E82},\x{E84},\x{E87}-\x{E88},\x{E8A},\x{E8D},\x{E94}-\x{E97},\x{E99}-\x{E9F},\x{EA1}-\x{EA3},\x{EA5},\x{EA7},\x{EAA}-\x{EAB},\x{EAD}-\x{EB0},\x{EB2}-\x{EB3},\x{EBD},\x{EC0}-\x{EC4},\x{EC6},\x{ED0}-\x{ED9},\x{EDC}-\x{EDD},\x{F00}-\x{F17},\x{F1A}-\x{F34},\x{F36},\x{F38},\x{F3E}-\x{F47},\x{F49}-\x{F6A},\x{F7F},\x{F85},\x{F88}-\x{F8B},\x{FBE}-\x{FC5},\x{FC7}-\x{FCC},\x{FCF}-\x{FD1},\x{1000}-\x{1021},\x{1023}-\x{1027},\x{1029}-\x{102A},\x{102C},\x{1031},\x{1038},\x{1040}-\x{1057},\x{10A0}-\x{10C5},\x{10D0}-\x{10FC},\x{1100}-\x{1159},\x{115F}-\x{11A2},\x{11A8}-\x{11F9},\x{1200}-\x{1248},\x{124A}-\x{124D},\x{1250}-\x{1256},\x{1258},\x{125A}-\x{125D},\x{1260}-\x{1288},\x{128A}-\x{128D},\x{1290}-\x{12B0},\x{12B2}-\x{12B5},\x{12B8}-\x{12BE},\x{12C0},\x{12C2}-\x{12C5},\x{12C8}-\x{12D6},\x{12D8}-\x{1310},\x{1312}-\x{1315},\x{1318}-\x{135A},\x{1360}-\x{137C},\x{1380}-\x{138F},\x{13A0}-\x{13F4},\x{1401}-\x{1676},\x{1681}-\x{169A},\x{16A0}-\x{16F0},\x{1700}-\x{170C},\x{170E}-\x{1711},\x{1720}-\x{1731},\x{1735}-\x{1736},\x{1740}-\x{1751},\x{1760}-\x{176C},\x{176E}-\x{1770},\x{1780}-\x{17B6},\x{17BE}-\x{17C5},\x{17C7}-\x{17C8},\x{17D4}-\x{17DA},\x{17DC},\x{17E0}-\x{17E9},\x{1810}-\x{1819},\x{1820}-\x{1877},\x{1880}-\x{18A8},\x{1900}-\x{191C},\x{1923}-\x{1926},\x{1930}-\x{1931},\x{1933}-\x{1938},\x{1946}-\x{196D},\x{1970}-\x{1974},\x{1980}-\x{19A9},\x{19B0}-\x{19C9},\x{19D0}-\x{19D9},\x{1A00}-\x{1A16},\x{1A19}-\x{1A1B},\x{1A1E}-\x{1A1F},\x{1D00}-\x{1DBF},\x{1E00}-\x{1E9B},\x{1EA0}-\x{1EF9},\x{1F00}-\x{1F15},\x{1F18}-\x{1F1D},\x{1F20}-\x{1F45},\x{1F48}-\x{1F4D},\x{1F50}-\x{1F57},\x{1F59},\x{1F5B},\x{1F5D},\x{1F5F}-\x{1F7D},\x{1F80}-\x{1FB4},\x{1FB6}-\x{1FBC},\x{1FBE},\x{1FC2}-\x{1FC4},\x{1FC6}-\x{1FCC},\x{1FD0}-\x{1FD3},\x{1FD6}-\x{1FDB},\x{1FE0}-\x{1FEC},\x{1FF2}-\x{1FF4},\x{1FF6}-\x{1FFC},\x{200E},\x{2071},\x{207F},\x{2090}-\x{2094},\x{2102},\x{2107},\x{210A}-\x{2113},\x{2115},\x{2119}-\x{211D},\x{2124},\x{2126},\x{2128},\x{212A}-\x{212D},\x{212F}-\x{2131},\x{2133}-\x{2139},\x{213C}-\x{213F},\x{2145}-\x{2149},\x{2160}-\x{2183},\x{2336}-\x{237A},\x{2395},\x{249C}-\x{24E9},\x{26AC},\x{2800}-\x{28FF},\x{2C00}-\x{2C2E},\x{2C30}-\x{2C5E},\x{2C80}-\x{2CE4},\x{2D00}-\x{2D25},\x{2D30}-\x{2D65},\x{2D6F},\x{2D80}-\x{2D96},\x{2DA0}-\x{2DA6},\x{2DA8}-\x{2DAE},\x{2DB0}-\x{2DB6},\x{2DB8}-\x{2DBE},\x{2DC0}-\x{2DC6},\x{2DC8}-\x{2DCE},\x{2DD0}-\x{2DD6},\x{2DD8}-\x{2DDE},\x{3005}-\x{3007},\x{3021}-\x{3029},\x{3031}-\x{3035},\x{3038}-\x{303C},\x{3041}-\x{3096},\x{309D}-\x{309F},\x{30A1}-\x{30FA},\x{30FC}-\x{30FF},\x{3105}-\x{312C},\x{3131}-\x{318E},\x{3190}-\x{31B7},\x{31F0}-\x{321C},\x{3220}-\x{3243},\x{3260}-\x{327B},\x{327F}-\x{32B0},\x{32C0}-\x{32CB},\x{32D0}-\x{32FE},\x{3300}-\x{3376},\x{337B}-\x{33DD},\x{33E0}-\x{33FE},\x{3400},\x{4DB5},\x{4E00},\x{9FBB},\x{A000}-\x{A48C},\x{A800}-\x{A801},\x{A803}-\x{A805},\x{A807}-\x{A80A},\x{A80C}-\x{A824},\x{A827},\x{AC00},\x{D7A3},\x{D800},\x{DB7F}-\x{DB80},\x{DBFF}-\x{DC00},\x{DFFF}-\x{E000},\x{F8FF}-\x{FA2D},\x{FA30}-\x{FA6A},\x{FA70}-\x{FAD9},\x{FB00}-\x{FB06},\x{FB13}-\x{FB17},\x{FF21}-\x{FF3A},\x{FF41}-\x{FF5A},\x{FF66}-\x{FFBE},\x{FFC2}-\x{FFC7},\x{FFCA}-\x{FFCF},\x{FFD2}-\x{FFD7},\x{FFDA}-\x{FFDC},\x{10000}-\x{1000B},\x{1000D}-\x{10026},\x{10028}-\x{1003A},\x{1003C}-\x{1003D},\x{1003F}-\x{1004D},\x{10050}-\x{1005D},\x{10080}-\x{100FA},\x{10100},\x{10102},\x{10107}-\x{10133},\x{10137}-\x{1013F},\x{10300}-\x{1031E},\x{10320}-\x{10323},\x{10330}-\x{1034A},\x{10380}-\x{1039D},\x{1039F}-\x{103C3},\x{103C8}-\x{103D0},\x{10400}-\x{1049D},\x{104A0}-\x{104A9},\x{1D000}-\x{1D0F5},\x{1D100}-\x{1D126},\x{1D12A}-\x{1D166},\x{1D16A}-\x{1D172},\x{1D183}-\x{1D184},\x{1D18C}-\x{1D1A9},\x{1D1AE}-\x{1D1DD},\x{1D400}-\x{1D454},\x{1D456}-\x{1D49C},\x{1D49E}-\x{1D49F},\x{1D4A2},\x{1D4A5}-\x{1D4A6},\x{1D4A9}-\x{1D4AC},\x{1D4AE}-\x{1D4B9},\x{1D4BB},\x{1D4BD}-\x{1D4C3},\x{1D4C5}-\x{1D505},\x{1D507}-\x{1D50A},\x{1D50D}-\x{1D514},\x{1D516}-\x{1D51C},\x{1D51E}-\x{1D539},\x{1D53B}-\x{1D53E},\x{1D540}-\x{1D544},\x{1D546},\x{1D54A}-\x{1D550},\x{1D552}-\x{1D6A5},\x{1D6A8}-\x{1D7C9},\x{20000},\x{2A6D6},\x{2F800}-\x{2FA1D},\x{F0000},\x{FFFFD},\x{100000},\x{10FFFD}]',+    );+    $extra_unicode{ 'is' . $_ } = $extra_unicode{$_}+        for keys %extra_unicode; } +sub vianame {+    my $c = shift;+    $c =~ s/^\s+//;+    $c =~ s/\s+$//;+    my $s = charnames::vianame($c);+    return $s if defined $s;+    $s = charnames::vianame("LINE FEED (LF)") +        if $c eq "LINE FEED" || $c eq "LF";+    return $s if $s;+    $s = charnames::vianame("CARRIAGE RETURN (CR)") +        if $c eq "CARRIAGE RETURN" || $c eq "CR";+    return $s if $s;+    $s = charnames::vianame("FORM FEED (FF)")  +        if $c eq "FORM FEED" || $c eq "FF";+    return $s if $s;+    $s = charnames::vianame("NEXT LINE (NEL)") +        if $c eq "NEXT LINE" || $c eq "NEL";+    return $s if $s;+    die "unknown unicode name: $c";+}+ # input format: # [ #    '+alpha'@@ -32,31 +83,19 @@     for ( @c ) {         my ( $op, $cmd ) = /(.)(.*)/; +        $cmd =~ s/ \\c\[ ([^];]+) \; ([^];]+) \] / +                "\\x{" . sprintf("%02X", vianame($1)) . "}"+              . "\\x{" . sprintf("%02X", vianame($2)) . "}"+            /xgme;+        $cmd =~ s/ \\c\[ ([^]]+) \] / "\\x[" . sprintf("%02X", vianame($1)) . ']' /xgme;+        $cmd =~ s/ \\C\[ ([^]]+) \] / "\\X[" . sprintf("%02X", vianame($1)) . ']' /xgme;+        $cmd =~ s/ \\o\[ ([^]]+) \] / "\\x[" . sprintf("%02X", oct($1)) . ']' /xgme;+        $cmd =~ s/ \\O\[ ([^]]+) \] / "\\X[" . sprintf("%02X", oct($1)) . ']' /xgme;         $cmd =~ s/\s//g;--        #if ( $last_cmd eq '-'-        #    && substr($cmd,0,1) eq '+'-        #    )-        #{-        #    $out .= '|';-        #}-        #$last_cmd = substr($cmd,0,1);-+                 $cmd =~ s/\.\./-/g;  # ranges -        # TODO - \o \O--        if    ( $cmd =~ /^ \[ \\ c \[ (.*) \] \] /x ) {-            #$cmd = "(?:\\N{" . join( "}|\\N{", split( /\s*;\s*/, $1 ) ) . "})";-            $cmd = "[\\N{" . join( "}\\N{", split( /\s*;\s*/, $1 ) ) . "}]";-        }-        elsif ( $cmd =~ /^ \[ \\ C \[ (.*) \] \] /x ) {-            #$cmd = "(?!\\N{" . join( "}|\\N{", split( /\s*;\s*/, $1 ) ) . "})\\X";-            $cmd = "[^\\N{" . join( "}\\N{", split( /\s*;\s*/, $1 ) ) . "}]";-        }---        elsif ( $cmd =~ /^ \[ \\ x \[ (.*) \] \] /x ) {+        if ( $cmd =~ /^ \[ \\ x \[ (.*) \] \] /x ) {             $cmd = "(?:\\x{$1})";         }         elsif ( $cmd =~ /^ \[ \\ X \[ (.*) \] \] /x ) {@@ -64,15 +103,16 @@             #$cmd = "[^\\x{$1}]";         } -         elsif ( $cmd =~ /^ \s* \[ (.*) /x ) {            $cmd = '[' . $1; 	    }         elsif ( $cmd =~ /^ \s* (.*) /x ) {            my $name = $1;            $cmd = ( exists $char_class{$name} )-                ? "[[:$name:]]"-                : "\\p{$name}";+                    ? "[[:$name:]]"+                    : exists $extra_unicode{$name}+                        ? $extra_unicode{$name} +                        : "\\p{$name}";         }          if ( $op eq '+' ) {@@ -91,7 +131,7 @@     }     $out = "(?:$out)\\X"; -    #print Dumper( @c ), ' == ', $out, "\n";+    #print Dumper( \@c ), ' == ', $out, "\n";      return $out; }
blib6/pugs/perl5/lib/Pugs/Grammar/Base.pm view
@@ -168,14 +168,19 @@                  # is it a Unicode property? "isL"         {-          local $@;-          eval ' my $s="a"; $s =~ /\p{' . $meth . '}/ ';-          unless ( $@ ) {-            *{$meth} = Pugs::Compiler::RegexPerl5->compile( -              '\p{' . $meth . '}'-            )->code;-            return $meth->( @_ );-          }+            local $@;+            my $p5;+            if ( exists $Pugs::Emitter::Rule::Perl5::CharClass::extra_unicode{$meth} ) {+                $p5 = $Pugs::Emitter::Rule::Perl5::CharClass::extra_unicode{$meth};+            }+            else {+                $p5 = '\p{' . $meth . '}';+                eval ' my $s="a"; $s =~ /' . $p5 . '/ ';+            }+            unless ( $@ ) {+                *{$meth} = Pugs::Compiler::RegexPerl5->compile($p5)->code;+                return $meth->( @_ );+            }         }                  # is it a char class? "digit"
blib6/pugs/perl5/lib/Pugs/Grammar/Rule.pmc view
@@ -1,15143 +1,15186 @@ # !!! DO NOT EDIT !!! # This file was generated by Pugs::Compiler::Rule's compile_p6grammar.pl-# script from examples/Grammar.grammar at Tue Oct 30 11:29:45 2007--use strict;-use warnings;--package Pugs::Grammar::Rule;--#use base 'Pugs::Grammar::Base';--use Pugs::Runtime::Match;-use Pugs::Runtime::Regex;-use Pugs::Runtime::Tracer ();--# Code block from grammar spec---use utf8;-no strict 'refs';-no warnings 'redefine';-no warnings 'once';--#use Pugs::Runtime::Match;--our %rule_terms;-our %variables;----# token pod_begin-*pod_begin =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 632 675-           (-               ( $pad{I1170} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 633 652-               (-      -                 ## <group>-                 ## pos: 633 639-                  (   ( $pad{I1171} = $pos or 1 ) &&-                   ## <perl5>-                   ( ( substr( $s, $pos ) =~ m/^((?:\n\r?|\r\n?))/ )-                       ? ( $pos += length( $1 ) or 1 )-                       : 0-                   )-                   ## </perl5>-     ||    ( ( $pos = $pad{I1171} ) && 0 ) )-                 ## </group>-    -               &&-    -                 ## <constant>-                 ## pos: 639 640-                 ( ( substr( $s, $pos, 1 ) eq '=' )-                     ? ( $pos += 1 or 1 )-                     : 0-                 )-                 ## </constant>-    -               &&-    -                 ## <constant>-                 ## pos: 640 641-                 ( ( substr( $s, $pos, 1 ) eq 'e' )-                     ? ( $pos += 1 or 1 )-                     : 0-                 )-                 ## </constant>-    -               &&-    -                 ## <constant>-                 ## pos: 641 642-                 ( ( substr( $s, $pos, 1 ) eq 'n' )-                     ? ( $pos += 1 or 1 )-                     : 0-                 )-                 ## </constant>-    -               &&-      -                 ## <group>-                 ## pos: 642 644-                  (   ( $pad{I1172} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 642 643-                   ( ( substr( $s, $pos, 1 ) eq 'd' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1172} ) && 0 ) )-                 ## </group>-    -               &&-                 ## <quant>-                 ## pos: 644 652-                 do { while (-                  (   ( $pad{I1173} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1173} ) && 0 ) )) {}; $bool = 1 }-                 ## </quant>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1170} ) or 1 )-               &&            ## <concat>-               ## pos: 653 675-               (-      -                 ## <group>-                 ## pos: 653 658-                  (   ( $pad{I1174} = $pos or 1 ) &&-    -                   ## <dot>-                   ## pos: 656 657-                   ( substr( $s, $pos++, 1 ) ne '' )-                   ## </dot>-     ||    ( ( $pos = $pad{I1174} ) && 0 ) )-                 ## </group>-    -               &&-                 ## <quant>-                 ## pos: 658 662-                 do { while (-                  (   ( $pad{I1175} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1175} ) && 0 ) )) {}; $bool = 1 }-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 662 675-                  (   ( $pad{I1176} = $pos or 1 ) &&-                   ## <metasyntax>-                   ## pos: 662 674-                   do {-                        my $prior = $::_V6_PRIOR_;-                        my $match =-                               $grammar->pod_begin( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                        $::_V6_PRIOR_ = $prior;-                        my $bool = (!$match != 1);-                        $pos = $match->to if $bool;-                        $match;-                   }-                   ## </metasyntax>-     ||    ( ( $pos = $pad{I1176} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token pod_other-*pod_other =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 700 743-           (-               ( $pad{I1177} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 701 720-               (-      -                 ## <group>-                 ## pos: 701 707-                  (   ( $pad{I1178} = $pos or 1 ) &&-                   ## <perl5>-                   ( ( substr( $s, $pos ) =~ m/^((?:\n\r?|\r\n?))/ )-                       ? ( $pos += length( $1 ) or 1 )-                       : 0-                   )-                   ## </perl5>-     ||    ( ( $pos = $pad{I1178} ) && 0 ) )-                 ## </group>-    -               &&-    -                 ## <constant>-                 ## pos: 707 708-                 ( ( substr( $s, $pos, 1 ) eq '=' )-                     ? ( $pos += 1 or 1 )-                     : 0-                 )-                 ## </constant>-    -               &&-    -                 ## <constant>-                 ## pos: 708 709-                 ( ( substr( $s, $pos, 1 ) eq 'c' )-                     ? ( $pos += 1 or 1 )-                     : 0-                 )-                 ## </constant>-    -               &&-    -                 ## <constant>-                 ## pos: 709 710-                 ( ( substr( $s, $pos, 1 ) eq 'u' )-                     ? ( $pos += 1 or 1 )-                     : 0-                 )-                 ## </constant>-    -               &&-      -                 ## <group>-                 ## pos: 710 712-                  (   ( $pad{I1179} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 710 711-                   ( ( substr( $s, $pos, 1 ) eq 't' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1179} ) && 0 ) )-                 ## </group>-    -               &&-                 ## <quant>-                 ## pos: 712 720-                 do { while (-                  (   ( $pad{I1180} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1180} ) && 0 ) )) {}; $bool = 1 }-                 ## </quant>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1177} ) or 1 )-               &&            ## <concat>-               ## pos: 721 743-               (-      -                 ## <group>-                 ## pos: 721 726-                  (   ( $pad{I1181} = $pos or 1 ) &&-    -                   ## <dot>-                   ## pos: 724 725-                   ( substr( $s, $pos++, 1 ) ne '' )-                   ## </dot>-     ||    ( ( $pos = $pad{I1181} ) && 0 ) )-                 ## </group>-    -               &&-                 ## <quant>-                 ## pos: 726 730-                 do { while (-                  (   ( $pad{I1182} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1182} ) && 0 ) )) {}; $bool = 1 }-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 730 743-                  (   ( $pad{I1183} = $pos or 1 ) &&-                   ## <metasyntax>-                   ## pos: 730 742-                   do {-                        my $prior = $::_V6_PRIOR_;-                        my $match =-                               $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                        $::_V6_PRIOR_ = $prior;-                        my $bool = (!$match != 1);-                        $pos = $match->to if $bool;-                        $match;-                   }-                   ## </metasyntax>-     ||    ( ( $pos = $pad{I1183} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token ws-*ws =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <quant>-           ## pos: 761 1059-           (-            (   ( $pad{I1184} = $pos or 1 ) &&-               ## <alt>-               ## pos: 762 1056-               (-                   ( $pad{I1185} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 768 783-                   (-      -                     ## <group>-                     ## pos: 768 775-                      (   ( $pad{I1186} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 772 774-                       ( ( substr( $s, $pos, 1 ) eq '#' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1186} ) && 0 ) )-                     ## </group>-    -                   &&-                     ## <quant>-                     ## pos: 775 783-                     do { while (-                      (   ( $pad{I1187} = $pos or 1 ) &&-                         ## <perl5>-                         ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )-                             ? ( $pos += length( $1 ) or 1 )-                             : 0-                         )-                         ## </perl5>-     ||    ( ( $pos = $pad{I1187} ) && 0 ) )) {}; $bool = 1 }-                     ## </quant>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1185} ) or 1 )-                   &&                ## <concat>-                   ## pos: 784 1044-                   (-      -                     ## <group>-                     ## pos: 784 791-                      (   ( $pad{I1188} = $pos or 1 ) &&-                       ## <perl5>-                       ( ( substr( $s, $pos ) =~ m/^((?:\n\r?|\r\n?))/ )-                           ? ( $pos += length( $1 ) or 1 )-                           : 0-                       )-                       ## </perl5>-     ||    ( ( $pos = $pad{I1188} ) && 0 ) )-                     ## </group>-    -                   &&-                     ## <quant>-                     ## pos: 791 1044-                     (-                      (   ( $pad{I1189} = $pos or 1 ) &&-                         ## <concat>-                         ## pos: 792 1037-                         (-      -                           ## <group>-                           ## pos: 792 795-                            (   ( $pad{I1190} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 793 794-                             ( ( substr( $s, $pos, 1 ) eq '=' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1190} ) && 0 ) )-                           ## </group>-    -                         &&-                           ## <quant>-                           ## pos: 795 1037-                           (-                            (   ( $pad{I1191} = $pos or 1 ) &&-                               ## <alt>-                               ## pos: 796 1022-                               (-                                   ( $pad{I1192} = $pos or 1 )-                                   && (-                                   ## <concat>-                                   ## pos: 810 847-                                   (-      -                                     ## <group>-                                     ## pos: 810 813-                                      (   ( $pad{I1193} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 812 813-                                       ( ( substr( $s, $pos, 1 ) eq 'b' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1193} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 813 814-                                     ( ( substr( $s, $pos, 1 ) eq 'e' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 814 815-                                     ( ( substr( $s, $pos, 1 ) eq 'g' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 815 816-                                     ( ( substr( $s, $pos, 1 ) eq 'i' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 816 818-                                      (   ( $pad{I1194} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 816 817-                                       ( ( substr( $s, $pos, 1 ) eq 'n' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1194} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 818 824-                                      (   ( $pad{I1195} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 818 823-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1195} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 824 825-                                     ( ( substr( $s, $pos, 1 ) eq 'E' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 825 826-                                     ( ( substr( $s, $pos, 1 ) eq 'N' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 826 828-                                      (   ( $pad{I1196} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 826 827-                                       ( ( substr( $s, $pos, 1 ) eq 'D' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1196} ) && 0 ) )-                                     ## </group>-    -                                   &&-                                     ## <quant>-                                     ## pos: 828 832-                                     do { while (-                                      (   ( $pad{I1197} = $pos or 1 ) &&-                                         ## <perl5>-                                         ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )-                                             ? ( $pos += length( $1 ) or 1 )-                                             : 0-                                         )-                                         ## </perl5>-     ||    ( ( $pos = $pad{I1197} ) && 0 ) )) {}; $bool = 1 }-                                     ## </quant>-    -                                   &&-                                     ## <quant>-                                     ## pos: 832 847-                                     do { while (-                                      (   ( $pad{I1198} = $pos or 1 ) &&-    -                                         ## <dot>-                                         ## pos: 832 833-                                         ( substr( $s, $pos++, 1 ) ne '' )-                                         ## </dot>-     ||    ( ( $pos = $pad{I1198} ) && 0 ) )) {}; $bool = 1 }-                                     ## </quant>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 848 882-                                   (-      -                                     ## <group>-                                     ## pos: 848 851-                                      (   ( $pad{I1199} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 850 851-                                       ( ( substr( $s, $pos, 1 ) eq 'b' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1199} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 851 852-                                     ( ( substr( $s, $pos, 1 ) eq 'e' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 852 853-                                     ( ( substr( $s, $pos, 1 ) eq 'g' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 853 854-                                     ( ( substr( $s, $pos, 1 ) eq 'i' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 854 857-                                      (   ( $pad{I1200} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 854 855-                                       ( ( substr( $s, $pos, 1 ) eq 'n' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1200} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 857 882-                                      (   ( $pad{I1201} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 857 869-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_begin( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1201} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 883 917-                                   (-      -                                     ## <group>-                                     ## pos: 883 886-                                      (   ( $pad{I1202} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 885 886-                                       ( ( substr( $s, $pos, 1 ) eq 'k' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1202} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 886 887-                                     ( ( substr( $s, $pos, 1 ) eq 'w' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 887 888-                                     ( ( substr( $s, $pos, 1 ) eq 'i' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 888 892-                                      (   ( $pad{I1203} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 888 889-                                       ( ( substr( $s, $pos, 1 ) eq 'd' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1203} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 892 917-                                      (   ( $pad{I1204} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 892 904-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1204} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 918 952-                                   (-      -                                     ## <group>-                                     ## pos: 918 921-                                      (   ( $pad{I1205} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 920 921-                                       ( ( substr( $s, $pos, 1 ) eq 'p' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1205} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 921 922-                                     ( ( substr( $s, $pos, 1 ) eq 'o' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 922 927-                                      (   ( $pad{I1206} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 922 923-                                       ( ( substr( $s, $pos, 1 ) eq 'd' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1206} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 927 952-                                      (   ( $pad{I1207} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 927 939-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1207} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 953 987-                                   (-      -                                     ## <group>-                                     ## pos: 953 956-                                      (   ( $pad{I1208} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 955 956-                                       ( ( substr( $s, $pos, 1 ) eq 'f' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1208} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 956 957-                                     ( ( substr( $s, $pos, 1 ) eq 'o' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 957 962-                                      (   ( $pad{I1209} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 957 958-                                       ( ( substr( $s, $pos, 1 ) eq 'r' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1209} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 962 987-                                      (   ( $pad{I1210} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 962 974-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1210} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 988 1022-                                   (-      -                                     ## <group>-                                     ## pos: 988 991-                                      (   ( $pad{I1211} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 990 991-                                       ( ( substr( $s, $pos, 1 ) eq 'h' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1211} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 991 992-                                     ( ( substr( $s, $pos, 1 ) eq 'e' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 992 993-                                     ( ( substr( $s, $pos, 1 ) eq 'a' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 993 994-                                     ( ( substr( $s, $pos, 1 ) eq 'd' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 994 997-                                      (   ( $pad{I1212} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 994 995-                                       ( ( substr( $s, $pos, 1 ) eq '1' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1212} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 997 1022-                                      (   ( $pad{I1213} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 997 1009-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1213} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                 )-                               )-                               ## </alt>-     ||    ( ( $pos = $pad{I1191} ) && 0 ) )-                           || ( $bool = 1 )-                           )-                           ## </quant>-    -                         )-                         ## </concat>-     ||    ( ( $pos = $pad{I1189} ) && 0 ) )-                     || ( $bool = 1 )-                     )-                     ## </quant>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1185} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 1045 1056-                    (   ( $pad{I1214} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^(\s)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1214} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1184} ) && 0 ) )-           && do { while (-            (   ( $pad{I1184} = $pos or 1 ) &&-               ## <alt>-               ## pos: 762 1056-               (-                   ( $pad{I1185} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 768 783-                   (-      -                     ## <group>-                     ## pos: 768 775-                      (   ( $pad{I1186} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 772 774-                       ( ( substr( $s, $pos, 1 ) eq '#' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1186} ) && 0 ) )-                     ## </group>-    -                   &&-                     ## <quant>-                     ## pos: 775 783-                     do { while (-                      (   ( $pad{I1187} = $pos or 1 ) &&-                         ## <perl5>-                         ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )-                             ? ( $pos += length( $1 ) or 1 )-                             : 0-                         )-                         ## </perl5>-     ||    ( ( $pos = $pad{I1187} ) && 0 ) )) {}; $bool = 1 }-                     ## </quant>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1185} ) or 1 )-                   &&                ## <concat>-                   ## pos: 784 1044-                   (-      -                     ## <group>-                     ## pos: 784 791-                      (   ( $pad{I1188} = $pos or 1 ) &&-                       ## <perl5>-                       ( ( substr( $s, $pos ) =~ m/^((?:\n\r?|\r\n?))/ )-                           ? ( $pos += length( $1 ) or 1 )-                           : 0-                       )-                       ## </perl5>-     ||    ( ( $pos = $pad{I1188} ) && 0 ) )-                     ## </group>-    -                   &&-                     ## <quant>-                     ## pos: 791 1044-                     (-                      (   ( $pad{I1189} = $pos or 1 ) &&-                         ## <concat>-                         ## pos: 792 1037-                         (-      -                           ## <group>-                           ## pos: 792 795-                            (   ( $pad{I1190} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 793 794-                             ( ( substr( $s, $pos, 1 ) eq '=' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1190} ) && 0 ) )-                           ## </group>-    -                         &&-                           ## <quant>-                           ## pos: 795 1037-                           (-                            (   ( $pad{I1191} = $pos or 1 ) &&-                               ## <alt>-                               ## pos: 796 1022-                               (-                                   ( $pad{I1192} = $pos or 1 )-                                   && (-                                   ## <concat>-                                   ## pos: 810 847-                                   (-      -                                     ## <group>-                                     ## pos: 810 813-                                      (   ( $pad{I1193} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 812 813-                                       ( ( substr( $s, $pos, 1 ) eq 'b' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1193} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 813 814-                                     ( ( substr( $s, $pos, 1 ) eq 'e' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 814 815-                                     ( ( substr( $s, $pos, 1 ) eq 'g' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 815 816-                                     ( ( substr( $s, $pos, 1 ) eq 'i' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 816 818-                                      (   ( $pad{I1194} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 816 817-                                       ( ( substr( $s, $pos, 1 ) eq 'n' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1194} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 818 824-                                      (   ( $pad{I1195} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 818 823-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1195} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 824 825-                                     ( ( substr( $s, $pos, 1 ) eq 'E' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 825 826-                                     ( ( substr( $s, $pos, 1 ) eq 'N' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 826 828-                                      (   ( $pad{I1196} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 826 827-                                       ( ( substr( $s, $pos, 1 ) eq 'D' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1196} ) && 0 ) )-                                     ## </group>-    -                                   &&-                                     ## <quant>-                                     ## pos: 828 832-                                     do { while (-                                      (   ( $pad{I1197} = $pos or 1 ) &&-                                         ## <perl5>-                                         ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )-                                             ? ( $pos += length( $1 ) or 1 )-                                             : 0-                                         )-                                         ## </perl5>-     ||    ( ( $pos = $pad{I1197} ) && 0 ) )) {}; $bool = 1 }-                                     ## </quant>-    -                                   &&-                                     ## <quant>-                                     ## pos: 832 847-                                     do { while (-                                      (   ( $pad{I1198} = $pos or 1 ) &&-    -                                         ## <dot>-                                         ## pos: 832 833-                                         ( substr( $s, $pos++, 1 ) ne '' )-                                         ## </dot>-     ||    ( ( $pos = $pad{I1198} ) && 0 ) )) {}; $bool = 1 }-                                     ## </quant>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 848 882-                                   (-      -                                     ## <group>-                                     ## pos: 848 851-                                      (   ( $pad{I1199} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 850 851-                                       ( ( substr( $s, $pos, 1 ) eq 'b' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1199} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 851 852-                                     ( ( substr( $s, $pos, 1 ) eq 'e' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 852 853-                                     ( ( substr( $s, $pos, 1 ) eq 'g' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 853 854-                                     ( ( substr( $s, $pos, 1 ) eq 'i' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 854 857-                                      (   ( $pad{I1200} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 854 855-                                       ( ( substr( $s, $pos, 1 ) eq 'n' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1200} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 857 882-                                      (   ( $pad{I1201} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 857 869-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_begin( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1201} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 883 917-                                   (-      -                                     ## <group>-                                     ## pos: 883 886-                                      (   ( $pad{I1202} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 885 886-                                       ( ( substr( $s, $pos, 1 ) eq 'k' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1202} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 886 887-                                     ( ( substr( $s, $pos, 1 ) eq 'w' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 887 888-                                     ( ( substr( $s, $pos, 1 ) eq 'i' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 888 892-                                      (   ( $pad{I1203} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 888 889-                                       ( ( substr( $s, $pos, 1 ) eq 'd' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1203} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 892 917-                                      (   ( $pad{I1204} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 892 904-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1204} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 918 952-                                   (-      -                                     ## <group>-                                     ## pos: 918 921-                                      (   ( $pad{I1205} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 920 921-                                       ( ( substr( $s, $pos, 1 ) eq 'p' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1205} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 921 922-                                     ( ( substr( $s, $pos, 1 ) eq 'o' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 922 927-                                      (   ( $pad{I1206} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 922 923-                                       ( ( substr( $s, $pos, 1 ) eq 'd' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1206} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 927 952-                                      (   ( $pad{I1207} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 927 939-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1207} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 953 987-                                   (-      -                                     ## <group>-                                     ## pos: 953 956-                                      (   ( $pad{I1208} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 955 956-                                       ( ( substr( $s, $pos, 1 ) eq 'f' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1208} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 956 957-                                     ( ( substr( $s, $pos, 1 ) eq 'o' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 957 962-                                      (   ( $pad{I1209} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 957 958-                                       ( ( substr( $s, $pos, 1 ) eq 'r' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1209} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 962 987-                                      (   ( $pad{I1210} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 962 974-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1210} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1192} ) or 1 )-                                   &&                                ## <concat>-                                   ## pos: 988 1022-                                   (-      -                                     ## <group>-                                     ## pos: 988 991-                                      (   ( $pad{I1211} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 990 991-                                       ( ( substr( $s, $pos, 1 ) eq 'h' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1211} ) && 0 ) )-                                     ## </group>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 991 992-                                     ( ( substr( $s, $pos, 1 ) eq 'e' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 992 993-                                     ( ( substr( $s, $pos, 1 ) eq 'a' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-    -                                     ## <constant>-                                     ## pos: 993 994-                                     ( ( substr( $s, $pos, 1 ) eq 'd' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 994 997-                                      (   ( $pad{I1212} = $pos or 1 ) &&-    -                                       ## <constant>-                                       ## pos: 994 995-                                       ( ( substr( $s, $pos, 1 ) eq '1' )-                                           ? ( $pos += 1 or 1 )-                                           : 0-                                       )-                                       ## </constant>-     ||    ( ( $pos = $pad{I1212} ) && 0 ) )-                                     ## </group>-    -                                   &&-      -                                     ## <group>-                                     ## pos: 997 1022-                                      (   ( $pad{I1213} = $pos or 1 ) &&-                                       ## <metasyntax>-                                       ## pos: 997 1009-                                       do {-                                            my $prior = $::_V6_PRIOR_;-                                            my $match =-                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                            $::_V6_PRIOR_ = $prior;-                                            my $bool = (!$match != 1);-                                            $pos = $match->to if $bool;-                                            $match;-                                       }-                                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1213} ) && 0 ) )-                                     ## </group>-    -                                   )-                                   ## </concat>-    -                                 )-                               )-                               ## </alt>-     ||    ( ( $pos = $pad{I1191} ) && 0 ) )-                           || ( $bool = 1 )-                           )-                           ## </quant>-    -                         )-                         ## </concat>-     ||    ( ( $pos = $pad{I1189} ) && 0 ) )-                     || ( $bool = 1 )-                     )-                     ## </quant>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1185} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 1045 1056-                    (   ( $pad{I1214} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^(\s)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1214} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1184} ) && 0 ) )) {}; $bool = 1 }-           )-           ## </quant>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token ident-*ident =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <quant>-           ## pos: 1118 1143-           (-            (   ( $pad{I1215} = $pos or 1 ) &&-               ## <alt>-               ## pos: 1119 1140-               (-                   ( $pad{I1216} = $pos or 1 )-                   && (-      -                   ## <group>-                   ## pos: 1119 1129-                    (   ( $pad{I1217} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 1120 1128-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1217} ) && 0 ) )-                   ## </group>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1216} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 1130 1133-                    (   ( $pad{I1218} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 1131 1132-                     ( ( substr( $s, $pos, 1 ) eq '_' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1218} ) && 0 ) )-                   ## </group>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1216} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 1134 1140-                    (   ( $pad{I1219} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 1135 1139-                     ( ( substr( $s, $pos, 2 ) eq '::' )-                         ? ( $pos += 2 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1219} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1215} ) && 0 ) )-           && do { while (-            (   ( $pad{I1215} = $pos or 1 ) &&-               ## <alt>-               ## pos: 1119 1140-               (-                   ( $pad{I1216} = $pos or 1 )-                   && (-      -                   ## <group>-                   ## pos: 1119 1129-                    (   ( $pad{I1217} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 1120 1128-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1217} ) && 0 ) )-                   ## </group>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1216} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 1130 1133-                    (   ( $pad{I1218} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 1131 1132-                     ( ( substr( $s, $pos, 1 ) eq '_' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1218} ) && 0 ) )-                   ## </group>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1216} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 1134 1140-                    (   ( $pad{I1219} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 1135 1139-                     ( ( substr( $s, $pos, 2 ) eq '::' )-                         ? ( $pos += 2 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1219} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1215} ) && 0 ) )) {}; $bool = 1 }-           )-           ## </quant>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token alnum-*alnum =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 1164 1178-            (   ( $pad{I1220} = $pos or 1 ) &&-             ## <perl5>-             ( ( substr( $s, $pos ) =~ m/^((?:(?=[0-9a-zA-Z]))\X)/ )-                 ? ( $pos += length( $1 ) or 1 )-                 : 0-             )-             ## </perl5>-     ||    ( ( $pos = $pad{I1220} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token alpha-*alpha =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 1199 1210-            (   ( $pad{I1221} = $pos or 1 ) &&-             ## <perl5>-             ( ( substr( $s, $pos ) =~ m/^((?:(?=[a-zA-Z]))\X)/ )-                 ? ( $pos += length( $1 ) or 1 )-                 : 0-             )-             ## </perl5>-     ||    ( ( $pos = $pad{I1221} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token digit-*digit =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 1231 1239-            (   ( $pad{I1222} = $pos or 1 ) &&-             ## <perl5>-             ( ( substr( $s, $pos ) =~ m/^((?:(?=[0-9]))\X)/ )-                 ? ( $pos += length( $1 ) or 1 )-                 : 0-             )-             ## </perl5>-     ||    ( ( $pos = $pad{I1222} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token special_char-*special_char =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 1284 2177-           (-               ( $pad{I1223} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 1285 1473-               (-      -                 ## <group>-                 ## pos: 1285 1296-                  (   ( $pad{I1224} = $pos or 1 ) &&-    -                   ## <capture>-                   do{-                       my $hash = do {-                         my $bool = 1;-                         my $from = $pos;-                         my @match;-                         my %named;-                         $bool = 0 unless-                           ## <alt>-                           ## pos: 1287 1294-                           (-                               ( $pad{I1225} = $pos or 1 )-                               && (-      -                               ## <group>-                               ## pos: 1287 1290-                                (   ( $pad{I1226} = $pos or 1 ) &&-    -                                 ## <constant>-                                 ## pos: 1288 1289-                                 ( ( substr( $s, $pos, 1 ) eq 'c' )-                                     ? ( $pos += 1 or 1 )-                                     : 0-                                 )-                                 ## </constant>-     ||    ( ( $pos = $pad{I1226} ) && 0 ) )-                               ## </group>-    -                               )-                             || (-                               ( ( $bool = 1 ) && ( $pos = $pad{I1225} ) or 1 )-                               &&   -                               ## <group>-                               ## pos: 1291 1294-                                (   ( $pad{I1227} = $pos or 1 ) &&-    -                                 ## <constant>-                                 ## pos: 1292 1293-                                 ( ( substr( $s, $pos, 1 ) eq 'C' )-                                     ? ( $pos += 1 or 1 )-                                     : 0-                                 )-                                 ## </constant>-     ||    ( ( $pos = $pad{I1227} ) && 0 ) )-                               ## </group>-    -                             )-                           )-                           ## </alt>-    ;-                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                       };-                       my $bool = ${$hash->{'bool'}};-                       $match[ 0 ] = Pugs::Runtime::Match->new( $hash );-                       $bool;-                   }-                   ## </capture>-     ||    ( ( $pos = $pad{I1224} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1296 1299-                  (   ( $pad{I1228} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 1296 1298-                   ( ( substr( $s, $pos, 1 ) eq '[' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1228} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1299 1340-                  (   ( $pad{I1229} = $pos or 1 ) &&-    -                   ## <capture>-                   do{-                       my $hash = do {-                         my $bool = 1;-                         my $from = $pos;-                         my @match;-                         my %named;-                         $bool = 0 unless-                           ## <quant>-                           ## pos: 1300 1338-                           (-                            (   ( $pad{I1230} = $pos or 1 ) &&-                               ## <alt>-                               ## pos: 1302 1336-                               (-                                   ( $pad{I1231} = $pos or 1 )-                                   && (-                                   ## <named_capture>-                                   ## pos: 1302 1309-                                   do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                               $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'alnum'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                                   ## </named_capture>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&                                ## <perl5>-                                   ( ( substr( $s, $pos ) =~ m/^(\s)/ )-                                       ? ( $pos += length( $1 ) or 1 )-                                       : 0-                                   )-                                   ## </perl5>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&   -                                   ## <group>-                                   ## pos: 1313 1318-                                    (   ( $pad{I1232} = $pos or 1 ) &&-    -                                     ## <constant>-                                     ## pos: 1314 1317-                                     ( ( substr( $s, $pos, 1 ) eq ';' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-     ||    ( ( $pos = $pad{I1232} ) && 0 ) )-                                   ## </group>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&   -                                   ## <group>-                                   ## pos: 1319 1324-                                    (   ( $pad{I1233} = $pos or 1 ) &&-    -                                     ## <constant>-                                     ## pos: 1320 1323-                                     ( ( substr( $s, $pos, 1 ) eq '(' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-     ||    ( ( $pos = $pad{I1233} ) && 0 ) )-                                   ## </group>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&   -                                   ## <group>-                                   ## pos: 1325 1330-                                    (   ( $pad{I1234} = $pos or 1 ) &&-    -                                     ## <constant>-                                     ## pos: 1326 1329-                                     ( ( substr( $s, $pos, 1 ) eq ')' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-     ||    ( ( $pos = $pad{I1234} ) && 0 ) )-                                   ## </group>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&   -                                   ## <group>-                                   ## pos: 1331 1336-                                    (   ( $pad{I1235} = $pos or 1 ) &&-    -                                     ## <constant>-                                     ## pos: 1332 1335-                                     ( ( substr( $s, $pos, 1 ) eq '-' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-     ||    ( ( $pos = $pad{I1235} ) && 0 ) )-                                   ## </group>-    -                                 )-                               )-                               ## </alt>-     ||    ( ( $pos = $pad{I1230} ) && 0 ) )-                           && do { while (-                            (   ( $pad{I1230} = $pos or 1 ) &&-                               ## <alt>-                               ## pos: 1302 1336-                               (-                                   ( $pad{I1231} = $pos or 1 )-                                   && (-                                   ## <named_capture>-                                   ## pos: 1302 1309-                                   do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                               $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'alnum'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                                   ## </named_capture>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&                                ## <perl5>-                                   ( ( substr( $s, $pos ) =~ m/^(\s)/ )-                                       ? ( $pos += length( $1 ) or 1 )-                                       : 0-                                   )-                                   ## </perl5>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&   -                                   ## <group>-                                   ## pos: 1313 1318-                                    (   ( $pad{I1232} = $pos or 1 ) &&-    -                                     ## <constant>-                                     ## pos: 1314 1317-                                     ( ( substr( $s, $pos, 1 ) eq ';' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-     ||    ( ( $pos = $pad{I1232} ) && 0 ) )-                                   ## </group>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&   -                                   ## <group>-                                   ## pos: 1319 1324-                                    (   ( $pad{I1233} = $pos or 1 ) &&-    -                                     ## <constant>-                                     ## pos: 1320 1323-                                     ( ( substr( $s, $pos, 1 ) eq '(' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-     ||    ( ( $pos = $pad{I1233} ) && 0 ) )-                                   ## </group>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&   -                                   ## <group>-                                   ## pos: 1325 1330-                                    (   ( $pad{I1234} = $pos or 1 ) &&-    -                                     ## <constant>-                                     ## pos: 1326 1329-                                     ( ( substr( $s, $pos, 1 ) eq ')' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-     ||    ( ( $pos = $pad{I1234} ) && 0 ) )-                                   ## </group>-    -                                   )-                                 || (-                                   ( ( $bool = 1 ) && ( $pos = $pad{I1231} ) or 1 )-                                   &&   -                                   ## <group>-                                   ## pos: 1331 1336-                                    (   ( $pad{I1235} = $pos or 1 ) &&-    -                                     ## <constant>-                                     ## pos: 1332 1335-                                     ( ( substr( $s, $pos, 1 ) eq '-' )-                                         ? ( $pos += 1 or 1 )-                                         : 0-                                     )-                                     ## </constant>-     ||    ( ( $pos = $pad{I1235} ) && 0 ) )-                                   ## </group>-    -                                 )-                               )-                               ## </alt>-     ||    ( ( $pos = $pad{I1230} ) && 0 ) )) {}; $bool = 1 }-                           )-                           ## </quant>-    ;-                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                       };-                       my $bool = ${$hash->{'bool'}};-                       $match[ 1 ] = Pugs::Runtime::Match->new( $hash );-                       $bool;-                   }-                   ## </capture>-     ||    ( ( $pos = $pad{I1229} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1340 1385-                  (   ( $pad{I1236} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 1340 1342-                   ( ( substr( $s, $pos, 1 ) eq ']' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1236} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1385 1473-                  (   ( $pad{I1237} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 1385 1463-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0]->[0] . $_[0]->[1], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1237} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1223} ) or 1 )-               &&            ## <concat>-               ## pos: 1474 1617-               (-      -                 ## <group>-                 ## pos: 1474 1485-                  (   ( $pad{I1238} = $pos or 1 ) &&-                   ## <alt>-                   ## pos: 1476 1483-                   (-                       ( $pad{I1239} = $pos or 1 )-                       && (-      -                       ## <group>-                       ## pos: 1476 1479-                        (   ( $pad{I1240} = $pos or 1 ) &&-    -                         ## <constant>-                         ## pos: 1477 1478-                         ( ( substr( $s, $pos, 1 ) eq 'x' )-                             ? ( $pos += 1 or 1 )-                             : 0-                         )-                         ## </constant>-     ||    ( ( $pos = $pad{I1240} ) && 0 ) )-                       ## </group>-    -                       )-                     || (-                       ( ( $bool = 1 ) && ( $pos = $pad{I1239} ) or 1 )-                       &&   -                       ## <group>-                       ## pos: 1480 1483-                        (   ( $pad{I1241} = $pos or 1 ) &&-    -                         ## <constant>-                         ## pos: 1481 1482-                         ( ( substr( $s, $pos, 1 ) eq 'X' )-                             ? ( $pos += 1 or 1 )-                             : 0-                         )-                         ## </constant>-     ||    ( ( $pos = $pad{I1241} ) && 0 ) )-                       ## </group>-    -                     )-                   )-                   ## </alt>-     ||    ( ( $pos = $pad{I1238} ) && 0 ) )-                 ## </group>-    -               &&-                 ## <quant>-                 ## pos: 1485 1535-                 (-                  (   ( $pad{I1242} = $pos or 1 ) &&-                     ## <named_capture>-                     ## pos: 1485 1493-                     do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                 $grammar->xdigit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'xdigit'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                     ## </named_capture>-     ||    ( ( $pos = $pad{I1242} ) && 0 ) )-                 && do { while (-                  (   ( $pad{I1242} = $pos or 1 ) &&-                     ## <named_capture>-                     ## pos: 1485 1493-                     do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                 $grammar->xdigit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'xdigit'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                     ## </named_capture>-     ||    ( ( $pos = $pad{I1242} ) && 0 ) )) {}; $bool = 1 }-                 )-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 1535 1617-                  (   ( $pad{I1243} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 1535 1608-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1243} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1223} ) or 1 )-               &&            ## <concat>-               ## pos: 1618 1777-               (-      -                 ## <group>-                 ## pos: 1618 1629-                  (   ( $pad{I1244} = $pos or 1 ) &&-    -                   ## <capture>-                   do{-                       my $hash = do {-                         my $bool = 1;-                         my $from = $pos;-                         my @match;-                         my %named;-                         $bool = 0 unless-                           ## <alt>-                           ## pos: 1620 1627-                           (-                               ( $pad{I1245} = $pos or 1 )-                               && (-      -                               ## <group>-                               ## pos: 1620 1623-                                (   ( $pad{I1246} = $pos or 1 ) &&-    -                                 ## <constant>-                                 ## pos: 1621 1622-                                 ( ( substr( $s, $pos, 1 ) eq 'x' )-                                     ? ( $pos += 1 or 1 )-                                     : 0-                                 )-                                 ## </constant>-     ||    ( ( $pos = $pad{I1246} ) && 0 ) )-                               ## </group>-    -                               )-                             || (-                               ( ( $bool = 1 ) && ( $pos = $pad{I1245} ) or 1 )-                               &&   -                               ## <group>-                               ## pos: 1624 1627-                                (   ( $pad{I1247} = $pos or 1 ) &&-    -                                 ## <constant>-                                 ## pos: 1625 1626-                                 ( ( substr( $s, $pos, 1 ) eq 'X' )-                                     ? ( $pos += 1 or 1 )-                                     : 0-                                 )-                                 ## </constant>-     ||    ( ( $pos = $pad{I1247} ) && 0 ) )-                               ## </group>-    -                             )-                           )-                           ## </alt>-    ;-                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                       };-                       my $bool = ${$hash->{'bool'}};-                       $match[ 0 ] = Pugs::Runtime::Match->new( $hash );-                       $bool;-                   }-                   ## </capture>-     ||    ( ( $pos = $pad{I1244} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1629 1632-                  (   ( $pad{I1248} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 1629 1631-                   ( ( substr( $s, $pos, 1 ) eq '[' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1248} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1632 1644-                  (   ( $pad{I1249} = $pos or 1 ) &&-    -                   ## <capture>-                   do{-                       my $hash = do {-                         my $bool = 1;-                         my $from = $pos;-                         my @match;-                         my %named;-                         $bool = 0 unless-                           ## <quant>-                           ## pos: 1633 1642-                           (-                            (   ( $pad{I1250} = $pos or 1 ) &&-                               ## <named_capture>-                               ## pos: 1633 1641-                               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                           $grammar->xdigit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'xdigit'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                               ## </named_capture>-     ||    ( ( $pos = $pad{I1250} ) && 0 ) )-                           && do { while (-                            (   ( $pad{I1250} = $pos or 1 ) &&-                               ## <named_capture>-                               ## pos: 1633 1641-                               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                           $grammar->xdigit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'xdigit'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                               ## </named_capture>-     ||    ( ( $pos = $pad{I1250} ) && 0 ) )) {}; $bool = 1 }-                           )-                           ## </quant>-    ;-                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                       };-                       my $bool = ${$hash->{'bool'}};-                       $match[ 1 ] = Pugs::Runtime::Match->new( $hash );-                       $bool;-                   }-                   ## </capture>-     ||    ( ( $pos = $pad{I1249} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1644 1689-                  (   ( $pad{I1251} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 1644 1646-                   ( ( substr( $s, $pos, 1 ) eq ']' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1251} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1689 1777-                  (   ( $pad{I1252} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 1689 1767-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0]->[0] . $_[0]->[1], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1252} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1223} ) or 1 )-               &&            ## <concat>-               ## pos: 1778 1915-               (-      -                 ## <group>-                 ## pos: 1778 1789-                  (   ( $pad{I1253} = $pos or 1 ) &&-                   ## <alt>-                   ## pos: 1780 1787-                   (-                       ( $pad{I1254} = $pos or 1 )-                       && (-      -                       ## <group>-                       ## pos: 1780 1783-                        (   ( $pad{I1255} = $pos or 1 ) &&-    -                         ## <constant>-                         ## pos: 1781 1782-                         ( ( substr( $s, $pos, 1 ) eq 'o' )-                             ? ( $pos += 1 or 1 )-                             : 0-                         )-                         ## </constant>-     ||    ( ( $pos = $pad{I1255} ) && 0 ) )-                       ## </group>-    -                       )-                     || (-                       ( ( $bool = 1 ) && ( $pos = $pad{I1254} ) or 1 )-                       &&   -                       ## <group>-                       ## pos: 1784 1787-                        (   ( $pad{I1256} = $pos or 1 ) &&-    -                         ## <constant>-                         ## pos: 1785 1786-                         ( ( substr( $s, $pos, 1 ) eq 'O' )-                             ? ( $pos += 1 or 1 )-                             : 0-                         )-                         ## </constant>-     ||    ( ( $pos = $pad{I1256} ) && 0 ) )-                       ## </group>-    -                     )-                   )-                   ## </alt>-     ||    ( ( $pos = $pad{I1253} ) && 0 ) )-                 ## </group>-    -               &&-                 ## <quant>-                 ## pos: 1789 1833-                 (-                  (   ( $pad{I1257} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^(\d)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1257} ) && 0 ) )-                 && do { while (-                  (   ( $pad{I1257} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^(\d)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1257} ) && 0 ) )) {}; $bool = 1 }-                 )-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 1833 1915-                  (   ( $pad{I1258} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 1833 1906-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1258} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1223} ) or 1 )-               &&            ## <concat>-               ## pos: 1916 2069-               (-      -                 ## <group>-                 ## pos: 1916 1927-                  (   ( $pad{I1259} = $pos or 1 ) &&-    -                   ## <capture>-                   do{-                       my $hash = do {-                         my $bool = 1;-                         my $from = $pos;-                         my @match;-                         my %named;-                         $bool = 0 unless-                           ## <alt>-                           ## pos: 1918 1925-                           (-                               ( $pad{I1260} = $pos or 1 )-                               && (-      -                               ## <group>-                               ## pos: 1918 1921-                                (   ( $pad{I1261} = $pos or 1 ) &&-    -                                 ## <constant>-                                 ## pos: 1919 1920-                                 ( ( substr( $s, $pos, 1 ) eq 'o' )-                                     ? ( $pos += 1 or 1 )-                                     : 0-                                 )-                                 ## </constant>-     ||    ( ( $pos = $pad{I1261} ) && 0 ) )-                               ## </group>-    -                               )-                             || (-                               ( ( $bool = 1 ) && ( $pos = $pad{I1260} ) or 1 )-                               &&   -                               ## <group>-                               ## pos: 1922 1925-                                (   ( $pad{I1262} = $pos or 1 ) &&-    -                                 ## <constant>-                                 ## pos: 1923 1924-                                 ( ( substr( $s, $pos, 1 ) eq 'O' )-                                     ? ( $pos += 1 or 1 )-                                     : 0-                                 )-                                 ## </constant>-     ||    ( ( $pos = $pad{I1262} ) && 0 ) )-                               ## </group>-    -                             )-                           )-                           ## </alt>-    ;-                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                       };-                       my $bool = ${$hash->{'bool'}};-                       $match[ 0 ] = Pugs::Runtime::Match->new( $hash );-                       $bool;-                   }-                   ## </capture>-     ||    ( ( $pos = $pad{I1259} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1927 1930-                  (   ( $pad{I1263} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 1927 1929-                   ( ( substr( $s, $pos, 1 ) eq '[' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1263} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1930 1936-                  (   ( $pad{I1264} = $pos or 1 ) &&-    -                   ## <capture>-                   do{-                       my $hash = do {-                         my $bool = 1;-                         my $from = $pos;-                         my @match;-                         my %named;-                         $bool = 0 unless-                           ## <quant>-                           ## pos: 1931 1934-                           (-                            (   ( $pad{I1265} = $pos or 1 ) &&-                               ## <perl5>-                               ( ( substr( $s, $pos ) =~ m/^(\d)/ )-                                   ? ( $pos += length( $1 ) or 1 )-                                   : 0-                               )-                               ## </perl5>-     ||    ( ( $pos = $pad{I1265} ) && 0 ) )-                           && do { while (-                            (   ( $pad{I1265} = $pos or 1 ) &&-                               ## <perl5>-                               ( ( substr( $s, $pos ) =~ m/^(\d)/ )-                                   ? ( $pos += length( $1 ) or 1 )-                                   : 0-                               )-                               ## </perl5>-     ||    ( ( $pos = $pad{I1265} ) && 0 ) )) {}; $bool = 1 }-                           )-                           ## </quant>-    ;-                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                       };-                       my $bool = ${$hash->{'bool'}};-                       $match[ 1 ] = Pugs::Runtime::Match->new( $hash );-                       $bool;-                   }-                   ## </capture>-     ||    ( ( $pos = $pad{I1264} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1936 1981-                  (   ( $pad{I1266} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 1936 1938-                   ( ( substr( $s, $pos, 1 ) eq ']' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1266} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 1981 2069-                  (   ( $pad{I1267} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 1981 2059-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0]->[0] . $_[0]->[1], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1267} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1223} ) or 1 )-               &&            ## <concat>-               ## pos: 2070 2177-               (-      -                 ## <group>-                 ## pos: 2070 2103-                  (   ( $pad{I1268} = $pos or 1 ) &&-    -                   ## <dot>-                   ## pos: 2071 2072-                   ( substr( $s, $pos++, 1 ) ne '' )-                   ## </dot>-     ||    ( ( $pos = $pad{I1268} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 2103 2177-                  (   ( $pad{I1269} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 2103 2176-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1269} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token literal-*literal =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <quant>-           ## pos: 2200 2251-           do { while (-            (   ( $pad{I1270} = $pos or 1 ) &&-               ## <alt>-               ## pos: 2201 2248-               (-                   ( $pad{I1271} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 2207 2231-                   (-      -                     ## <group>-                     ## pos: 2207 2212-                      (   ( $pad{I1272} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2209 2211-                       ( ( substr( $s, $pos, 1 ) eq '\\' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1272} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2212 2231-                      (   ( $pad{I1273} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 2212 2226-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'special_char'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1273} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1271} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 2232 2248-                    (   ( $pad{I1274} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\']))\X)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1274} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1270} ) && 0 ) )) {}; $bool = 1 }-           ## </quant>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token double_quoted-*double_quoted =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <quant>-           ## pos: 2280 2372-           do { while (-            (   ( $pad{I1275} = $pos or 1 ) &&-               ## <alt>-               ## pos: 2281 2369-               (-                   ( $pad{I1276} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 2287 2311-                   (-      -                     ## <group>-                     ## pos: 2287 2292-                      (   ( $pad{I1277} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2289 2291-                       ( ( substr( $s, $pos, 1 ) eq '\\' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1277} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2292 2311-                      (   ( $pad{I1278} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 2292 2306-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'special_char'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1278} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1276} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 2312 2352-                    (   ( $pad{I1279} = $pos or 1 ) &&-                    ## <metasyntax>-                     ## pos: 2314 2347-                     do{-                    my $match = -              ## <variable>-              ## pos: 2314 2347-              do {-                our $I1280;-                our $I1280_sizes;-                unless ( $I1280 ) {-                    my $hash = \%Pugs::Grammar::Rule::variables;-                    my %sizes = map { length($_) => 1 } keys %$hash;-                    $I1280_sizes = [ sort { $b <=> $a } keys %sizes ];-                    $I1280 = $hash;-                }-                my $match = 0;-                my $key;-                for ( @$I1280_sizes ) {-                    $key = ( $pos <= length( $s )-                                ? substr( $s, $pos, $_ )-                                : '' );-                    if ( exists $I1280->{$key} ) {-                        #$named{KEY} = $key;-                        #$::_V6_MATCH_ = $m;-                        #print "m: ", Dumper( $::_V6_MATCH_->data )-                        #    if ( $key eq 'until' );-                        $match = Pugs::Runtime::Regex::preprocess_hash( $I1280, $key )->( $s, $grammar, { p => ( $pos + $_ ), positionals => [ ], args => { KEY => $key } }, undef );-                        last if $match;-                    }-                }-                if ( $match ) {-                    $pos = $match->to;-                    #print "match: $key at $pos = ", Dumper( $match->data );-                    $bool = 1;-                }; # else { $bool = 0 }-                $match;-              }-              ## </variable>-    ;-                    if ( $match ) { push @{$named{'Pugs::Grammar::Rule::variables'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                    ## </metasyntax>-     ||    ( ( $pos = $pad{I1279} ) && 0 ) )-                   ## </group>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1276} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 2353 2369-                    (   ( $pad{I1281} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\"]))\X)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1281} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1275} ) && 0 ) )) {}; $bool = 1 }-           ## </quant>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token metasyntax-*metasyntax =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <quant>-           ## pos: 2398 2576-           (-            (   ( $pad{I1282} = $pos or 1 ) &&-               ## <alt>-               ## pos: 2399 2573-               (-                   ( $pad{I1283} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 2405 2429-                   (-      -                     ## <group>-                     ## pos: 2405 2410-                      (   ( $pad{I1284} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2407 2409-                       ( ( substr( $s, $pos, 1 ) eq '\\' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1284} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2410 2429-                      (   ( $pad{I1285} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 2410 2424-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'special_char'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1285} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2430 2458-                   (-      -                     ## <group>-                     ## pos: 2430 2436-                      (   ( $pad{I1286} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2432 2434-                       ( ( substr( $s, $pos, 1 ) eq chr(39) )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1286} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2436 2451-                      (   ( $pad{I1287} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2436 2446-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1287} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2451 2458-                      (   ( $pad{I1288} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2451 2453-                       ( ( substr( $s, $pos, 1 ) eq chr(39) )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1288} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2459 2491-                   (-      -                     ## <group>-                     ## pos: 2459 2465-                      (   ( $pad{I1289} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2461 2463-                       ( ( substr( $s, $pos, 1 ) eq '"' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1289} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2465 2484-                      (   ( $pad{I1290} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2465 2481-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->double_quoted( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1290} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2484 2491-                      (   ( $pad{I1291} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2484 2486-                       ( ( substr( $s, $pos, 1 ) eq '"' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1291} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2492 2527-                   (-      -                     ## <group>-                     ## pos: 2492 2498-                      (   ( $pad{I1292} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2494 2496-                       ( ( substr( $s, $pos, 1 ) eq '{' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1292} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2498 2520-                      (   ( $pad{I1293} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2498 2512-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1293} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2520 2527-                      (   ( $pad{I1294} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2520 2522-                       ( ( substr( $s, $pos, 1 ) eq '}' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1294} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2528 2556-                   (-      -                     ## <group>-                     ## pos: 2528 2534-                      (   ( $pad{I1295} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2530 2532-                       ( ( substr( $s, $pos, 1 ) eq '<' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1295} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2534 2549-                      (   ( $pad{I1296} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2534 2547-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1296} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2549 2556-                      (   ( $pad{I1297} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2549 2551-                       ( ( substr( $s, $pos, 1 ) eq '>' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1297} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 2557 2573-                    (   ( $pad{I1298} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\>]))\X)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1298} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1282} ) && 0 ) )-           && do { while (-            (   ( $pad{I1282} = $pos or 1 ) &&-               ## <alt>-               ## pos: 2399 2573-               (-                   ( $pad{I1283} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 2405 2429-                   (-      -                     ## <group>-                     ## pos: 2405 2410-                      (   ( $pad{I1284} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2407 2409-                       ( ( substr( $s, $pos, 1 ) eq '\\' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1284} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2410 2429-                      (   ( $pad{I1285} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 2410 2424-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'special_char'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1285} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2430 2458-                   (-      -                     ## <group>-                     ## pos: 2430 2436-                      (   ( $pad{I1286} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2432 2434-                       ( ( substr( $s, $pos, 1 ) eq chr(39) )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1286} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2436 2451-                      (   ( $pad{I1287} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2436 2446-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1287} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2451 2458-                      (   ( $pad{I1288} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2451 2453-                       ( ( substr( $s, $pos, 1 ) eq chr(39) )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1288} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2459 2491-                   (-      -                     ## <group>-                     ## pos: 2459 2465-                      (   ( $pad{I1289} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2461 2463-                       ( ( substr( $s, $pos, 1 ) eq '"' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1289} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2465 2484-                      (   ( $pad{I1290} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2465 2481-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->double_quoted( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1290} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2484 2491-                      (   ( $pad{I1291} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2484 2486-                       ( ( substr( $s, $pos, 1 ) eq '"' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1291} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2492 2527-                   (-      -                     ## <group>-                     ## pos: 2492 2498-                      (   ( $pad{I1292} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2494 2496-                       ( ( substr( $s, $pos, 1 ) eq '{' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1292} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2498 2520-                      (   ( $pad{I1293} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2498 2512-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1293} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2520 2527-                      (   ( $pad{I1294} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2520 2522-                       ( ( substr( $s, $pos, 1 ) eq '}' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1294} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2528 2556-                   (-      -                     ## <group>-                     ## pos: 2528 2534-                      (   ( $pad{I1295} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2530 2532-                       ( ( substr( $s, $pos, 1 ) eq '<' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1295} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2534 2549-                      (   ( $pad{I1296} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2534 2547-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1296} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2549 2556-                      (   ( $pad{I1297} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2549 2551-                       ( ( substr( $s, $pos, 1 ) eq '>' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1297} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1283} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 2557 2573-                    (   ( $pad{I1298} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\>]))\X)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1298} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1282} ) && 0 ) )) {}; $bool = 1 }-           )-           ## </quant>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token char_range-*char_range =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <quant>-           ## pos: 2602 2653-           (-            (   ( $pad{I1299} = $pos or 1 ) &&-               ## <alt>-               ## pos: 2603 2650-               (-                   ( $pad{I1300} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 2609 2633-                   (-      -                     ## <group>-                     ## pos: 2609 2614-                      (   ( $pad{I1301} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2611 2613-                       ( ( substr( $s, $pos, 1 ) eq '\\' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1301} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2614 2633-                      (   ( $pad{I1302} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 2614 2628-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'special_char'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1302} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1300} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 2634 2650-                    (   ( $pad{I1303} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\]]))\X)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1303} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1299} ) && 0 ) )-           && do { while (-            (   ( $pad{I1299} = $pos or 1 ) &&-               ## <alt>-               ## pos: 2603 2650-               (-                   ( $pad{I1300} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 2609 2633-                   (-      -                     ## <group>-                     ## pos: 2609 2614-                      (   ( $pad{I1301} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2611 2613-                       ( ( substr( $s, $pos, 1 ) eq '\\' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1301} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2614 2633-                      (   ( $pad{I1302} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 2614 2628-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'special_char'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1302} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1300} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 2634 2650-                    (   ( $pad{I1303} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\]]))\X)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1303} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1299} ) && 0 ) )) {}; $bool = 1 }-           )-           ## </quant>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token char_class-*char_class =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 2679 2721-           (-               ( $pad{I1304} = $pos or 1 )-               && (-               ## <quant>-               ## pos: 2680 2696-               (-                (   ( $pad{I1305} = $pos or 1 ) &&-                   ## <metasyntax>-                   ## pos: 2682 2690-                   do {-                        my $prior = $::_V6_PRIOR_;-                        my $match =-                               $grammar->alpha( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                        $::_V6_PRIOR_ = $prior;-                        my $bool = (!$match != 1);-                        $pos = $match->to if $bool;-                        $match;-                   }-                   ## </metasyntax>-     ||    ( ( $pos = $pad{I1305} ) && 0 ) )-               && do { while (-                (   ( $pad{I1305} = $pos or 1 ) &&-                   ## <metasyntax>-                   ## pos: 2682 2690-                   do {-                        my $prior = $::_V6_PRIOR_;-                        my $match =-                               $grammar->alpha( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                        $::_V6_PRIOR_ = $prior;-                        my $bool = (!$match != 1);-                        $pos = $match->to if $bool;-                        $match;-                   }-                   ## </metasyntax>-     ||    ( ( $pos = $pad{I1305} ) && 0 ) )) {}; $bool = 1 }-               )-               ## </quant>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1304} ) or 1 )-               &&            ## <concat>-               ## pos: 2697 2721-               (-      -                 ## <group>-                 ## pos: 2697 2703-                  (   ( $pad{I1306} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 2699 2701-                   ( ( substr( $s, $pos, 1 ) eq '[' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1306} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 2703 2718-                  (   ( $pad{I1307} = $pos or 1 ) &&-                   ## <metasyntax>-                   ## pos: 2703 2716-                   do {-                        my $prior = $::_V6_PRIOR_;-                        my $match =-                               $grammar->char_range( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                        $::_V6_PRIOR_ = $prior;-                        my $bool = (!$match != 1);-                        $pos = $match->to if $bool;-                        $match;-                   }-                   ## </metasyntax>-     ||    ( ( $pos = $pad{I1307} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 2718 2721-                  (   ( $pad{I1308} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 2718 2720-                   ( ( substr( $s, $pos, 1 ) eq ']' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1308} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token string_code-*string_code =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <quant>-           ## pos: 2771 3055-           (-            (   ( $pad{I1309} = $pos or 1 ) &&-               ## <alt>-               ## pos: 2772 3052-               (-                   ( $pad{I1310} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 2778 2802-                   (-      -                     ## <group>-                     ## pos: 2778 2783-                      (   ( $pad{I1311} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2780 2782-                       ( ( substr( $s, $pos, 1 ) eq '\\' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1311} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2783 2802-                      (   ( $pad{I1312} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 2783 2797-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'special_char'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1312} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2803 2831-                   (-      -                     ## <group>-                     ## pos: 2803 2809-                      (   ( $pad{I1313} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2805 2807-                       ( ( substr( $s, $pos, 1 ) eq chr(39) )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1313} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2809 2824-                      (   ( $pad{I1314} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2809 2819-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1314} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2824 2831-                      (   ( $pad{I1315} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2824 2826-                       ( ( substr( $s, $pos, 1 ) eq chr(39) )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1315} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2832 2864-                   (-      -                     ## <group>-                     ## pos: 2832 2838-                      (   ( $pad{I1316} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2834 2836-                       ( ( substr( $s, $pos, 1 ) eq '"' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1316} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2838 2857-                      (   ( $pad{I1317} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2838 2854-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->double_quoted( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1317} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2857 2864-                      (   ( $pad{I1318} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2857 2859-                       ( ( substr( $s, $pos, 1 ) eq '"' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1318} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2865 2903-                   (-      -                     ## <group>-                     ## pos: 2865 2871-                      (   ( $pad{I1319} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2867 2869-                       ( ( substr( $s, $pos, 1 ) eq '{' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1319} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2871 2896-                      (   ( $pad{I1320} = $pos or 1 ) &&-                       ## <alt>-                       ## pos: 2872 2893-                       (-                           ( $pad{I1321} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 2872 2888-                            (   ( $pad{I1322} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 2873 2887-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1322} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1321} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2889 2893-                            (   ( $pad{I1323} = $pos or 1 ) &&-     1 # null constant-     ||    ( ( $pos = $pad{I1323} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-     ||    ( ( $pos = $pad{I1320} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2896 2903-                      (   ( $pad{I1324} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2896 2898-                       ( ( substr( $s, $pos, 1 ) eq '}' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1324} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2904 2942-                   (-      -                     ## <group>-                     ## pos: 2904 2910-                      (   ( $pad{I1325} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2906 2908-                       ( ( substr( $s, $pos, 1 ) eq '(' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1325} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2910 2935-                      (   ( $pad{I1326} = $pos or 1 ) &&-                       ## <alt>-                       ## pos: 2911 2932-                       (-                           ( $pad{I1327} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 2911 2927-                            (   ( $pad{I1328} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 2912 2926-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1328} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1327} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2928 2932-                            (   ( $pad{I1329} = $pos or 1 ) &&-     1 # null constant-     ||    ( ( $pos = $pad{I1329} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-     ||    ( ( $pos = $pad{I1326} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2935 2942-                      (   ( $pad{I1330} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2935 2937-                       ( ( substr( $s, $pos, 1 ) eq ')' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1330} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2943 2981-                   (-      -                     ## <group>-                     ## pos: 2943 2949-                      (   ( $pad{I1331} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2945 2947-                       ( ( substr( $s, $pos, 1 ) eq '<' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1331} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2949 2974-                      (   ( $pad{I1332} = $pos or 1 ) &&-                       ## <alt>-                       ## pos: 2950 2971-                       (-                           ( $pad{I1333} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 2950 2966-                            (   ( $pad{I1334} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 2951 2965-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1334} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1333} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2967 2971-                            (   ( $pad{I1335} = $pos or 1 ) &&-     1 # null constant-     ||    ( ( $pos = $pad{I1335} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-     ||    ( ( $pos = $pad{I1332} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2974 2981-                      (   ( $pad{I1336} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2974 2976-                       ( ( substr( $s, $pos, 1 ) eq '>' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1336} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2982 3016-                   (-      -                     ## <group>-                     ## pos: 2982 3009-                      (   ( $pad{I1337} = $pos or 1 ) &&-                       ## <alt>-                       ## pos: 2985 3007-                       (-                           ( $pad{I1338} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 2985 2992-                            (   ( $pad{I1339} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 2986 2991-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1339} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1338} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2993 2997-                            (   ( $pad{I1340} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 2994 2996-                             ( ( substr( $s, $pos, 1 ) eq '>' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1340} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1338} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2998 3002-                            (   ( $pad{I1341} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 2999 3001-                             ( ( substr( $s, $pos, 1 ) eq '=' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1341} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1338} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 3003 3007-                            (   ( $pad{I1342} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 3004 3006-                             ( ( substr( $s, $pos, 1 ) eq '-' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1342} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-     ||    ( ( $pos = $pad{I1337} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 3009 3016-                      (   ( $pad{I1343} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 3009 3011-                       ( ( substr( $s, $pos, 1 ) eq '>' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1343} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 3017 3029-                    (   ( $pad{I1344} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 3019 3024-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1344} ) && 0 ) )-                   ## </group>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 3030 3052-                    (   ( $pad{I1345} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\}\)\>]))\X)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1345} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1309} ) && 0 ) )-           && do { while (-            (   ( $pad{I1309} = $pos or 1 ) &&-               ## <alt>-               ## pos: 2772 3052-               (-                   ( $pad{I1310} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 2778 2802-                   (-      -                     ## <group>-                     ## pos: 2778 2783-                      (   ( $pad{I1311} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2780 2782-                       ( ( substr( $s, $pos, 1 ) eq '\\' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1311} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2783 2802-                      (   ( $pad{I1312} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 2783 2797-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'special_char'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1312} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2803 2831-                   (-      -                     ## <group>-                     ## pos: 2803 2809-                      (   ( $pad{I1313} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2805 2807-                       ( ( substr( $s, $pos, 1 ) eq chr(39) )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1313} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2809 2824-                      (   ( $pad{I1314} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2809 2819-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1314} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2824 2831-                      (   ( $pad{I1315} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2824 2826-                       ( ( substr( $s, $pos, 1 ) eq chr(39) )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1315} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2832 2864-                   (-      -                     ## <group>-                     ## pos: 2832 2838-                      (   ( $pad{I1316} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2834 2836-                       ( ( substr( $s, $pos, 1 ) eq '"' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1316} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2838 2857-                      (   ( $pad{I1317} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 2838 2854-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->double_quoted( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1317} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2857 2864-                      (   ( $pad{I1318} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2857 2859-                       ( ( substr( $s, $pos, 1 ) eq '"' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1318} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2865 2903-                   (-      -                     ## <group>-                     ## pos: 2865 2871-                      (   ( $pad{I1319} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2867 2869-                       ( ( substr( $s, $pos, 1 ) eq '{' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1319} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2871 2896-                      (   ( $pad{I1320} = $pos or 1 ) &&-                       ## <alt>-                       ## pos: 2872 2893-                       (-                           ( $pad{I1321} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 2872 2888-                            (   ( $pad{I1322} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 2873 2887-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1322} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1321} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2889 2893-                            (   ( $pad{I1323} = $pos or 1 ) &&-     1 # null constant-     ||    ( ( $pos = $pad{I1323} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-     ||    ( ( $pos = $pad{I1320} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2896 2903-                      (   ( $pad{I1324} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2896 2898-                       ( ( substr( $s, $pos, 1 ) eq '}' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1324} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2904 2942-                   (-      -                     ## <group>-                     ## pos: 2904 2910-                      (   ( $pad{I1325} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2906 2908-                       ( ( substr( $s, $pos, 1 ) eq '(' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1325} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2910 2935-                      (   ( $pad{I1326} = $pos or 1 ) &&-                       ## <alt>-                       ## pos: 2911 2932-                       (-                           ( $pad{I1327} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 2911 2927-                            (   ( $pad{I1328} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 2912 2926-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1328} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1327} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2928 2932-                            (   ( $pad{I1329} = $pos or 1 ) &&-     1 # null constant-     ||    ( ( $pos = $pad{I1329} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-     ||    ( ( $pos = $pad{I1326} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2935 2942-                      (   ( $pad{I1330} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2935 2937-                       ( ( substr( $s, $pos, 1 ) eq ')' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1330} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2943 2981-                   (-      -                     ## <group>-                     ## pos: 2943 2949-                      (   ( $pad{I1331} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2945 2947-                       ( ( substr( $s, $pos, 1 ) eq '<' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1331} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2949 2974-                      (   ( $pad{I1332} = $pos or 1 ) &&-                       ## <alt>-                       ## pos: 2950 2971-                       (-                           ( $pad{I1333} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 2950 2966-                            (   ( $pad{I1334} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 2951 2965-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1334} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1333} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2967 2971-                            (   ( $pad{I1335} = $pos or 1 ) &&-     1 # null constant-     ||    ( ( $pos = $pad{I1335} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-     ||    ( ( $pos = $pad{I1332} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 2974 2981-                      (   ( $pad{I1336} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 2974 2976-                       ( ( substr( $s, $pos, 1 ) eq '>' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1336} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&                ## <concat>-                   ## pos: 2982 3016-                   (-      -                     ## <group>-                     ## pos: 2982 3009-                      (   ( $pad{I1337} = $pos or 1 ) &&-                       ## <alt>-                       ## pos: 2985 3007-                       (-                           ( $pad{I1338} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 2985 2992-                            (   ( $pad{I1339} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 2986 2991-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1339} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1338} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2993 2997-                            (   ( $pad{I1340} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 2994 2996-                             ( ( substr( $s, $pos, 1 ) eq '>' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1340} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1338} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 2998 3002-                            (   ( $pad{I1341} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 2999 3001-                             ( ( substr( $s, $pos, 1 ) eq '=' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1341} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1338} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 3003 3007-                            (   ( $pad{I1342} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 3004 3006-                             ( ( substr( $s, $pos, 1 ) eq '-' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1342} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-     ||    ( ( $pos = $pad{I1337} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 3009 3016-                      (   ( $pad{I1343} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 3009 3011-                       ( ( substr( $s, $pos, 1 ) eq '>' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1343} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 3017 3029-                    (   ( $pad{I1344} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 3019 3024-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1344} ) && 0 ) )-                   ## </group>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1310} ) or 1 )-                   &&   -                   ## <group>-                   ## pos: 3030 3052-                    (   ( $pad{I1345} = $pos or 1 ) &&-                     ## <perl5>-                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\}\)\>]))\X)/ )-                         ? ( $pos += length( $1 ) or 1 )-                         : 0-                     )-                     ## </perl5>-     ||    ( ( $pos = $pad{I1345} ) && 0 ) )-                   ## </group>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1309} ) && 0 ) )) {}; $bool = 1 }-           )-           ## </quant>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token parsed_code-*parsed_code =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 3141 3187-           (-      -             ## <group>-             ## pos: 3141 3160-              (   ( $pad{I1346} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 3141 3155-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1346} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 3160 3187-              (   ( $pad{I1347} = $pos or 1 ) &&-               ## <closure>-               ## pos: 3160 3186-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return '{' . $_[0] . '}'; }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1347} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token named_capture_body-*named_capture_body =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 3221 3712-           (-               ( $pad{I1348} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 3222 3354-               (-      -                 ## <group>-                 ## pos: 3222 3227-                  (   ( $pad{I1349} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 3223 3225-                   ( ( substr( $s, $pos, 1 ) eq '(' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1349} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3227 3241-                  (   ( $pad{I1350} = $pos or 1 ) &&-                   ## <named_capture>-                   ## pos: 3227 3233-                   do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                               $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                   ## </named_capture>-     ||    ( ( $pos = $pad{I1350} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3241 3245-                  (   ( $pad{I1351} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 3241 3243-                   ( ( substr( $s, $pos, 1 ) eq ')' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1351} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3245 3354-                  (   ( $pad{I1352} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 3245 3349-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { capturing_group => ${ $_[0]->{qw(rule)} },-                                  _pos => [ $_[0]->from, $_[0]->to ], }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1352} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1348} ) or 1 )-               &&            ## <concat>-               ## pos: 3355 3402-               (-      -                 ## <group>-                 ## pos: 3355 3360-                  (   ( $pad{I1353} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 3356 3358-                   ( ( substr( $s, $pos, 1 ) eq '[' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1353} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3360 3374-                  (   ( $pad{I1354} = $pos or 1 ) &&-                   ## <named_capture>-                   ## pos: 3360 3366-                   do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                               $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                   ## </named_capture>-     ||    ( ( $pos = $pad{I1354} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3374 3378-                  (   ( $pad{I1355} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 3374 3376-                   ( ( substr( $s, $pos, 1 ) eq ']' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1355} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3378 3402-                  (   ( $pad{I1356} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 3378 3397-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return ${ $_[0]->{qw(rule)} } }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1356} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1348} ) or 1 )-               &&            ## <concat>-               ## pos: 3403 3464-               (-      -                 ## <group>-                 ## pos: 3403 3408-                  (   ( $pad{I1357} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 3404 3406-                   ( ( substr( $s, $pos, 1 ) eq '<' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1357} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3408 3428-                  (   ( $pad{I1358} = $pos or 1 ) &&-                   ## <named_capture>-                   ## pos: 3408 3426-                   do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                               $grammar->parse_metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'parse_metasyntax'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                   ## </named_capture>-     ||    ( ( $pos = $pad{I1358} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3428 3464-                  (   ( $pad{I1359} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 3428 3459-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return ${ $_[0]->{qw(parse_metasyntax)} } }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1359} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1348} ) or 1 )-               &&            ## <concat>-               ## pos: 3465 3678-               (-      -                 ## <group>-                 ## pos: 3465 3470-                  (   ( $pad{I1360} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 3466 3468-                   ( ( substr( $s, $pos, 1 ) eq chr(39) )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1360} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3470 3484-                  (   ( $pad{I1361} = $pos or 1 ) &&-                   ## <metasyntax>-                   ## pos: 3470 3480-                   do {-                        my $prior = $::_V6_PRIOR_;-                        my $match =-                               $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                        $::_V6_PRIOR_ = $prior;-                        my $bool = (!$match != 1);-                        $pos = $match->to if $bool;-                        $match;-                   }-                   ## </metasyntax>-     ||    ( ( $pos = $pad{I1361} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3484 3495-                  (   ( $pad{I1362} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 3484 3486-                   ( ( substr( $s, $pos, 1 ) eq chr(39) )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1362} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 3495 3678-                  (   ( $pad{I1363} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 3495 3673-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { metasyntax => {-                            metasyntax => "${$_[0]}",-                            },-                       _pos => [ $_[0]->from, $_[0]->to ],-                    };-            }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1363} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1348} ) or 1 )-               &&   -               ## <group>-               ## pos: 3679 3712-                (   ( $pad{I1364} = $pos or 1 ) &&-                 ## <closure>-                 ## pos: 3680 3711-                 do { -                   local $::_V6_SUCCEED = 1;-                   $::_V6_MATCH_ = $m;-                   sub { die "invalid alias syntax"; }->( $m );-                   1;-                 }-                 ## </closure>-     ||    ( ( $pos = $pad{I1364} ) && 0 ) )-               ## </group>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token parse_metasyntax-*parse_metasyntax =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 3748 6621-           (-      -             ## <group>-             ## pos: 3748 3792-              (   ( $pad{I1365} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 3748 3787-               do{-                    my $from = $pos;-                    my $bool =                    ## <alt>-                       ## pos: 3764 3786-                       (-                           ( $pad{I1366} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 3764 3769-                            (   ( $pad{I1367} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 3765 3768-                             ( ( substr( $s, $pos, 1 ) eq '!' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1367} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1366} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 3770 3775-                            (   ( $pad{I1368} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 3771 3774-                             ( ( substr( $s, $pos, 1 ) eq '?' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1368} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1366} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 3776 3781-                            (   ( $pad{I1369} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 3777 3780-                             ( ( substr( $s, $pos, 1 ) eq '.' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1369} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1366} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 3782 3786-                            (   ( $pad{I1370} = $pos or 1 ) &&-     1 # null constant-     ||    ( ( $pos = $pad{I1370} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-    ;-                    my $match = Pugs::Runtime::Match->new(-                        { str => \$s, from => \$from, match => [], named => {}, bool => \1, to => \(0+$pos), capture => undef }-                    ); $named{'modifier'} = $match;-                    $bool-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1365} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 3792 6621-              (   ( $pad{I1371} = $pos or 1 ) &&-               ## <alt>-               ## pos: 3793 6619-               (-                   ( $pad{I1372} = $pos or 1 )-                   && (-                   ## <concat>-                   ## pos: 3793 4011-                   (-      -                     ## <group>-                     ## pos: 3793 3807-                      (   ( $pad{I1373} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 3802 3805-                       ( ( substr( $s, $pos, 1 ) eq '{' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1373} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 3807 3822-                      (   ( $pad{I1374} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 3807 3820-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->parsed_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'parsed_code'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1374} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 3822 3835-                      (   ( $pad{I1375} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 3822 3826-                       ( ( substr( $s, $pos, 2 ) eq '}>' )-                           ? ( $pos += 2 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1375} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 3835 4011-                      (   ( $pad{I1376} = $pos or 1 ) &&-                       ## <closure>-                       ## pos: 3835 4006-                       do {-                         local $::_V6_SUCCEED = 1;-                         $::_V6_MATCH_ = $m;-                         $m->data->{capture} = \( sub { return { closure => {-                closure  => ${ $_[0]->{qw(parsed_code)} },-                modifier => ${ $_[0]->{qw(modifier)} },-            },-                _pos => [ $_[0]->from - 1, $_[0]->to ],-            } }->( $m ) ); -                         $bool = $::_V6_SUCCEED;-                         $::_V6_MATCH_ = $m if $bool; -                         return $m if $bool; -                       }-                       ## </closure>-     ||    ( ( $pos = $pad{I1376} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1372} ) or 1 )-                   &&                ## <concat>-                   ## pos: 4012 4505-                   (-      -                     ## <group>-                     ## pos: 4012 4042-                      (   ( $pad{I1377} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 4021 4033-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'char_class'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1377} ) && 0 ) )-                     ## </group>-    -                   &&-                     ## <quant>-                     ## pos: 4042 4075-                     (-                      (   ( $pad{I1378} = $pos or 1 ) &&-    -                         ## <capture>-                         do{-                             my $hash = do {-                               my $bool = 1;-                               my $from = $pos;-                               my @match;-                               my %named;-                               $bool = 0 unless-                                 ## <concat>-                                 ## pos: 4043 4064-                                 (-      -                                   ## <group>-                                   ## pos: 4043 4051-                                    (   ( $pad{I1379} = $pos or 1 ) &&-                                     ## <perl5>-                                     ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )-                                         ? ( $pos += length( $1 ) or 1 )-                                         : 0-                                     )-                                     ## </perl5>-     ||    ( ( $pos = $pad{I1379} ) && 0 ) )-                                   ## </group>-    -                                 &&-      -                                   ## <group>-                                   ## pos: 4051 4064-                                    (   ( $pad{I1380} = $pos or 1 ) &&-                                     ## <named_capture>-                                     ## pos: 4051 4063-                                     do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                                 $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'char_class'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                                     ## </named_capture>-     ||    ( ( $pos = $pad{I1380} ) && 0 ) )-                                   ## </group>-    -                                 )-                                 ## </concat>-    ;-                               { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                             };-                             my $bool = ${$hash->{'bool'}};-                             if ( $bool ) {-                                 push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );-                             }-                             $bool;-                         }-                         ## </capture>-     ||    ( ( $pos = $pad{I1378} ) && 0 ) )-                     && do { while (-                      (   ( $pad{I1378} = $pos or 1 ) &&-    -                         ## <capture>-                         do{-                             my $hash = do {-                               my $bool = 1;-                               my $from = $pos;-                               my @match;-                               my %named;-                               $bool = 0 unless-                                 ## <concat>-                                 ## pos: 4043 4064-                                 (-      -                                   ## <group>-                                   ## pos: 4043 4051-                                    (   ( $pad{I1379} = $pos or 1 ) &&-                                     ## <perl5>-                                     ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )-                                         ? ( $pos += length( $1 ) or 1 )-                                         : 0-                                     )-                                     ## </perl5>-     ||    ( ( $pos = $pad{I1379} ) && 0 ) )-                                   ## </group>-    -                                 &&-      -                                   ## <group>-                                   ## pos: 4051 4064-                                    (   ( $pad{I1380} = $pos or 1 ) &&-                                     ## <named_capture>-                                     ## pos: 4051 4063-                                     do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                                 $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'char_class'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                                     ## </named_capture>-     ||    ( ( $pos = $pad{I1380} ) && 0 ) )-                                   ## </group>-    -                                 )-                                 ## </concat>-    ;-                               { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                             };-                             my $bool = ${$hash->{'bool'}};-                             if ( $bool ) {-                                 push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );-                             }-                             $bool;-                         }-                         ## </capture>-     ||    ( ( $pos = $pad{I1378} ) && 0 ) )) {}; $bool = 1 }-                     )-                     ## </quant>-    -                   &&-      -                     ## <group>-                     ## pos: 4075 4086-                      (   ( $pad{I1381} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 4075 4077-                       ( ( substr( $s, $pos, 1 ) eq '>' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1381} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 4086 4505-                      (   ( $pad{I1382} = $pos or 1 ) &&-                       ## <closure>-                       ## pos: 4086 4500-                       do {-                         local $::_V6_SUCCEED = 1;-                         $::_V6_MATCH_ = $m;-                         $m->data->{capture} = \( sub {-                if ( ${ $_[0]->{qw(modifier)} } eq '!' ) {-                  return {-                    negate => {-                      char_class => [-                        '+' . $_[0]->{qw(char_class)},-                        @{$_[0]->[0]},   # TODO - stringify-                  ] } }-                }-                return {-                  char_class => [-                    '+' . $_[0]->{qw(char_class)},-                    @{$_[0]->[0]},   # TODO - stringify-                ] }-            }->( $m ) ); -                         $bool = $::_V6_SUCCEED;-                         $::_V6_MATCH_ = $m if $bool; -                         return $m if $bool; -                       }-                       ## </closure>-     ||    ( ( $pos = $pad{I1382} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1372} ) or 1 )-                   &&                ## <concat>-                   ## pos: 4506 6394-                   (-      -                     ## <group>-                     ## pos: 4506 4531-                      (   ( $pad{I1383} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 4515 4522-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->ident( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'ident'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1383} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 4531 6394-                      (   ( $pad{I1384} = $pos or 1 ) &&-                       ## <alt>-                       ## pos: 4532 6388-                       (-                           ( $pad{I1385} = $pos or 1 )-                           && (-                           ## <concat>-                           ## pos: 4532 5149-                           (-      -                             ## <group>-                             ## pos: 4532 4549-                              (   ( $pad{I1386} = $pos or 1 ) &&-                               ## <metasyntax>-                               ## pos: 4543 4548-                               do {-                                    my $prior = $::_V6_PRIOR_;-                                    my $match =-                                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                    $::_V6_PRIOR_ = $prior;-                                    my $bool = (!$match != 1);-                                    $pos = $match->to if $bool;-                                    $match;-                               }-                               ## </metasyntax>-     ||    ( ( $pos = $pad{I1386} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 4549 4556-                              (   ( $pad{I1387} = $pos or 1 ) &&-                               ## <named_capture>-                               ## pos: 4549 4555-                               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                               ## </named_capture>-     ||    ( ( $pos = $pad{I1387} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 4556 4569-                              (   ( $pad{I1388} = $pos or 1 ) &&-    -                               ## <constant>-                               ## pos: 4556 4558-                               ( ( substr( $s, $pos, 1 ) eq '>' )-                                   ? ( $pos += 1 or 1 )-                                   : 0-                               )-                               ## </constant>-     ||    ( ( $pos = $pad{I1388} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 4569 5149-                              (   ( $pad{I1389} = $pos or 1 ) &&-                               ## <closure>-                               ## pos: 4569 5140-                               do {-                                 local $::_V6_SUCCEED = 1;-                                 $::_V6_MATCH_ = $m;-                                 $m->data->{capture} = \( sub {-                if  ( ${ $_[0]->{qw(ident)} } eq 'before'-                   || ${ $_[0]->{qw(ident)} } eq 'after'-                    ) {-                    return { ${ $_[0]->{qw(ident)} } => {-                        rule => ${ $_[0]->{qw(rule)} }, modifier => ${ $_[0]->{qw(modifier)} },-                         }, _pos => [ $_[0]->from - 1, $_[0]->to ], }-                }-                return { metasyntax => {-                            metasyntax => ${ $_[0]->{qw(ident)} },-                            rule       => ${ $_[0]->{qw(rule)} },-                            modifier   => ${ $_[0]->{qw(modifier)} },-                        },-                        _pos => [ $_[0]->from - 1, $_[0]->to ],-                    }-              }->( $m ) ); -                                 $bool = $::_V6_SUCCEED;-                                 $::_V6_MATCH_ = $m if $bool; -                                 return $m if $bool; -                               }-                               ## </closure>-     ||    ( ( $pos = $pad{I1389} ) && 0 ) )-                             ## </group>-    -                           )-                           ## </concat>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1385} ) or 1 )-                           &&                        ## <concat>-                           ## pos: 5150 6129-                           (-      -                             ## <group>-                             ## pos: 5150 5165-                              (   ( $pad{I1390} = $pos or 1 ) &&-    -                               ## <constant>-                               ## pos: 5161 5164-                               ( ( substr( $s, $pos, 1 ) eq ':' )-                                   ? ( $pos += 1 or 1 )-                                   : 0-                               )-                               ## </constant>-     ||    ( ( $pos = $pad{I1390} ) && 0 ) )-                             ## </group>-    -                           &&-                             ## <quant>-                             ## pos: 5165 5182-                             (-                              (   ( $pad{I1391} = $pos or 1 ) &&-                                 ## <metasyntax>-                                 ## pos: 5165 5170-                                 do {-                                      my $prior = $::_V6_PRIOR_;-                                      my $match =-                                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                      $::_V6_PRIOR_ = $prior;-                                      my $bool = (!$match != 1);-                                      $pos = $match->to if $bool;-                                      $match;-                                 }-                                 ## </metasyntax>-     ||    ( ( $pos = $pad{I1391} ) && 0 ) )-                             || ( $bool = 1 )-                             )-                             ## </quant>-    -                           &&-      -                             ## <group>-                             ## pos: 5182 5352-                              (   ( $pad{I1392} = $pos or 1 ) &&-                               ## <named_capture>-                               ## pos: 5182 5341-                               do{-                    my $from = $pos;-                    my $bool =                                    ## <quant>-                                       ## pos: 5193 5340-                                       do { while (-                                        (   ( $pad{I1393} = $pos or 1 ) &&-                                           ## <alt>-                                           ## pos: 5207 5327-                                           (-                                               ( $pad{I1394} = $pos or 1 )-                                               && (-                                               ## <concat>-                                               ## pos: 5221 5253-                                               (-      -                                                 ## <group>-                                                 ## pos: 5221 5226-                                                  (   ( $pad{I1395} = $pos or 1 ) &&-    -                                                   ## <constant>-                                                   ## pos: 5223 5225-                                                   ( ( substr( $s, $pos, 1 ) eq '\\' )-                                                       ? ( $pos += 1 or 1 )-                                                       : 0-                                                   )-                                                   ## </constant>-     ||    ( ( $pos = $pad{I1395} ) && 0 ) )-                                                 ## </group>-    -                                               &&-      -                                                 ## <group>-                                                 ## pos: 5226 5253-                                                  (   ( $pad{I1396} = $pos or 1 ) &&-                                                   ## <named_capture>-                                                   ## pos: 5226 5240-                                                   do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                                               $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'special_char'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                                                   ## </named_capture>-     ||    ( ( $pos = $pad{I1396} ) && 0 ) )-                                                 ## </group>-    -                                               )-                                               ## </concat>-    -                                               )-                                             || (-                                               ( ( $bool = 1 ) && ( $pos = $pad{I1394} ) or 1 )-                                               &&   -                                               ## <group>-                                               ## pos: 5254 5302-                                                (   ( $pad{I1397} = $pos or 1 ) &&-                                                ## <metasyntax>-                                                 ## pos: 5256 5289-                                                 do{-                    my $match = -              ## <variable>-              ## pos: 5256 5289-              do {-                our $I1398;-                our $I1398_sizes;-                unless ( $I1398 ) {-                    my $hash = \%Pugs::Grammar::Rule::variables;-                    my %sizes = map { length($_) => 1 } keys %$hash;-                    $I1398_sizes = [ sort { $b <=> $a } keys %sizes ];-                    $I1398 = $hash;-                }-                my $match = 0;-                my $key;-                for ( @$I1398_sizes ) {-                    $key = ( $pos <= length( $s )-                                ? substr( $s, $pos, $_ )-                                : '' );-                    if ( exists $I1398->{$key} ) {-                        #$named{KEY} = $key;-                        #$::_V6_MATCH_ = $m;-                        #print "m: ", Dumper( $::_V6_MATCH_->data )-                        #    if ( $key eq 'until' );-                        $match = Pugs::Runtime::Regex::preprocess_hash( $I1398, $key )->( $s, $grammar, { p => ( $pos + $_ ), positionals => [ ], args => { KEY => $key } }, undef );-                        last if $match;-                    }-                }-                if ( $match ) {-                    $pos = $match->to;-                    #print "match: $key at $pos = ", Dumper( $match->data );-                    $bool = 1;-                }; # else { $bool = 0 }-                $match;-              }-              ## </variable>-    ;-                    if ( $match ) { push @{$named{'Pugs::Grammar::Rule::variables'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                                                ## </metasyntax>-     ||    ( ( $pos = $pad{I1397} ) && 0 ) )-                                               ## </group>-    -                                               )-                                             || (-                                               ( ( $bool = 1 ) && ( $pos = $pad{I1394} ) or 1 )-                                               &&   -                                               ## <group>-                                               ## pos: 5303 5327-                                                (   ( $pad{I1399} = $pos or 1 ) &&-                                                 ## <perl5>-                                                 ( ( substr( $s, $pos ) =~ m/^((?:(?![\>]))\X)/ )-                                                     ? ( $pos += length( $1 ) or 1 )-                                                     : 0-                                                 )-                                                 ## </perl5>-     ||    ( ( $pos = $pad{I1399} ) && 0 ) )-                                               ## </group>-    -                                             )-                                           )-                                           ## </alt>-     ||    ( ( $pos = $pad{I1393} ) && 0 ) )) {}; $bool = 1 }-                                       ## </quant>-    ;-                    my $match = Pugs::Runtime::Match->new(-                        { str => \$s, from => \$from, match => [], named => {}, bool => \1, to => \(0+$pos), capture => undef }-                    ); $named{'str'} = $match;-                    $bool-                }-                               ## </named_capture>-     ||    ( ( $pos = $pad{I1392} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 5352 5365-                              (   ( $pad{I1400} = $pos or 1 ) &&-    -                               ## <constant>-                               ## pos: 5352 5354-                               ( ( substr( $s, $pos, 1 ) eq '>' )-                                   ? ( $pos += 1 or 1 )-                                   : 0-                               )-                               ## </constant>-     ||    ( ( $pos = $pad{I1400} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 5365 6129-                              (   ( $pad{I1401} = $pos or 1 ) &&-                               ## <closure>-                               ## pos: 5365 6120-                               do {-                                 local $::_V6_SUCCEED = 1;-                                 $::_V6_MATCH_ = $m;-                                 $m->data->{capture} = \( sub {-                if  ( ${ $_[0]->{qw(ident)} } eq 'before'-                   || ${ $_[0]->{qw(ident)} } eq 'after'-                    ) {-                    return { ${ $_[0]->{qw(ident)} } => {-                        rule     => { metasyntax => {-                                    metasyntax => '\'' . ${ $_[0]->{qw(str)} } . '\'',-                                },-                            _pos => [ $_[0]->{qw(str)}->from, $_[0]->{qw(str)}->to ],                   },-                        modifier => ${ $_[0]->{qw(modifier)} },-                        _pos => [ $_[0]->from - 1, $_[0]->to ],-                    } }-                }-                return { metasyntax => {-                    metasyntax => ${ $_[0]->{qw(ident)} },-                    string   => ${ $_[0]->{qw(str)} },-                    modifier => ${ $_[0]->{qw(modifier)} },-                },-                    _pos => [ $_[0]->from - 1, $_[0]->to ],-                }-              }->( $m ) ); -                                 $bool = $::_V6_SUCCEED;-                                 $::_V6_MATCH_ = $m if $bool; -                                 return $m if $bool; -                               }-                               ## </closure>-     ||    ( ( $pos = $pad{I1401} ) && 0 ) )-                             ## </group>-    -                           )-                           ## </concat>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1385} ) or 1 )-                           &&                        ## <concat>-                           ## pos: 6130 6388-                           (-      -                             ## <group>-                             ## pos: 6130 6145-                              (   ( $pad{I1402} = $pos or 1 ) &&-    -                               ## <constant>-                               ## pos: 6141 6143-                               ( ( substr( $s, $pos, 1 ) eq '(' )-                                   ? ( $pos += 1 or 1 )-                                   : 0-                               )-                               ## </constant>-     ||    ( ( $pos = $pad{I1402} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 6145 6160-                              (   ( $pad{I1403} = $pos or 1 ) &&-                               ## <named_capture>-                               ## pos: 6145 6158-                               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                           $grammar->parsed_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'parsed_code'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                               ## </named_capture>-     ||    ( ( $pos = $pad{I1403} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 6160 6163-                              (   ( $pad{I1404} = $pos or 1 ) &&-    -                               ## <constant>-                               ## pos: 6160 6162-                               ( ( substr( $s, $pos, 1 ) eq ')' )-                                   ? ( $pos += 1 or 1 )-                                   : 0-                               )-                               ## </constant>-     ||    ( ( $pos = $pad{I1404} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 6163 6176-                              (   ( $pad{I1405} = $pos or 1 ) &&-    -                               ## <constant>-                               ## pos: 6163 6165-                               ( ( substr( $s, $pos, 1 ) eq '>' )-                                   ? ( $pos += 1 or 1 )-                                   : 0-                               )-                               ## </constant>-     ||    ( ( $pos = $pad{I1405} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 6176 6388-                              (   ( $pad{I1406} = $pos or 1 ) &&-                               ## <closure>-                               ## pos: 6176 6379-                               do {-                                 local $::_V6_SUCCEED = 1;-                                 $::_V6_MATCH_ = $m;-                                 $m->data->{capture} = \( sub { return { call => {-                  method   => ${ $_[0]->{qw(ident)} },-                  params   => ${ $_[0]->{qw(parsed_code)} },-                  modifier => ${ $_[0]->{qw(modifier)} },-              },-                  _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); -                                 $bool = $::_V6_SUCCEED;-                                 $::_V6_MATCH_ = $m if $bool; -                                 return $m if $bool; -                               }-                               ## </closure>-     ||    ( ( $pos = $pad{I1406} ) && 0 ) )-                             ## </group>-    -                           )-                           ## </concat>-    -                         )-                       )-                       ## </alt>-     ||    ( ( $pos = $pad{I1384} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                   )-                 || (-                   ( ( $bool = 1 ) && ( $pos = $pad{I1372} ) or 1 )-                   &&                ## <concat>-                   ## pos: 6395 6619-                   (-      -                     ## <group>-                     ## pos: 6395 6418-                      (   ( $pad{I1407} = $pos or 1 ) &&-                       ## <named_capture>-                       ## pos: 6404 6416-                       do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                   $grammar->metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'metasyntax'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                       ## </named_capture>-     ||    ( ( $pos = $pad{I1407} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 6418 6429-                      (   ( $pad{I1408} = $pos or 1 ) &&-    -                       ## <constant>-                       ## pos: 6418 6420-                       ( ( substr( $s, $pos, 1 ) eq '>' )-                           ? ( $pos += 1 or 1 )-                           : 0-                       )-                       ## </constant>-     ||    ( ( $pos = $pad{I1408} ) && 0 ) )-                     ## </group>-    -                   &&-      -                     ## <group>-                     ## pos: 6429 6619-                      (   ( $pad{I1409} = $pos or 1 ) &&-                       ## <closure>-                       ## pos: 6429 6614-                       do {-                         local $::_V6_SUCCEED = 1;-                         $::_V6_MATCH_ = $m;-                         $m->data->{capture} = \( sub { return { metasyntax => {-                  metasyntax => "${ $_[0]->{qw(metasyntax)} }",-                  modifier   => ${ $_[0]->{qw(modifier)} },-            },-                  _pos => [ $_[0]->from - 1, $_[0]->to ],-            } }->( $m ) ); -                         $bool = $::_V6_SUCCEED;-                         $::_V6_MATCH_ = $m if $bool; -                         return $m if $bool; -                       }-                       ## </closure>-     ||    ( ( $pos = $pad{I1409} ) && 0 ) )-                     ## </group>-    -                   )-                   ## </concat>-    -                 )-               )-               ## </alt>-     ||    ( ( $pos = $pad{I1371} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token var1-*var1 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 6731 6833-           (-      -             ## <group>-             ## pos: 6731 6739-              (   ( $pad{I1410} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 6731 6738-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ident( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'ident'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1410} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 6739 6750-              (   ( $pad{I1411} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 6739 6741-               ( ( substr( $s, $pos, 1 ) eq '>' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1411} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 6750 6833-              (   ( $pad{I1412} = $pos or 1 ) &&-               ## <closure>-               ## pos: 6750 6832-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { match_variable => '$' . $_[0]->{ident}, _pos => [$_[0]->from - 2, $_[0]->to], }; }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1412} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $variables{'$<'} = sub { var1($_[1], $_[0], $_[2], $_[3]) }; --# token var2-*var2 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 6925 7149-           (-               ( $pad{I1413} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 6925 7023-               (-                 ## <quant>-                 ## pos: 6925 6943-                 (-                  (   ( $pad{I1414} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 6925 6933-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1414} ) && 0 ) )-                 && do { while (-                  (   ( $pad{I1414} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 6925 6933-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1414} ) && 0 ) )) {}; $bool = 1 }-                 )-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 6943 7023-                  (   ( $pad{I1415} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 6943 7018-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { match_variable => '$' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to], }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1415} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1413} ) or 1 )-               &&            ## <concat>-               ## pos: 7024 7149-               (-                 ## <quant>-                 ## pos: 7024 7045-                 (-                  (   ( $pad{I1416} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 7033 7035-                     ( ( substr( $s, $pos, 1 ) eq '^' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1416} ) && 0 ) )-                 || ( $bool = 1 )-                 )-                 ## </quant>-    -               &&-                 ## <quant>-                 ## pos: 7045 7079-                 (-                  (   ( $pad{I1417} = $pos or 1 ) &&-                     ## <alt>-                     ## pos: 7046 7068-                     (-                         ( $pad{I1418} = $pos or 1 )-                         && (-      -                         ## <group>-                         ## pos: 7046 7056-                          (   ( $pad{I1419} = $pos or 1 ) &&-                           ## <metasyntax>-                           ## pos: 7047 7055-                           do {-                                my $prior = $::_V6_PRIOR_;-                                my $match =-                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                $::_V6_PRIOR_ = $prior;-                                my $bool = (!$match != 1);-                                $pos = $match->to if $bool;-                                $match;-                           }-                           ## </metasyntax>-     ||    ( ( $pos = $pad{I1419} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1418} ) or 1 )-                         &&   -                         ## <group>-                         ## pos: 7057 7060-                          (   ( $pad{I1420} = $pos or 1 ) &&-    -                           ## <constant>-                           ## pos: 7058 7059-                           ( ( substr( $s, $pos, 1 ) eq '_' )-                               ? ( $pos += 1 or 1 )-                               : 0-                           )-                           ## </constant>-     ||    ( ( $pos = $pad{I1420} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1418} ) or 1 )-                         &&                      ## <concat>-                         ## pos: 7061 7068-                         (-      -                           ## <group>-                           ## pos: 7061 7065-                            (   ( $pad{I1421} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7062 7064-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1421} ) && 0 ) )-                           ## </group>-    -                         &&-      -                           ## <group>-                           ## pos: 7065 7068-                            (   ( $pad{I1422} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7065 7067-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1422} ) && 0 ) )-                           ## </group>-    -                         )-                         ## </concat>-    -                       )-                     )-                     ## </alt>-     ||    ( ( $pos = $pad{I1417} ) && 0 ) )-                 && do { while (-                  (   ( $pad{I1417} = $pos or 1 ) &&-                     ## <alt>-                     ## pos: 7046 7068-                     (-                         ( $pad{I1418} = $pos or 1 )-                         && (-      -                         ## <group>-                         ## pos: 7046 7056-                          (   ( $pad{I1419} = $pos or 1 ) &&-                           ## <metasyntax>-                           ## pos: 7047 7055-                           do {-                                my $prior = $::_V6_PRIOR_;-                                my $match =-                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                $::_V6_PRIOR_ = $prior;-                                my $bool = (!$match != 1);-                                $pos = $match->to if $bool;-                                $match;-                           }-                           ## </metasyntax>-     ||    ( ( $pos = $pad{I1419} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1418} ) or 1 )-                         &&   -                         ## <group>-                         ## pos: 7057 7060-                          (   ( $pad{I1420} = $pos or 1 ) &&-    -                           ## <constant>-                           ## pos: 7058 7059-                           ( ( substr( $s, $pos, 1 ) eq '_' )-                               ? ( $pos += 1 or 1 )-                               : 0-                           )-                           ## </constant>-     ||    ( ( $pos = $pad{I1420} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1418} ) or 1 )-                         &&                      ## <concat>-                         ## pos: 7061 7068-                         (-      -                           ## <group>-                           ## pos: 7061 7065-                            (   ( $pad{I1421} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7062 7064-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1421} ) && 0 ) )-                           ## </group>-    -                         &&-      -                           ## <group>-                           ## pos: 7065 7068-                            (   ( $pad{I1422} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7065 7067-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1422} ) && 0 ) )-                           ## </group>-    -                         )-                         ## </concat>-    -                       )-                     )-                     ## </alt>-     ||    ( ( $pos = $pad{I1417} ) && 0 ) )) {}; $bool = 1 }-                 )-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 7079 7149-                  (   ( $pad{I1423} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 7079 7148-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { variable => '$' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to], }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1423} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $variables{'$'} = sub { var2($_[1], $_[0], $_[2], $_[3]) }; --# token var3-*var3 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 7240 7462-           (-               ( $pad{I1424} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 7240 7337-               (-                 ## <quant>-                 ## pos: 7240 7258-                 (-                  (   ( $pad{I1425} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 7240 7248-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1425} ) && 0 ) )-                 && do { while (-                  (   ( $pad{I1425} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 7240 7248-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1425} ) && 0 ) )) {}; $bool = 1 }-                 )-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 7258 7337-                  (   ( $pad{I1426} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 7258 7332-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { match_variable => '@' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1426} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1424} ) or 1 )-               &&            ## <concat>-               ## pos: 7338 7462-               (-                 ## <quant>-                 ## pos: 7338 7359-                 (-                  (   ( $pad{I1427} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 7347 7349-                     ( ( substr( $s, $pos, 1 ) eq '^' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1427} ) && 0 ) )-                 || ( $bool = 1 )-                 )-                 ## </quant>-    -               &&-                 ## <quant>-                 ## pos: 7359 7393-                 (-                  (   ( $pad{I1428} = $pos or 1 ) &&-                     ## <alt>-                     ## pos: 7360 7382-                     (-                         ( $pad{I1429} = $pos or 1 )-                         && (-      -                         ## <group>-                         ## pos: 7360 7370-                          (   ( $pad{I1430} = $pos or 1 ) &&-                           ## <metasyntax>-                           ## pos: 7361 7369-                           do {-                                my $prior = $::_V6_PRIOR_;-                                my $match =-                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                $::_V6_PRIOR_ = $prior;-                                my $bool = (!$match != 1);-                                $pos = $match->to if $bool;-                                $match;-                           }-                           ## </metasyntax>-     ||    ( ( $pos = $pad{I1430} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1429} ) or 1 )-                         &&   -                         ## <group>-                         ## pos: 7371 7374-                          (   ( $pad{I1431} = $pos or 1 ) &&-    -                           ## <constant>-                           ## pos: 7372 7373-                           ( ( substr( $s, $pos, 1 ) eq '_' )-                               ? ( $pos += 1 or 1 )-                               : 0-                           )-                           ## </constant>-     ||    ( ( $pos = $pad{I1431} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1429} ) or 1 )-                         &&                      ## <concat>-                         ## pos: 7375 7382-                         (-      -                           ## <group>-                           ## pos: 7375 7379-                            (   ( $pad{I1432} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7376 7378-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1432} ) && 0 ) )-                           ## </group>-    -                         &&-      -                           ## <group>-                           ## pos: 7379 7382-                            (   ( $pad{I1433} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7379 7381-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1433} ) && 0 ) )-                           ## </group>-    -                         )-                         ## </concat>-    -                       )-                     )-                     ## </alt>-     ||    ( ( $pos = $pad{I1428} ) && 0 ) )-                 && do { while (-                  (   ( $pad{I1428} = $pos or 1 ) &&-                     ## <alt>-                     ## pos: 7360 7382-                     (-                         ( $pad{I1429} = $pos or 1 )-                         && (-      -                         ## <group>-                         ## pos: 7360 7370-                          (   ( $pad{I1430} = $pos or 1 ) &&-                           ## <metasyntax>-                           ## pos: 7361 7369-                           do {-                                my $prior = $::_V6_PRIOR_;-                                my $match =-                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                $::_V6_PRIOR_ = $prior;-                                my $bool = (!$match != 1);-                                $pos = $match->to if $bool;-                                $match;-                           }-                           ## </metasyntax>-     ||    ( ( $pos = $pad{I1430} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1429} ) or 1 )-                         &&   -                         ## <group>-                         ## pos: 7371 7374-                          (   ( $pad{I1431} = $pos or 1 ) &&-    -                           ## <constant>-                           ## pos: 7372 7373-                           ( ( substr( $s, $pos, 1 ) eq '_' )-                               ? ( $pos += 1 or 1 )-                               : 0-                           )-                           ## </constant>-     ||    ( ( $pos = $pad{I1431} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1429} ) or 1 )-                         &&                      ## <concat>-                         ## pos: 7375 7382-                         (-      -                           ## <group>-                           ## pos: 7375 7379-                            (   ( $pad{I1432} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7376 7378-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1432} ) && 0 ) )-                           ## </group>-    -                         &&-      -                           ## <group>-                           ## pos: 7379 7382-                            (   ( $pad{I1433} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7379 7381-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1433} ) && 0 ) )-                           ## </group>-    -                         )-                         ## </concat>-    -                       )-                     )-                     ## </alt>-     ||    ( ( $pos = $pad{I1428} ) && 0 ) )) {}; $bool = 1 }-                 )-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 7393 7462-                  (   ( $pad{I1434} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 7393 7461-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { variable => '@' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1434} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $variables{'@'} = sub { var3($_[1], $_[0], $_[2], $_[3]) }; --# token var4-*var4 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 7553 7773-           (-               ( $pad{I1435} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 7553 7649-               (-                 ## <quant>-                 ## pos: 7553 7571-                 (-                  (   ( $pad{I1436} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 7553 7561-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1436} ) && 0 ) )-                 && do { while (-                  (   ( $pad{I1436} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 7553 7561-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1436} ) && 0 ) )) {}; $bool = 1 }-                 )-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 7571 7649-                  (   ( $pad{I1437} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 7571 7644-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { match_variable => '%' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] } }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1437} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1435} ) or 1 )-               &&            ## <concat>-               ## pos: 7650 7773-               (-                 ## <quant>-                 ## pos: 7650 7671-                 (-                  (   ( $pad{I1438} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 7659 7661-                     ( ( substr( $s, $pos, 1 ) eq '^' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1438} ) && 0 ) )-                 || ( $bool = 1 )-                 )-                 ## </quant>-    -               &&-                 ## <quant>-                 ## pos: 7671 7705-                 (-                  (   ( $pad{I1439} = $pos or 1 ) &&-                     ## <alt>-                     ## pos: 7672 7694-                     (-                         ( $pad{I1440} = $pos or 1 )-                         && (-      -                         ## <group>-                         ## pos: 7672 7682-                          (   ( $pad{I1441} = $pos or 1 ) &&-                           ## <metasyntax>-                           ## pos: 7673 7681-                           do {-                                my $prior = $::_V6_PRIOR_;-                                my $match =-                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                $::_V6_PRIOR_ = $prior;-                                my $bool = (!$match != 1);-                                $pos = $match->to if $bool;-                                $match;-                           }-                           ## </metasyntax>-     ||    ( ( $pos = $pad{I1441} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1440} ) or 1 )-                         &&   -                         ## <group>-                         ## pos: 7683 7686-                          (   ( $pad{I1442} = $pos or 1 ) &&-    -                           ## <constant>-                           ## pos: 7684 7685-                           ( ( substr( $s, $pos, 1 ) eq '_' )-                               ? ( $pos += 1 or 1 )-                               : 0-                           )-                           ## </constant>-     ||    ( ( $pos = $pad{I1442} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1440} ) or 1 )-                         &&                      ## <concat>-                         ## pos: 7687 7694-                         (-      -                           ## <group>-                           ## pos: 7687 7691-                            (   ( $pad{I1443} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7688 7690-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1443} ) && 0 ) )-                           ## </group>-    -                         &&-      -                           ## <group>-                           ## pos: 7691 7694-                            (   ( $pad{I1444} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7691 7693-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1444} ) && 0 ) )-                           ## </group>-    -                         )-                         ## </concat>-    -                       )-                     )-                     ## </alt>-     ||    ( ( $pos = $pad{I1439} ) && 0 ) )-                 && do { while (-                  (   ( $pad{I1439} = $pos or 1 ) &&-                     ## <alt>-                     ## pos: 7672 7694-                     (-                         ( $pad{I1440} = $pos or 1 )-                         && (-      -                         ## <group>-                         ## pos: 7672 7682-                          (   ( $pad{I1441} = $pos or 1 ) &&-                           ## <metasyntax>-                           ## pos: 7673 7681-                           do {-                                my $prior = $::_V6_PRIOR_;-                                my $match =-                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                $::_V6_PRIOR_ = $prior;-                                my $bool = (!$match != 1);-                                $pos = $match->to if $bool;-                                $match;-                           }-                           ## </metasyntax>-     ||    ( ( $pos = $pad{I1441} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1440} ) or 1 )-                         &&   -                         ## <group>-                         ## pos: 7683 7686-                          (   ( $pad{I1442} = $pos or 1 ) &&-    -                           ## <constant>-                           ## pos: 7684 7685-                           ( ( substr( $s, $pos, 1 ) eq '_' )-                               ? ( $pos += 1 or 1 )-                               : 0-                           )-                           ## </constant>-     ||    ( ( $pos = $pad{I1442} ) && 0 ) )-                         ## </group>-    -                         )-                       || (-                         ( ( $bool = 1 ) && ( $pos = $pad{I1440} ) or 1 )-                         &&                      ## <concat>-                         ## pos: 7687 7694-                         (-      -                           ## <group>-                           ## pos: 7687 7691-                            (   ( $pad{I1443} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7688 7690-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1443} ) && 0 ) )-                           ## </group>-    -                         &&-      -                           ## <group>-                           ## pos: 7691 7694-                            (   ( $pad{I1444} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 7691 7693-                             ( ( substr( $s, $pos, 1 ) eq ':' )-                                 ? ( $pos += 1 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1444} ) && 0 ) )-                           ## </group>-    -                         )-                         ## </concat>-    -                       )-                     )-                     ## </alt>-     ||    ( ( $pos = $pad{I1439} ) && 0 ) )) {}; $bool = 1 }-                 )-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 7705 7773-                  (   ( $pad{I1445} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 7705 7772-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { variable => '%' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] } }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1445} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $variables{'%'} = sub { var4($_[1], $_[0], $_[2], $_[3]) }; --# token term1-*term1 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 7974 8124-            (   ( $pad{I1446} = $pos or 1 ) &&-             ## <closure>-             ## pos: 7974 8123-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { metasyntax => {-                            metasyntax => 'null',-            },-                            _pos => [ $_[0]->from, $_[0]->to ],-            } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1446} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'{*}'} = sub { term1($_[1], $_[0], $_[2], $_[3]) }; --# token term2-*term2 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 8220 8435-           (-      -             ## <group>-             ## pos: 8220 8235-              (   ( $pad{I1447} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 8220 8230-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1447} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 8235 8246-              (   ( $pad{I1448} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 8235 8237-               ( ( substr( $s, $pos, 1 ) eq chr(39) )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1448} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 8246 8435-              (   ( $pad{I1449} = $pos or 1 ) &&-               ## <closure>-               ## pos: 8246 8434-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return {-                    metasyntax => {-                        metasyntax => '\'' . ${$_[0]},-                    },-                        _pos => [ $_[0]->from - 1, $_[0]->to ],-                };-            }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1449} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'\''} = sub { term2($_[1], $_[0], $_[2], $_[3]) }; --# token term3-*term3 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 8530 8646-           (-      -             ## <group>-             ## pos: 8530 8537-              (   ( $pad{I1450} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 8530 8536-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1450} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 8537 8548-              (   ( $pad{I1451} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 8537 8539-               ( ( substr( $s, $pos, 1 ) eq ')' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1451} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 8548 8646-              (   ( $pad{I1452} = $pos or 1 ) &&-               ## <closure>-               ## pos: 8548 8645-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { capturing_group => ${ $_[0]->{qw(rule)} },-                       _pos => [ $_[0]->from - 1, $_[0]->to ], }; }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1452} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'('} = sub { term3($_[1], $_[0], $_[2], $_[3]) }; --# token term4-*term4 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 8740 8861-           (-      -             ## <group>-             ## pos: 8740 8748-              (   ( $pad{I1453} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 8740 8746-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1453} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 8748 8761-              (   ( $pad{I1454} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 8748 8752-               ( ( substr( $s, $pos, 2 ) eq ')>' )-                   ? ( $pos += 2 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1454} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 8761 8861-              (   ( $pad{I1455} = $pos or 1 ) &&-               ## <closure>-               ## pos: 8761 8860-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { capture_as_result => ${ $_[0]->{qw(rule)} },-                       _pos => [ $_[0]->from - 2, $_[0]->to ], }; }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1455} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'<('} = sub { term4($_[1], $_[0], $_[2], $_[3]) }; --# token term5-*term5 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 8956 9216-           (-      -             ## <group>-             ## pos: 8956 8977-              (   ( $pad{I1456} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 8956 8968-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'char_class'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1456} ) && 0 ) )-             ## </group>-    -           &&-             ## <quant>-             ## pos: 8977 9010-             do { while (-              (   ( $pad{I1457} = $pos or 1 ) &&-    -                 ## <capture>-                 do{-                     my $hash = do {-                       my $bool = 1;-                       my $from = $pos;-                       my @match;-                       my %named;-                       $bool = 0 unless-                         ## <concat>-                         ## pos: 8978 8999-                         (-      -                           ## <group>-                           ## pos: 8978 8986-                            (   ( $pad{I1458} = $pos or 1 ) &&-                             ## <perl5>-                             ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )-                                 ? ( $pos += length( $1 ) or 1 )-                                 : 0-                             )-                             ## </perl5>-     ||    ( ( $pos = $pad{I1458} ) && 0 ) )-                           ## </group>-    -                         &&-      -                           ## <group>-                           ## pos: 8986 8999-                            (   ( $pad{I1459} = $pos or 1 ) &&-                             ## <named_capture>-                             ## pos: 8986 8998-                             do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                         $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'char_class'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                             ## </named_capture>-     ||    ( ( $pos = $pad{I1459} ) && 0 ) )-                           ## </group>-    -                         )-                         ## </concat>-    ;-                       { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                     };-                     my $bool = ${$hash->{'bool'}};-                     if ( $bool ) {-                         push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );-                     }-                     $bool;-                 }-                 ## </capture>-     ||    ( ( $pos = $pad{I1457} ) && 0 ) )) {}; $bool = 1 }-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 9010 9021-              (   ( $pad{I1460} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 9010 9012-               ( ( substr( $s, $pos, 1 ) eq '>' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1460} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 9021 9216-              (   ( $pad{I1461} = $pos or 1 ) &&-               ## <closure>-               ## pos: 9021 9215-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return {-                _pos => [ $_[0]->from - 2, $_[0]->to ],-                char_class => [-                    '+' . $_[0]->{qw(char_class)},-                    @{$_[0]->[0]},   # TODO - stringify-                ] }-            }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1461} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'<+'} = sub { term5($_[1], $_[0], $_[2], $_[3]) }; --# token term6-*term6 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 9311 9571-           (-      -             ## <group>-             ## pos: 9311 9332-              (   ( $pad{I1462} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 9311 9323-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'char_class'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1462} ) && 0 ) )-             ## </group>-    -           &&-             ## <quant>-             ## pos: 9332 9365-             do { while (-              (   ( $pad{I1463} = $pos or 1 ) &&-    -                 ## <capture>-                 do{-                     my $hash = do {-                       my $bool = 1;-                       my $from = $pos;-                       my @match;-                       my %named;-                       $bool = 0 unless-                         ## <concat>-                         ## pos: 9333 9354-                         (-      -                           ## <group>-                           ## pos: 9333 9341-                            (   ( $pad{I1464} = $pos or 1 ) &&-                             ## <perl5>-                             ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )-                                 ? ( $pos += length( $1 ) or 1 )-                                 : 0-                             )-                             ## </perl5>-     ||    ( ( $pos = $pad{I1464} ) && 0 ) )-                           ## </group>-    -                         &&-      -                           ## <group>-                           ## pos: 9341 9354-                            (   ( $pad{I1465} = $pos or 1 ) &&-                             ## <named_capture>-                             ## pos: 9341 9353-                             do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                         $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'char_class'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                             ## </named_capture>-     ||    ( ( $pos = $pad{I1465} ) && 0 ) )-                           ## </group>-    -                         )-                         ## </concat>-    ;-                       { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                     };-                     my $bool = ${$hash->{'bool'}};-                     if ( $bool ) {-                         push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );-                     }-                     $bool;-                 }-                 ## </capture>-     ||    ( ( $pos = $pad{I1463} ) && 0 ) )) {}; $bool = 1 }-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 9365 9376-              (   ( $pad{I1466} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 9365 9367-               ( ( substr( $s, $pos, 1 ) eq '>' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1466} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 9376 9571-              (   ( $pad{I1467} = $pos or 1 ) &&-               ## <closure>-               ## pos: 9376 9570-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return {-                _pos => [ $_[0]->from - 2, $_[0]->to ],-                char_class => [-                    '-' . $_[0]->{qw(char_class)},-                    @{$_[0]->[0]},   # TODO - stringify-                ] }-            }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1467} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'<-'} = sub { term6($_[1], $_[0], $_[2], $_[3]) }; --# token term7-*term7 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 9666 9937-           (-      -             ## <group>-             ## pos: 9666 9680-              (   ( $pad{I1468} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 9666 9678-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->char_range( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'char_range'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1468} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 9680 9691-              (   ( $pad{I1469} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 9680 9682-               ( ( substr( $s, $pos, 1 ) eq ']' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1469} ) && 0 ) )-             ## </group>-    -           &&-             ## <quant>-             ## pos: 9691 9724-             do { while (-              (   ( $pad{I1470} = $pos or 1 ) &&-    -                 ## <capture>-                 do{-                     my $hash = do {-                       my $bool = 1;-                       my $from = $pos;-                       my @match;-                       my %named;-                       $bool = 0 unless-                         ## <concat>-                         ## pos: 9692 9713-                         (-      -                           ## <group>-                           ## pos: 9692 9700-                            (   ( $pad{I1471} = $pos or 1 ) &&-                             ## <perl5>-                             ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )-                                 ? ( $pos += length( $1 ) or 1 )-                                 : 0-                             )-                             ## </perl5>-     ||    ( ( $pos = $pad{I1471} ) && 0 ) )-                           ## </group>-    -                         &&-      -                           ## <group>-                           ## pos: 9700 9713-                            (   ( $pad{I1472} = $pos or 1 ) &&-                             ## <named_capture>-                             ## pos: 9700 9712-                             do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                         $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'char_class'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                             ## </named_capture>-     ||    ( ( $pos = $pad{I1472} ) && 0 ) )-                           ## </group>-    -                         )-                         ## </concat>-    ;-                       { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                     };-                     my $bool = ${$hash->{'bool'}};-                     if ( $bool ) {-                         push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );-                     }-                     $bool;-                 }-                 ## </capture>-     ||    ( ( $pos = $pad{I1470} ) && 0 ) )) {}; $bool = 1 }-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 9724 9735-              (   ( $pad{I1473} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 9724 9726-               ( ( substr( $s, $pos, 1 ) eq '>' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1473} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 9735 9937-              (   ( $pad{I1474} = $pos or 1 ) &&-               ## <closure>-               ## pos: 9735 9936-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return {-                _pos => [ $_[0]->from - 2, $_[0]->to ],-                char_class => [-                    '+[' . $_[0]->{qw(char_range)} . ']',-                    @{$_[0]->[0]},   # TODO - stringify-                ] }-            }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1474} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'<['} = sub { term7($_[1], $_[0], $_[2], $_[3]) }; --# token term8-*term8 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 10032 10091-           (-      -             ## <group>-             ## pos: 10032 10059-              (   ( $pad{I1475} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 10032 10050-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->parse_metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'parse_metasyntax'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1475} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 10059 10091-              (   ( $pad{I1476} = $pos or 1 ) &&-               ## <closure>-               ## pos: 10059 10090-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return ${ $_[0]->{qw(parse_metasyntax)} } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1476} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'<'} = sub { term8($_[1], $_[0], $_[2], $_[3]) }; --# token term9-*term9 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 10185 10375-           (-      -             ## <group>-             ## pos: 10185 10200-              (   ( $pad{I1477} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 10185 10198-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->parsed_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'parsed_code'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1477} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 10200 10211-              (   ( $pad{I1478} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 10200 10202-               ( ( substr( $s, $pos, 1 ) eq '}' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1478} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 10211 10375-              (   ( $pad{I1479} = $pos or 1 ) &&-               ## <closure>-               ## pos: 10211 10374-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { closure => {-                closure => ${ $_[0]->{qw(parsed_code)} },-                modifier => 'plain',-            },-                _pos => [$_[0]->from - 1, $_[0]->to],-            } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1479} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'{'} = sub { term9($_[1], $_[0], $_[2], $_[3]) }; --# token term10-*term10 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 10470 10521-           (-      -             ## <group>-             ## pos: 10470 10493-              (   ( $pad{I1480} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 10470 10484-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'special_char'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1480} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 10493 10521-              (   ( $pad{I1481} = $pos or 1 ) &&-               ## <closure>-               ## pos: 10493 10520-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return ${ $_[0]->{qw(special_char)} } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1481} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'\\'} = sub { term10($_[1], $_[0], $_[2], $_[3]) }; --# token term11-*term11 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 10618 10677-            (   ( $pad{I1482} = $pos or 1 ) &&-             ## <closure>-             ## pos: 10618 10676-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { 'dot' => 1, _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1482} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'.'} = sub { term11($_[1], $_[0], $_[2], $_[3]) }; --# token term12-*term12 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 10773 10811-           (-      -             ## <group>-             ## pos: 10773 10780-              (   ( $pad{I1483} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 10773 10779-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1483} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 10780 10791-              (   ( $pad{I1484} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 10780 10782-               ( ( substr( $s, $pos, 1 ) eq ']' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1484} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 10791 10811-              (   ( $pad{I1485} = $pos or 1 ) &&-               ## <closure>-               ## pos: 10791 10810-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return ${ $_[0]->{qw(rule)} } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1485} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'['} = sub { term12($_[1], $_[0], $_[2], $_[3]) }; --# token term13-*term13 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 10899 10962-            (   ( $pad{I1486} = $pos or 1 ) &&-             ## <closure>-             ## pos: 10899 10961-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => ':::', _pos => [$_[0]->from - 3, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1486} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':::'} = sub { term13($_[1], $_[0], $_[2], $_[3]) }; --# token term14-*term14 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 11052 11114-            (   ( $pad{I1487} = $pos or 1 ) &&-             ## <closure>-             ## pos: 11052 11113-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => ':?', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1487} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':?'} = sub { term14($_[1], $_[0], $_[2], $_[3]) }; --# token term15-*term15 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 11203 11265-            (   ( $pad{I1488} = $pos or 1 ) &&-             ## <closure>-             ## pos: 11203 11264-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => ':+', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1488} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':+'} = sub { term15($_[1], $_[0], $_[2], $_[3]) }; --# token term16-*term16 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 11354 11416-            (   ( $pad{I1489} = $pos or 1 ) &&-             ## <closure>-             ## pos: 11354 11415-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => '::', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1489} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'::'} = sub { term16($_[1], $_[0], $_[2], $_[3]) }; --# token term17-*term17 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 11505 11566-            (   ( $pad{I1490} = $pos or 1 ) &&-             ## <closure>-             ## pos: 11505 11565-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => ':', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1490} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':'} = sub { term17($_[1], $_[0], $_[2], $_[3]) }; --# token term18-*term18 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 11654 11716-            (   ( $pad{I1491} = $pos or 1 ) &&-             ## <closure>-             ## pos: 11654 11715-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => '$$', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1491} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'$$'} = sub { term18($_[1], $_[0], $_[2], $_[3]) }; --# token term19-*term19 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 11805 11867-            (   ( $pad{I1492} = $pos or 1 ) &&-             ## <closure>-             ## pos: 11805 11866-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => '$', _pos => [$_[0]->from - 1, $_[0]->to],  } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1492} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'$'} = sub { term19($_[1], $_[0], $_[2], $_[3]) }; --# token term20-*term20 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 11955 12017-            (   ( $pad{I1493} = $pos or 1 ) &&-             ## <closure>-             ## pos: 11955 12016-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => '^^', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1493} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'^^'} = sub { term20($_[1], $_[0], $_[2], $_[3]) }; --# token term21-*term21 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 12106 12167-            (   ( $pad{I1494} = $pos or 1 ) &&-             ## <closure>-             ## pos: 12106 12166-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => '^', _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1494} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'^'} = sub { term21($_[1], $_[0], $_[2], $_[3]) }; --# token term22-*term22 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 12255 12317-            (   ( $pad{I1495} = $pos or 1 ) &&-             ## <closure>-             ## pos: 12255 12316-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => '>>', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1495} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'>>'} = sub { term22($_[1], $_[0], $_[2], $_[3]) }; --# Code block from grammar spec- $rule_terms{'»'} = sub { term22($_[1], $_[0], $_[2], $_[3]) }; --# token term24-*term24 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-      -           ## <group>-           ## pos: 12559 12621-            (   ( $pad{I1496} = $pos or 1 ) &&-             ## <closure>-             ## pos: 12559 12620-             do {-               local $::_V6_SUCCEED = 1;-               $::_V6_MATCH_ = $m;-               $m->data->{capture} = \( sub { return { colon => '<<', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); -               $bool = $::_V6_SUCCEED;-               $::_V6_MATCH_ = $m if $bool; -               return $m if $bool; -             }-             ## </closure>-     ||    ( ( $pos = $pad{I1496} ) && 0 ) )-           ## </group>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{'<<'} = sub { term24($_[1], $_[0], $_[2], $_[3]) }; --# Code block from grammar spec- $rule_terms{'«'} = sub { term24($_[1], $_[0], $_[2], $_[3]) }; --# token term26-*term26 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 12871 13048-           (-      -             ## <group>-             ## pos: 12871 12877-              (   ( $pad{I1497} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 12871 12876-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1497} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 12877 12892-              (   ( $pad{I1498} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 12877 12883-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1498} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 12892 13048-              (   ( $pad{I1499} = $pos or 1 ) &&-               ## <closure>-               ## pos: 12892 13047-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return {-                modifier => {-                    modifier => 'ignorecase',-                    rule => ${ $_[0]->{qw(rule)} },-                    }-                },-            }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1499} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':i'} = sub { term26($_[1], $_[0], $_[2], $_[3]) }; --# Code block from grammar spec- $rule_terms{':ignorecase'} = sub { term26($_[1], $_[0], $_[2], $_[3]) }; --# token term28-*term28 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 13328 13405-           (-      -             ## <group>-             ## pos: 13328 13334-              (   ( $pad{I1500} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 13328 13333-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1500} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 13334 13349-              (   ( $pad{I1501} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 13334 13340-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1501} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 13349 13405-              (   ( $pad{I1502} = $pos or 1 ) &&-               ## <closure>-               ## pos: 13349 13404-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { modifier => 'sigspace', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1502} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':s'} = sub { term28($_[1], $_[0], $_[2], $_[3]) }; --# Code block from grammar spec- $rule_terms{':sigspace'} = sub { term28($_[1], $_[0], $_[2], $_[3]) }; --# token term30-*term30 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 13684 13758-           (-      -             ## <group>-             ## pos: 13684 13690-              (   ( $pad{I1503} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 13684 13689-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1503} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 13690 13705-              (   ( $pad{I1504} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 13690 13696-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1504} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 13705 13758-              (   ( $pad{I1505} = $pos or 1 ) &&-               ## <closure>-               ## pos: 13705 13757-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { modifier => 'Perl5', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1505} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':P5'} = sub { term30($_[1], $_[0], $_[2], $_[3]) }; --# Code block from grammar spec- $rule_terms{':Perl5'} = sub { term30($_[1], $_[0], $_[2], $_[3]) }; --# token term32-*term32 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 14031 14105-           (-      -             ## <group>-             ## pos: 14031 14037-              (   ( $pad{I1506} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 14031 14036-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1506} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 14037 14052-              (   ( $pad{I1507} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 14037 14043-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1507} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 14052 14105-              (   ( $pad{I1508} = $pos or 1 ) &&-               ## <closure>-               ## pos: 14052 14104-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { modifier => 'bytes', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1508} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':bytes'} = sub { term32($_[1], $_[0], $_[2], $_[3]) }; --# token term33-*term33 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 14206 14280-           (-      -             ## <group>-             ## pos: 14206 14212-              (   ( $pad{I1509} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 14206 14211-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1509} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 14212 14227-              (   ( $pad{I1510} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 14212 14218-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1510} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 14227 14280-              (   ( $pad{I1511} = $pos or 1 ) &&-               ## <closure>-               ## pos: 14227 14279-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { modifier => 'codes', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1511} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':codes'} = sub { term33($_[1], $_[0], $_[2], $_[3]) }; --# token term34-*term34 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 14381 14456-           (-      -             ## <group>-             ## pos: 14381 14387-              (   ( $pad{I1512} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 14381 14386-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1512} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 14387 14402-              (   ( $pad{I1513} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 14387 14393-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1513} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 14402 14456-              (   ( $pad{I1514} = $pos or 1 ) &&-               ## <closure>-               ## pos: 14402 14455-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { modifier => 'graphs', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1514} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':graphs'} = sub { term34($_[1], $_[0], $_[2], $_[3]) }; --# token term35-*term35 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 14558 14633-           (-      -             ## <group>-             ## pos: 14558 14564-              (   ( $pad{I1515} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 14558 14563-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1515} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 14564 14579-              (   ( $pad{I1516} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 14564 14570-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1516} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 14579 14633-              (   ( $pad{I1517} = $pos or 1 ) &&-               ## <closure>-               ## pos: 14579 14632-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { modifier => 'langs',  rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1517} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# Code block from grammar spec- $rule_terms{':langs'} = sub { term35($_[1], $_[0], $_[2], $_[3]) }; --# token term-*term =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 14728 15530-           (-               ( $pad{I1518} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 14729 15207-               (-      -                 ## <group>-                 ## pos: 14729 14772-                  (   ( $pad{I1519} = $pos or 1 ) &&-                  ## <metasyntax>-                   ## pos: 14731 14764-                   do{-                    my $match = -              ## <variable>-              ## pos: 14731 14764-              do {-                our $I1520;-                our $I1520_sizes;-                unless ( $I1520 ) {-                    my $hash = \%Pugs::Grammar::Rule::variables;-                    my %sizes = map { length($_) => 1 } keys %$hash;-                    $I1520_sizes = [ sort { $b <=> $a } keys %sizes ];-                    $I1520 = $hash;-                }-                my $match = 0;-                my $key;-                for ( @$I1520_sizes ) {-                    $key = ( $pos <= length( $s )-                                ? substr( $s, $pos, $_ )-                                : '' );-                    if ( exists $I1520->{$key} ) {-                        #$named{KEY} = $key;-                        #$::_V6_MATCH_ = $m;-                        #print "m: ", Dumper( $::_V6_MATCH_->data )-                        #    if ( $key eq 'until' );-                        $match = Pugs::Runtime::Regex::preprocess_hash( $I1520, $key )->( $s, $grammar, { p => ( $pos + $_ ), positionals => [ ], args => { KEY => $key } }, undef );-                        last if $match;-                    }-                }-                if ( $match ) {-                    $pos = $match->to;-                    #print "match: $key at $pos = ", Dumper( $match->data );-                    $bool = 1;-                }; # else { $bool = 0 }-                $match;-              }-              ## </variable>-    ;-                    if ( $match ) { $named{'Pugs::Grammar::Rule::variables'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                  ## </metasyntax>-     ||    ( ( $pos = $pad{I1519} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 14772 15207-                  (   ( $pad{I1521} = $pos or 1 ) &&-                   ## <alt>-                   ## pos: 14773 15201-                   (-                       ( $pad{I1522} = $pos or 1 )-                       && (-                       ## <concat>-                       ## pos: 14773 15114-                       (-                         ## <quant>-                         ## pos: 14773 14782-                         (-                          (   ( $pad{I1523} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 14775 14780-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1523} ) && 0 ) )-                         || ( $bool = 1 )-                         )-                         ## </quant>-    -                       &&-      -                         ## <group>-                         ## pos: 14782 14787-                          (   ( $pad{I1524} = $pos or 1 ) &&-    -                           ## <constant>-                           ## pos: 14782 14786-                           ( ( substr( $s, $pos, 2 ) eq ':=' )-                               ? ( $pos += 2 or 1 )-                               : 0-                           )-                           ## </constant>-     ||    ( ( $pos = $pad{I1524} ) && 0 ) )-                         ## </group>-    -                       &&-                         ## <quant>-                         ## pos: 14787 14794-                         (-                          (   ( $pad{I1525} = $pos or 1 ) &&-                             ## <metasyntax>-                             ## pos: 14787 14792-                             do {-                                  my $prior = $::_V6_PRIOR_;-                                  my $match =-                                         $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                  $::_V6_PRIOR_ = $prior;-                                  my $bool = (!$match != 1);-                                  $pos = $match->to if $bool;-                                  $match;-                             }-                             ## </metasyntax>-     ||    ( ( $pos = $pad{I1525} ) && 0 ) )-                         || ( $bool = 1 )-                         )-                         ## </quant>-    -                       &&-      -                         ## <group>-                         ## pos: 14794 14825-                          (   ( $pad{I1526} = $pos or 1 ) &&-                           ## <named_capture>-                           ## pos: 14794 14814-                           do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                       $grammar->named_capture_body( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'named_capture_body'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                           ## </named_capture>-     ||    ( ( $pos = $pad{I1526} ) && 0 ) )-                         ## </group>-    -                       &&-      -                         ## <group>-                         ## pos: 14825 15114-                          (   ( $pad{I1527} = $pos or 1 ) &&-                           ## <closure>-                           ## pos: 14825 15106-                           do {-                             local $::_V6_SUCCEED = 1;-                             $::_V6_MATCH_ = $m;-                             $m->data->{capture} = \( sub {-                return { named_capture => {-                            rule =>  ${ $_[0]->{qw(named_capture_body)} },-                            ident => ${ $_[0]->{qw(Pugs::Grammar::Rule::variables)} },-                         },-                            _pos => [ $_[0]->from, $_[0]->to ],-                         };-              }->( $m ) ); -                             $bool = $::_V6_SUCCEED;-                             $::_V6_MATCH_ = $m if $bool; -                             return $m if $bool; -                           }-                           ## </closure>-     ||    ( ( $pos = $pad{I1527} ) && 0 ) )-                         ## </group>-    -                       )-                       ## </concat>-    -                       )-                     || (-                       ( ( $bool = 1 ) && ( $pos = $pad{I1522} ) or 1 )-                       &&   -                       ## <group>-                       ## pos: 15115 15201-                        (   ( $pad{I1528} = $pos or 1 ) &&-                         ## <closure>-                         ## pos: 15126 15193-                         do {-                           local $::_V6_SUCCEED = 1;-                           $::_V6_MATCH_ = $m;-                           $m->data->{capture} = \( sub {-                return ${ $_[0]->{qw(Pugs::Grammar::Rule::variables)} }-              }->( $m ) ); -                           $bool = $::_V6_SUCCEED;-                           $::_V6_MATCH_ = $m if $bool; -                           return $m if $bool; -                         }-                         ## </closure>-     ||    ( ( $pos = $pad{I1528} ) && 0 ) )-                       ## </group>-    -                     )-                   )-                   ## </alt>-     ||    ( ( $pos = $pad{I1521} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1518} ) or 1 )-               &&            ## <concat>-               ## pos: 15208 15376-               (-      -                 ## <group>-                 ## pos: 15208 15253-                  (   ( $pad{I1529} = $pos or 1 ) &&-                  ## <metasyntax>-                   ## pos: 15210 15244-                   do{-                    my $match = -              ## <variable>-              ## pos: 15210 15244-              do {-                our $I1530;-                our $I1530_sizes;-                unless ( $I1530 ) {-                    my $hash = \%Pugs::Grammar::Rule::rule_terms;-                    my %sizes = map { length($_) => 1 } keys %$hash;-                    $I1530_sizes = [ sort { $b <=> $a } keys %sizes ];-                    $I1530 = $hash;-                }-                my $match = 0;-                my $key;-                for ( @$I1530_sizes ) {-                    $key = ( $pos <= length( $s )-                                ? substr( $s, $pos, $_ )-                                : '' );-                    if ( exists $I1530->{$key} ) {-                        #$named{KEY} = $key;-                        #$::_V6_MATCH_ = $m;-                        #print "m: ", Dumper( $::_V6_MATCH_->data )-                        #    if ( $key eq 'until' );-                        $match = Pugs::Runtime::Regex::preprocess_hash( $I1530, $key )->( $s, $grammar, { p => ( $pos + $_ ), positionals => [ ], args => { KEY => $key } }, undef );-                        last if $match;-                    }-                }-                if ( $match ) {-                    $pos = $match->to;-                    #print "match: $key at $pos = ", Dumper( $match->data );-                    $bool = 1;-                }; # else { $bool = 0 }-                $match;-              }-              ## </variable>-    ;-                    if ( $match ) { $named{'Pugs::Grammar::Rule::rule_terms'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                  ## </metasyntax>-     ||    ( ( $pos = $pad{I1529} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 15253 15376-                  (   ( $pad{I1531} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 15253 15371-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub {-                #print "term: ", Dumper( $_[0]->data );-                return ${ $_[0]->{qw(Pugs::Grammar::Rule::rule_terms)} }-            }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1531} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1518} ) or 1 )-               &&            ## <concat>-               ## pos: 15377 15530-               (-      -                 ## <group>-                 ## pos: 15377 15424-                  (   ( $pad{I1532} = $pos or 1 ) &&-                   ## <perl5>-                   ( ( substr( $s, $pos ) =~ m/^((?:(?![\]\}\)\>\:\?\+\*\|\&]))\X)/ )-                       ? ( $pos += length( $1 ) or 1 )-                       : 0-                   )-                   ## </perl5>-     ||    ( ( $pos = $pad{I1532} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 15424 15530-                  (   ( $pad{I1533} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 15424 15529-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub {-                return { 'constant' => ${$_[0]},-                         _pos => [ $_[0]->from, $_[0]->to ] }-            }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1533} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token quant-*quant =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 15551 15665-           (-               ( $pad{I1534} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 15552 15643-               (-      -                 ## <group>-                 ## pos: 15552 15560-                  (   ( $pad{I1535} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 15555 15559-                   ( ( substr( $s, $pos, 2 ) eq '**' )-                       ? ( $pos += 2 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1535} ) && 0 ) )-                 ## </group>-    -               &&-                 ## <quant>-                 ## pos: 15560 15567-                 (-                  (   ( $pad{I1536} = $pos or 1 ) &&-                     ## <metasyntax>-                     ## pos: 15560 15565-                     do {-                          my $prior = $::_V6_PRIOR_;-                          my $match =-                                 $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                          $::_V6_PRIOR_ = $prior;-                          my $bool = (!$match != 1);-                          $pos = $match->to if $bool;-                          $match;-                     }-                     ## </metasyntax>-     ||    ( ( $pos = $pad{I1536} ) && 0 ) )-                 || ( $bool = 1 )-                 )-                 ## </quant>-    -               &&-      -                 ## <group>-                 ## pos: 15567 15571-                  (   ( $pad{I1537} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 15567 15569-                   ( ( substr( $s, $pos, 1 ) eq '{' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1537} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 15571 15586-                  (   ( $pad{I1538} = $pos or 1 ) &&-                   ## <named_capture>-                   ## pos: 15571 15584-                   do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                               $grammar->parsed_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'parsed_code'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                   ## </named_capture>-     ||    ( ( $pos = $pad{I1538} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 15586 15597-                  (   ( $pad{I1539} = $pos or 1 ) &&-    -                   ## <constant>-                   ## pos: 15586 15588-                   ( ( substr( $s, $pos, 1 ) eq '}' )-                       ? ( $pos += 1 or 1 )-                       : 0-                   )-                   ## </constant>-     ||    ( ( $pos = $pad{I1539} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 15597 15643-                  (   ( $pad{I1540} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 15597 15638-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return { closure => ${ $_[0]->{qw(parsed_code)} } } }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1540} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1534} ) or 1 )-               &&            ## <quant>-               ## pos: 15644 15665-               (-                (   ( $pad{I1541} = $pos or 1 ) &&-                   ## <perl5>-                   ( ( substr( $s, $pos ) =~ m/^((?:(?=[\?\*\+]))\X)/ )-                       ? ( $pos += length( $1 ) or 1 )-                       : 0-                   )-                   ## </perl5>-     ||    ( ( $pos = $pad{I1541} ) && 0 ) )-               || ( $bool = 1 )-               )-               ## </quant>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token quantifier-*quantifier =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 15691 16457-           (-      -             ## <group>-             ## pos: 15691 15716-              (   ( $pad{I1542} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 15691 15711-               do{-                    my $match = Pugs::Runtime::Match->new( do {-                        my $bool = 1;-                        my $from = $pos;-                        my @match;-                        my %named;-                        $bool = 0 unless -                       ## <capture>-                       do{-                           my $hash = do {-                             my $bool = 1;-                             my $from = $pos;-                             my @match;-                             my %named;-                             $bool = 0 unless-                               ## <quant>-                               ## pos: 15704 15710-                               (-                                (   ( $pad{I1543} = $pos or 1 ) &&-                                   ## <metasyntax>-                                   ## pos: 15704 15709-                                   do {-                                        my $prior = $::_V6_PRIOR_;-                                        my $match =-                                               $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                        $::_V6_PRIOR_ = $prior;-                                        my $bool = (!$match != 1);-                                        $pos = $match->to if $bool;-                                        $match;-                                   }-                                   ## </metasyntax>-     ||    ( ( $pos = $pad{I1543} ) && 0 ) )-                               || ( $bool = 1 )-                               )-                               ## </quant>-    ;-                             { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                           };-                           my $bool = ${$hash->{'bool'}};-                           $match[ 0 ] = Pugs::Runtime::Match->new( $hash );-                           $bool;-                       }-                       ## </capture>-    ;-                        { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                    } );-                    if ( $match ) { $named{'ws1'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1542} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 15716 15751-              (   ( $pad{I1544} = $pos or 1 ) &&-               ## <negate>-               ## pos: 15716 15746-               do{-                   my $pos1 = $pos;-                   do {-                     my $pos = $pos1;-                     my $from = $pos;-                     my @match;-                     my %named;-                     $bool = -                         ## <before>-                         ## pos: 15726 15745-                         do{-                             my $pos1 = $pos;-                             do {-                               my $pos = $pos1;-                               my $from = $pos;-                               my @match;-                               my %named;-                               $bool = 0 unless-      -                                   ## <group>-                                   ## pos: 15726 15745-                                    (   ( $pad{I1545} = $pos or 1 ) &&-                                     ## <perl5>-                                     ( ( substr( $s, $pos ) =~ m/^((?:(?=[\}\]\)]))\X)/ )-                                         ? ( $pos += length( $1 ) or 1 )-                                         : 0-                                     )-                                     ## </perl5>-     ||    ( ( $pos = $pad{I1545} ) && 0 ) )-                                   ## </group>-    ;-                               $bool;-                             };-                         }-                         ## </before>-     ? 0 : 1;-                     $bool;-                   };-               }-               ## </negate>-     ||    ( ( $pos = $pad{I1544} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 15751 15762-              (   ( $pad{I1546} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 15751 15757-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->term( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'term'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1546} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 15762 15787-              (   ( $pad{I1547} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 15762 15782-               do{-                    my $match = Pugs::Runtime::Match->new( do {-                        my $bool = 1;-                        my $from = $pos;-                        my @match;-                        my %named;-                        $bool = 0 unless -                       ## <capture>-                       do{-                           my $hash = do {-                             my $bool = 1;-                             my $from = $pos;-                             my @match;-                             my %named;-                             $bool = 0 unless-                               ## <quant>-                               ## pos: 15775 15781-                               (-                                (   ( $pad{I1548} = $pos or 1 ) &&-                                   ## <metasyntax>-                                   ## pos: 15775 15780-                                   do {-                                        my $prior = $::_V6_PRIOR_;-                                        my $match =-                                               $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                        $::_V6_PRIOR_ = $prior;-                                        my $bool = (!$match != 1);-                                        $pos = $match->to if $bool;-                                        $match;-                                   }-                                   ## </metasyntax>-     ||    ( ( $pos = $pad{I1548} ) && 0 ) )-                               || ( $bool = 1 )-                               )-                               ## </quant>-    ;-                             { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                           };-                           my $bool = ${$hash->{'bool'}};-                           $match[ 0 ] = Pugs::Runtime::Match->new( $hash );-                           $bool;-                       }-                       ## </capture>-    ;-                        { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                    } );-                    if ( $match ) { $named{'ws2'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1547} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 15787 15799-              (   ( $pad{I1549} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 15787 15794-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->quant( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'quant'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1549} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 15799 15833-              (   ( $pad{I1550} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 15799 15828-               do{-                    my $match = Pugs::Runtime::Match->new( do {-                        my $bool = 1;-                        my $from = $pos;-                        my @match;-                        my %named;-                        $bool = 0 unless -                       ## <capture>-                       do{-                           my $hash = do {-                             my $bool = 1;-                             my $from = $pos;-                             my @match;-                             my %named;-                             $bool = 0 unless-                               ## <quant>-                               ## pos: 15813 15827-                               (-                                (   ( $pad{I1551} = $pos or 1 ) &&-                                   ## <perl5>-                                   ( ( substr( $s, $pos ) =~ m/^((?:(?=[\?\+]))\X)/ )-                                       ? ( $pos += length( $1 ) or 1 )-                                       : 0-                                   )-                                   ## </perl5>-     ||    ( ( $pos = $pad{I1551} ) && 0 ) )-                               || ( $bool = 1 )-                               )-                               ## </quant>-    ;-                             { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                           };-                           my $bool = ${$hash->{'bool'}};-                           $match[ 0 ] = Pugs::Runtime::Match->new( $hash );-                           $bool;-                       }-                       ## </capture>-    ;-                        { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                    } );-                    if ( $match ) { $named{'greedy'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1550} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 15833 15858-              (   ( $pad{I1552} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 15833 15853-               do{-                    my $match = Pugs::Runtime::Match->new( do {-                        my $bool = 1;-                        my $from = $pos;-                        my @match;-                        my %named;-                        $bool = 0 unless -                       ## <capture>-                       do{-                           my $hash = do {-                             my $bool = 1;-                             my $from = $pos;-                             my @match;-                             my %named;-                             $bool = 0 unless-                               ## <quant>-                               ## pos: 15846 15852-                               (-                                (   ( $pad{I1553} = $pos or 1 ) &&-                                   ## <metasyntax>-                                   ## pos: 15846 15851-                                   do {-                                        my $prior = $::_V6_PRIOR_;-                                        my $match =-                                               $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                                        $::_V6_PRIOR_ = $prior;-                                        my $bool = (!$match != 1);-                                        $pos = $match->to if $bool;-                                        $match;-                                   }-                                   ## </metasyntax>-     ||    ( ( $pos = $pad{I1553} ) && 0 ) )-                               || ( $bool = 1 )-                               )-                               ## </quant>-    ;-                             { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                           };-                           my $bool = ${$hash->{'bool'}};-                           $match[ 0 ] = Pugs::Runtime::Match->new( $hash );-                           $bool;-                       }-                       ## </capture>-    ;-                        { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                    } );-                    if ( $match ) { $named{'ws3'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1552} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 15858 16457-              (   ( $pad{I1554} = $pos or 1 ) &&-               ## <closure>-               ## pos: 15858 16456-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub {-          if (-                   ${$_[0]->{'quant'}}  eq ''-                && ${$_[0]->{'greedy'}} eq ''-                && ${$_[0]->{'ws1'}}    eq ''-                && ${$_[0]->{'ws2'}}    eq ''-                && ${$_[0]->{'ws3'}}    eq ''-          ) {-              return ${$_[0]->{'term'}};-          }-          return {-            quant => {-                    term    => ${$_[0]->{'term'}},-                    quant   => ${$_[0]->{'quant'}},-                    greedy  => ${$_[0]->{'greedy'}},-                    ws1     => ${$_[0]->{'ws1'}},-                    ws2     => ${$_[0]->{'ws2'}},-                    ws3     => ${$_[0]->{'ws3'}},-                },-            _pos => [$_[0]->from, $_[0]->to],-          }-        }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1554} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token concat-*concat =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 16479 16688-           (-             ## <quant>-             ## pos: 16479 16497-             (-              (   ( $pad{I1555} = $pos or 1 ) &&-                 ## <named_capture>-                 ## pos: 16479 16491-                 do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                             $grammar->quantifier( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'quantifier'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                 ## </named_capture>-     ||    ( ( $pos = $pad{I1555} ) && 0 ) )-             && do { while (-              (   ( $pad{I1555} = $pos or 1 ) &&-                 ## <named_capture>-                 ## pos: 16479 16491-                 do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                             $grammar->quantifier( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'quantifier'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                 ## </named_capture>-     ||    ( ( $pos = $pad{I1555} ) && 0 ) )) {}; $bool = 1 }-             )-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 16497 16688-              (   ( $pad{I1556} = $pos or 1 ) &&-               ## <closure>-               ## pos: 16497 16687-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub {-            my @a = map {  $_->()  }  @{ $::_V6_MATCH_->{'quantifier'} };-            return { concat => \@a, _pos => [$_[0]->from, $_[0]->to] }-                if scalar @a > 1;-            return $a[0];-        }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1556} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token conjunctive1-*conjunctive1 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 16716 16996-           (-             ## <quant>-             ## pos: 16716 16750-             (-              (   ( $pad{I1557} = $pos or 1 ) &&-                 ## <concat>-                 ## pos: 16717 16742-                 (-                   ## <quant>-                   ## pos: 16717 16725-                   (-                    (   ( $pad{I1558} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 16718 16723-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1558} ) && 0 ) )-                   || ( $bool = 1 )-                   )-                   ## </quant>-    -                 &&-      -                   ## <group>-                   ## pos: 16725 16728-                    (   ( $pad{I1559} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 16725 16727-                     ( ( substr( $s, $pos, 1 ) eq '&' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1559} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 16728 16742-                    (   ( $pad{I1560} = $pos or 1 ) &&-                     ## <negate>-                     ## pos: 16728 16741-                     do{-                         my $pos1 = $pos;-                         do {-                           my $pos = $pos1;-                           my $from = $pos;-                           my @match;-                           my %named;-                           $bool = -                               ## <before>-                               ## pos: 16737 16740-                               do{-                                   my $pos1 = $pos;-                                   do {-                                     my $pos = $pos1;-                                     my $from = $pos;-                                     my @match;-                                     my %named;-                                     $bool = 0 unless-      -                                         ## <group>-                                         ## pos: 16737 16740-                                          (   ( $pad{I1561} = $pos or 1 ) &&-    -                                           ## <constant>-                                           ## pos: 16737 16739-                                           ( ( substr( $s, $pos, 1 ) eq '&' )-                                               ? ( $pos += 1 or 1 )-                                               : 0-                                           )-                                           ## </constant>-     ||    ( ( $pos = $pad{I1561} ) && 0 ) )-                                         ## </group>-    ;-                                     $bool;-                                   };-                               }-                               ## </before>-     ? 0 : 1;-                           $bool;-                         };-                     }-                     ## </negate>-     ||    ( ( $pos = $pad{I1560} ) && 0 ) )-                   ## </group>-    -                 )-                 ## </concat>-     ||    ( ( $pos = $pad{I1557} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 16750 16768-             (-              (   ( $pad{I1562} = $pos or 1 ) &&-                 ## <named_capture>-                 ## pos: 16750 16758-                 do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                             $grammar->concat( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'concat'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                 ## </named_capture>-     ||    ( ( $pos = $pad{I1562} ) && 0 ) )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 16768 16817-             do { while (-              (   ( $pad{I1563} = $pos or 1 ) &&-                 ## <concat>-                 ## pos: 16769 16809-                 (-      -                   ## <group>-                   ## pos: 16769 16781-                    (   ( $pad{I1564} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 16778 16780-                     ( ( substr( $s, $pos, 1 ) eq '&' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1564} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 16781 16796-                    (   ( $pad{I1565} = $pos or 1 ) &&-                     ## <negate>-                     ## pos: 16781 16794-                     do{-                         my $pos1 = $pos;-                         do {-                           my $pos = $pos1;-                           my $from = $pos;-                           my @match;-                           my %named;-                           $bool = -                               ## <before>-                               ## pos: 16790 16793-                               do{-                                   my $pos1 = $pos;-                                   do {-                                     my $pos = $pos1;-                                     my $from = $pos;-                                     my @match;-                                     my %named;-                                     $bool = 0 unless-      -                                         ## <group>-                                         ## pos: 16790 16793-                                          (   ( $pad{I1566} = $pos or 1 ) &&-    -                                           ## <constant>-                                           ## pos: 16790 16792-                                           ( ( substr( $s, $pos, 1 ) eq '&' )-                                               ? ( $pos += 1 or 1 )-                                               : 0-                                           )-                                           ## </constant>-     ||    ( ( $pos = $pad{I1566} ) && 0 ) )-                                         ## </group>-    ;-                                     $bool;-                                   };-                               }-                               ## </before>-     ? 0 : 1;-                           $bool;-                         };-                     }-                     ## </negate>-     ||    ( ( $pos = $pad{I1565} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 16796 16809-                    (   ( $pad{I1567} = $pos or 1 ) &&-                     ## <named_capture>-                     ## pos: 16796 16804-                     do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                 $grammar->concat( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'concat'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                     ## </named_capture>-     ||    ( ( $pos = $pad{I1567} ) && 0 ) )-                   ## </group>-    -                 )-                 ## </concat>-     ||    ( ( $pos = $pad{I1563} ) && 0 ) )) {}; $bool = 1 }-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 16817 16996-              (   ( $pad{I1568} = $pos or 1 ) &&-               ## <closure>-               ## pos: 16817 16995-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub {-            my @a = map {  $$_  }  @{ $::_V6_MATCH_->{'concat'} };-            return { conjunctive1 => \@a, _pos => [$_[0]->from, $_[0]->to] }  if scalar @a > 1;-            return $a[0];-        }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1568} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token disjunctive1-*disjunctive1 =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 17024 17313-           (-             ## <quant>-             ## pos: 17024 17058-             (-              (   ( $pad{I1569} = $pos or 1 ) &&-                 ## <concat>-                 ## pos: 17025 17050-                 (-                   ## <quant>-                   ## pos: 17025 17033-                   (-                    (   ( $pad{I1570} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 17026 17031-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1570} ) && 0 ) )-                   || ( $bool = 1 )-                   )-                   ## </quant>-    -                 &&-      -                   ## <group>-                   ## pos: 17033 17036-                    (   ( $pad{I1571} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17033 17035-                     ( ( substr( $s, $pos, 1 ) eq '|' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1571} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 17036 17050-                    (   ( $pad{I1572} = $pos or 1 ) &&-                     ## <negate>-                     ## pos: 17036 17049-                     do{-                         my $pos1 = $pos;-                         do {-                           my $pos = $pos1;-                           my $from = $pos;-                           my @match;-                           my %named;-                           $bool = -                               ## <before>-                               ## pos: 17045 17048-                               do{-                                   my $pos1 = $pos;-                                   do {-                                     my $pos = $pos1;-                                     my $from = $pos;-                                     my @match;-                                     my %named;-                                     $bool = 0 unless-      -                                         ## <group>-                                         ## pos: 17045 17048-                                          (   ( $pad{I1573} = $pos or 1 ) &&-    -                                           ## <constant>-                                           ## pos: 17045 17047-                                           ( ( substr( $s, $pos, 1 ) eq '|' )-                                               ? ( $pos += 1 or 1 )-                                               : 0-                                           )-                                           ## </constant>-     ||    ( ( $pos = $pad{I1573} ) && 0 ) )-                                         ## </group>-    ;-                                     $bool;-                                   };-                               }-                               ## </before>-     ? 0 : 1;-                           $bool;-                         };-                     }-                     ## </negate>-     ||    ( ( $pos = $pad{I1572} ) && 0 ) )-                   ## </group>-    -                 )-                 ## </concat>-     ||    ( ( $pos = $pad{I1569} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 17058 17082-             (-              (   ( $pad{I1574} = $pos or 1 ) &&-                 ## <named_capture>-                 ## pos: 17058 17072-                 do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                             $grammar->conjunctive1( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'conjunctive1'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                 ## </named_capture>-     ||    ( ( $pos = $pad{I1574} ) && 0 ) )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 17082 17136-             do { while (-              (   ( $pad{I1575} = $pos or 1 ) &&-                 ## <concat>-                 ## pos: 17083 17128-                 (-      -                   ## <group>-                   ## pos: 17083 17095-                    (   ( $pad{I1576} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17092 17094-                     ( ( substr( $s, $pos, 1 ) eq '|' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1576} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 17095 17109-                    (   ( $pad{I1577} = $pos or 1 ) &&-                     ## <negate>-                     ## pos: 17095 17108-                     do{-                         my $pos1 = $pos;-                         do {-                           my $pos = $pos1;-                           my $from = $pos;-                           my @match;-                           my %named;-                           $bool = -                               ## <before>-                               ## pos: 17104 17107-                               do{-                                   my $pos1 = $pos;-                                   do {-                                     my $pos = $pos1;-                                     my $from = $pos;-                                     my @match;-                                     my %named;-                                     $bool = 0 unless-      -                                         ## <group>-                                         ## pos: 17104 17107-                                          (   ( $pad{I1578} = $pos or 1 ) &&-    -                                           ## <constant>-                                           ## pos: 17104 17106-                                           ( ( substr( $s, $pos, 1 ) eq '|' )-                                               ? ( $pos += 1 or 1 )-                                               : 0-                                           )-                                           ## </constant>-     ||    ( ( $pos = $pad{I1578} ) && 0 ) )-                                         ## </group>-    ;-                                     $bool;-                                   };-                               }-                               ## </before>-     ? 0 : 1;-                           $bool;-                         };-                     }-                     ## </negate>-     ||    ( ( $pos = $pad{I1577} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 17109 17128-                    (   ( $pad{I1579} = $pos or 1 ) &&-                     ## <named_capture>-                     ## pos: 17109 17123-                     do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                 $grammar->conjunctive1( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'conjunctive1'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                     ## </named_capture>-     ||    ( ( $pos = $pad{I1579} ) && 0 ) )-                   ## </group>-    -                 )-                 ## </concat>-     ||    ( ( $pos = $pad{I1575} ) && 0 ) )) {}; $bool = 1 }-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 17136 17313-              (   ( $pad{I1580} = $pos or 1 ) &&-               ## <closure>-               ## pos: 17136 17312-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub {-            my @a = map {  $$_  }  @{ $::_V6_MATCH_->{'conjunctive1'} };-            return { alt1 => \@a, _pos => [$_[0]->from, $_[0]->to] }  if scalar @a > 1;-            return $a[0];-        }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1580} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token conjunctive-*conjunctive =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 17340 17614-           (-             ## <quant>-             ## pos: 17340 17363-             (-              (   ( $pad{I1581} = $pos or 1 ) &&-                 ## <concat>-                 ## pos: 17341 17355-                 (-                   ## <quant>-                   ## pos: 17341 17349-                   (-                    (   ( $pad{I1582} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 17342 17347-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1582} ) && 0 ) )-                   || ( $bool = 1 )-                   )-                   ## </quant>-    -                 &&-      -                   ## <group>-                   ## pos: 17349 17352-                    (   ( $pad{I1583} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17349 17351-                     ( ( substr( $s, $pos, 1 ) eq '&' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1583} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 17352 17355-                    (   ( $pad{I1584} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17352 17354-                     ( ( substr( $s, $pos, 1 ) eq '&' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1584} ) && 0 ) )-                   ## </group>-    -                 )-                 ## </concat>-     ||    ( ( $pos = $pad{I1581} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 17363 17387-             (-              (   ( $pad{I1585} = $pos or 1 ) &&-                 ## <named_capture>-                 ## pos: 17363 17377-                 do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                             $grammar->disjunctive1( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'disjunctive1'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                 ## </named_capture>-     ||    ( ( $pos = $pad{I1585} ) && 0 ) )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 17387 17430-             do { while (-              (   ( $pad{I1586} = $pos or 1 ) &&-                 ## <concat>-                 ## pos: 17388 17422-                 (-      -                   ## <group>-                   ## pos: 17388 17400-                    (   ( $pad{I1587} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17397 17399-                     ( ( substr( $s, $pos, 1 ) eq '&' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1587} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 17400 17403-                    (   ( $pad{I1588} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17400 17402-                     ( ( substr( $s, $pos, 1 ) eq '&' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1588} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 17403 17422-                    (   ( $pad{I1589} = $pos or 1 ) &&-                     ## <named_capture>-                     ## pos: 17403 17417-                     do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                 $grammar->disjunctive1( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'disjunctive1'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                     ## </named_capture>-     ||    ( ( $pos = $pad{I1589} ) && 0 ) )-                   ## </group>-    -                 )-                 ## </concat>-     ||    ( ( $pos = $pad{I1586} ) && 0 ) )) {}; $bool = 1 }-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 17430 17614-              (   ( $pad{I1590} = $pos or 1 ) &&-               ## <closure>-               ## pos: 17430 17613-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub {-            my @a = map {  $$_  }  @{ $::_V6_MATCH_->{'disjunctive1'} };-            return { conjunctive => \@a, _pos => [$_[0]->from, $_[0]->to] }  if scalar @a > 1;-            return $a[0];-        }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1590} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token rule-*rule =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 17634 17898-           (-             ## <quant>-             ## pos: 17634 17657-             (-              (   ( $pad{I1591} = $pos or 1 ) &&-                 ## <concat>-                 ## pos: 17635 17649-                 (-                   ## <quant>-                   ## pos: 17635 17643-                   (-                    (   ( $pad{I1592} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 17636 17641-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1592} ) && 0 ) )-                   || ( $bool = 1 )-                   )-                   ## </quant>-    -                 &&-      -                   ## <group>-                   ## pos: 17643 17646-                    (   ( $pad{I1593} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17643 17645-                     ( ( substr( $s, $pos, 1 ) eq '|' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1593} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 17646 17649-                    (   ( $pad{I1594} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17646 17648-                     ( ( substr( $s, $pos, 1 ) eq '|' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1594} ) && 0 ) )-                   ## </group>-    -                 )-                 ## </concat>-     ||    ( ( $pos = $pad{I1591} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 17657 17680-             (-              (   ( $pad{I1595} = $pos or 1 ) &&-                 ## <named_capture>-                 ## pos: 17657 17670-                 do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                             $grammar->conjunctive( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'conjunctive'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                 ## </named_capture>-     ||    ( ( $pos = $pad{I1595} ) && 0 ) )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 17680 17722-             do { while (-              (   ( $pad{I1596} = $pos or 1 ) &&-                 ## <concat>-                 ## pos: 17681 17714-                 (-      -                   ## <group>-                   ## pos: 17681 17693-                    (   ( $pad{I1597} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17690 17692-                     ( ( substr( $s, $pos, 1 ) eq '|' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1597} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 17693 17696-                    (   ( $pad{I1598} = $pos or 1 ) &&-    -                     ## <constant>-                     ## pos: 17693 17695-                     ( ( substr( $s, $pos, 1 ) eq '|' )-                         ? ( $pos += 1 or 1 )-                         : 0-                     )-                     ## </constant>-     ||    ( ( $pos = $pad{I1598} ) && 0 ) )-                   ## </group>-    -                 &&-      -                   ## <group>-                   ## pos: 17696 17714-                    (   ( $pad{I1599} = $pos or 1 ) &&-                     ## <named_capture>-                     ## pos: 17696 17709-                     do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                 $grammar->conjunctive( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'conjunctive'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                     ## </named_capture>-     ||    ( ( $pos = $pad{I1599} ) && 0 ) )-                   ## </group>-    -                 )-                 ## </concat>-     ||    ( ( $pos = $pad{I1596} ) && 0 ) )) {}; $bool = 1 }-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 17722 17898-              (   ( $pad{I1600} = $pos or 1 ) &&-               ## <closure>-               ## pos: 17722 17897-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub {-            my @a = map {  $$_  }  @{ $::_V6_MATCH_->{'conjunctive'} };-            return { alt => \@a, _pos => [$_[0]->from, $_[0]->to], }  if scalar @a > 1;-            return $a[0];-        }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1600} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token named_regex-*named_regex =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 17925 18145-           (-      -             ## <group>-             ## pos: 17925 17960-              (   ( $pad{I1601} = $pos or 1 ) &&-    -               ## <capture>-               do{-                   my $hash = do {-                     my $bool = 1;-                     my $from = $pos;-                     my @match;-                     my %named;-                     $bool = 0 unless-                       ## <alt>-                       ## pos: 17926 17954-                       (-                           ( $pad{I1602} = $pos or 1 )-                           && (-      -                           ## <group>-                           ## pos: 17926 17935-                            (   ( $pad{I1603} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 17927 17934-                             ( ( substr( $s, $pos, 5 ) eq 'token' )-                                 ? ( $pos += 5 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1603} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1602} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 17936 17945-                            (   ( $pad{I1604} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 17937 17944-                             ( ( substr( $s, $pos, 5 ) eq 'regex' )-                                 ? ( $pos += 5 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1604} ) && 0 ) )-                           ## </group>-    -                           )-                         || (-                           ( ( $bool = 1 ) && ( $pos = $pad{I1602} ) or 1 )-                           &&   -                           ## <group>-                           ## pos: 17946 17954-                            (   ( $pad{I1605} = $pos or 1 ) &&-    -                             ## <constant>-                             ## pos: 17947 17953-                             ( ( substr( $s, $pos, 4 ) eq 'rule' )-                                 ? ( $pos += 4 or 1 )-                                 : 0-                             )-                             ## </constant>-     ||    ( ( $pos = $pad{I1605} ) && 0 ) )-                           ## </group>-    -                         )-                       )-                       ## </alt>-    ;-                     { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                   };-                   my $bool = ${$hash->{'bool'}};-                   $match[ 0 ] = Pugs::Runtime::Match->new( $hash );-                   $bool;-               }-               ## </capture>-     ||    ( ( $pos = $pad{I1601} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 17960 17966-              (   ( $pad{I1606} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 17960 17965-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1606} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 17966 17974-              (   ( $pad{I1607} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 17966 17973-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ident( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'ident'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1607} ) && 0 ) )-             ## </group>-    -           &&-             ## <quant>-             ## pos: 17974 17981-             (-              (   ( $pad{I1608} = $pos or 1 ) &&-                 ## <metasyntax>-                 ## pos: 17974 17979-                 do {-                      my $prior = $::_V6_PRIOR_;-                      my $match =-                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                      $::_V6_PRIOR_ = $prior;-                      my $bool = (!$match != 1);-                      $pos = $match->to if $bool;-                      $match;-                 }-                 ## </metasyntax>-     ||    ( ( $pos = $pad{I1608} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 17981 17993-              (   ( $pad{I1609} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 17981 17984-               ( ( substr( $s, $pos, 1 ) eq '{' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1609} ) && 0 ) )-             ## </group>-    -           &&-             ## <quant>-             ## pos: 17993 18008-             (-              (   ( $pad{I1610} = $pos or 1 ) &&-                 ## <metasyntax>-                 ## pos: 17993 17998-                 do {-                      my $prior = $::_V6_PRIOR_;-                      my $match =-                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                      $::_V6_PRIOR_ = $prior;-                      my $bool = (!$match != 1);-                      $pos = $match->to if $bool;-                      $match;-                 }-                 ## </metasyntax>-     ||    ( ( $pos = $pad{I1610} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 18008 18019-              (   ( $pad{I1611} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 18008 18014-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'rule'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1611} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 18019 18023-              (   ( $pad{I1612} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 18019 18022-               ( ( substr( $s, $pos, 1 ) eq '}' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1612} ) && 0 ) )-             ## </group>-    -           &&-             ## <quant>-             ## pos: 18023 18033-             (-              (   ( $pad{I1613} = $pos or 1 ) &&-    -                 ## <constant>-                 ## pos: 18023 18026-                 ( ( substr( $s, $pos, 1 ) eq ';' )-                     ? ( $pos += 1 or 1 )-                     : 0-                 )-                 ## </constant>-     ||    ( ( $pos = $pad{I1613} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 18033 18145-              (   ( $pad{I1614} = $pos or 1 ) &&-               ## <closure>-               ## pos: 18033 18144-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return {-                type => ${ $_[0]->[0] },-                name => ${ $_[0]->{qw(ident)} },-                ast => ${ $_[0]->{qw(rule)} }-            };-        }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1614} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token verbatim-*verbatim =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 18207 18329-           (-      -             ## <group>-             ## pos: 18207 18212-              (   ( $pad{I1615} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 18207 18211-               ( ( substr( $s, $pos, 2 ) eq '%{' )-                   ? ( $pos += 2 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1615} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 18212 18238-              (   ( $pad{I1616} = $pos or 1 ) &&-    -               ## <capture>-               do{-                   my $hash = do {-                     my $bool = 1;-                     my $from = $pos;-                     my @match;-                     my %named;-                     $bool = 0 unless-                       ## <quant>-                       ## pos: 18213 18236-                       do { while (-                        (   ( $pad{I1617} = $pos or 1 ) &&-                           ## <concat>-                           ## pos: 18215 18233-                           (-      -                             ## <group>-                             ## pos: 18215 18231-                              (   ( $pad{I1618} = $pos or 1 ) &&-                               ## <negate>-                               ## pos: 18216 18230-                               do{-                                   my $pos1 = $pos;-                                   do {-                                     my $pos = $pos1;-                                     my $from = $pos;-                                     my @match;-                                     my %named;-                                     $bool = -                                         ## <before>-                                         ## pos: 18225 18229-                                         do{-                                             my $pos1 = $pos;-                                             do {-                                               my $pos = $pos1;-                                               my $from = $pos;-                                               my @match;-                                               my %named;-                                               $bool = 0 unless-    -                                                   ## <constant>-                                                   ## pos: 18225 18229-                                                   ( ( substr( $s, $pos, 2 ) eq '%}' )-                                                       ? ( $pos += 2 or 1 )-                                                       : 0-                                                   )-                                                   ## </constant>-    ;-                                               $bool;-                                             };-                                         }-                                         ## </before>-     ? 0 : 1;-                                     $bool;-                                   };-                               }-                               ## </negate>-     ||    ( ( $pos = $pad{I1618} ) && 0 ) )-                             ## </group>-    -                           &&-      -                             ## <group>-                             ## pos: 18231 18233-                              (   ( $pad{I1619} = $pos or 1 ) &&-    -                               ## <dot>-                               ## pos: 18231 18232-                               ( substr( $s, $pos++, 1 ) ne '' )-                               ## </dot>-     ||    ( ( $pos = $pad{I1619} ) && 0 ) )-                             ## </group>-    -                           )-                           ## </concat>-     ||    ( ( $pos = $pad{I1617} ) && 0 ) )) {}; $bool = 1 }-                       ## </quant>-    ;-                     { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }-                   };-                   my $bool = ${$hash->{'bool'}};-                   $match[ 0 ] = Pugs::Runtime::Match->new( $hash );-                   $bool;-               }-               ## </capture>-     ||    ( ( $pos = $pad{I1616} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 18238 18247-              (   ( $pad{I1620} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 18238 18242-               ( ( substr( $s, $pos, 2 ) eq '%}' )-                   ? ( $pos += 2 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1620} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 18247 18329-              (   ( $pad{I1621} = $pos or 1 ) &&-               ## <closure>-               ## pos: 18247 18328-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return {-                type => 'block',-                value => ${ $_[0]->[0] }-            };-        }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1621} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token item-*item =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <alt>-           ## pos: 18349 18441-           (-               ( $pad{I1622} = $pos or 1 )-               && (-               ## <concat>-               ## pos: 18350 18397-               (-      -                 ## <group>-                 ## pos: 18350 18368-                  (   ( $pad{I1623} = $pos or 1 ) &&-                   ## <named_capture>-                   ## pos: 18351 18361-                   do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                               $grammar->verbatim( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'verbatim'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                   ## </named_capture>-     ||    ( ( $pos = $pad{I1623} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 18368 18397-                  (   ( $pad{I1624} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 18368 18392-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return ${ $_[0]->{qw(verbatim)} }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1624} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -               )-             || (-               ( ( $bool = 1 ) && ( $pos = $pad{I1622} ) or 1 )-               &&            ## <concat>-               ## pos: 18398 18441-               (-      -                 ## <group>-                 ## pos: 18398 18413-                  (   ( $pad{I1625} = $pos or 1 ) &&-                   ## <named_capture>-                   ## pos: 18399 18412-                   do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                               $grammar->named_regex( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'named_regex'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                   ## </named_capture>-     ||    ( ( $pos = $pad{I1625} ) && 0 ) )-                 ## </group>-    -               &&-      -                 ## <group>-                 ## pos: 18413 18441-                  (   ( $pad{I1626} = $pos or 1 ) &&-                   ## <closure>-                   ## pos: 18413 18440-                   do {-                     local $::_V6_SUCCEED = 1;-                     $::_V6_MATCH_ = $m;-                     $m->data->{capture} = \( sub { return ${ $_[0]->{qw(named_regex)} }; }->( $m ) ); -                     $bool = $::_V6_SUCCEED;-                     $::_V6_MATCH_ = $m if $bool; -                     return $m if $bool; -                   }-                   ## </closure>-     ||    ( ( $pos = $pad{I1626} ) && 0 ) )-                 ## </group>-    -               )-               ## </concat>-    -             )-           )-           ## </alt>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token grammar-*grammar =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 18464 18580-           (-             ## <quant>-             ## pos: 18464 18471-             (-              (   ( $pad{I1627} = $pos or 1 ) &&-                 ## <metasyntax>-                 ## pos: 18464 18469-                 do {-                      my $prior = $::_V6_PRIOR_;-                      my $match =-                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                      $::_V6_PRIOR_ = $prior;-                      my $bool = (!$match != 1);-                      $pos = $match->to if $bool;-                      $match;-                 }-                 ## </metasyntax>-     ||    ( ( $pos = $pad{I1627} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 18471 18481-              (   ( $pad{I1628} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 18471 18480-               ( ( substr( $s, $pos, 7 ) eq 'grammar' )-                   ? ( $pos += 7 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1628} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 18481 18487-              (   ( $pad{I1629} = $pos or 1 ) &&-               ## <metasyntax>-               ## pos: 18481 18486-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    my $bool = (!$match != 1);-                    $pos = $match->to if $bool;-                    $match;-               }-               ## </metasyntax>-     ||    ( ( $pos = $pad{I1629} ) && 0 ) )-             ## </group>-    -           &&-      -             ## <group>-             ## pos: 18487 18495-              (   ( $pad{I1630} = $pos or 1 ) &&-               ## <named_capture>-               ## pos: 18487 18494-               do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                           $grammar->ident( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { $named{'ident'} = $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-               ## </named_capture>-     ||    ( ( $pos = $pad{I1630} ) && 0 ) )-             ## </group>-    -           &&-             ## <quant>-             ## pos: 18495 18502-             (-              (   ( $pad{I1631} = $pos or 1 ) &&-                 ## <metasyntax>-                 ## pos: 18495 18500-                 do {-                      my $prior = $::_V6_PRIOR_;-                      my $match =-                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                      $::_V6_PRIOR_ = $prior;-                      my $bool = (!$match != 1);-                      $pos = $match->to if $bool;-                      $match;-                 }-                 ## </metasyntax>-     ||    ( ( $pos = $pad{I1631} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 18502 18510-              (   ( $pad{I1632} = $pos or 1 ) &&-    -               ## <constant>-               ## pos: 18502 18505-               ( ( substr( $s, $pos, 1 ) eq ';' )-                   ? ( $pos += 1 or 1 )-                   : 0-               )-               ## </constant>-     ||    ( ( $pos = $pad{I1632} ) && 0 ) )-             ## </group>-    -           &&-             ## <quant>-             ## pos: 18510 18521-             (-              (   ( $pad{I1633} = $pos or 1 ) &&-                 ## <metasyntax>-                 ## pos: 18510 18515-                 do {-                      my $prior = $::_V6_PRIOR_;-                      my $match =-                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                      $::_V6_PRIOR_ = $prior;-                      my $bool = (!$match != 1);-                      $pos = $match->to if $bool;-                      $match;-                 }-                 ## </metasyntax>-     ||    ( ( $pos = $pad{I1633} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 18521 18544-             do { while (-              (   ( $pad{I1634} = $pos or 1 ) &&-                 ## <concat>-                 ## pos: 18522 18537-                 (-      -                   ## <group>-                   ## pos: 18522 18530-                    (   ( $pad{I1635} = $pos or 1 ) &&-                     ## <named_capture>-                     ## pos: 18523 18529-                     do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                                 $grammar->item( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'item'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                     ## </named_capture>-     ||    ( ( $pos = $pad{I1635} ) && 0 ) )-                   ## </group>-    -                 &&-                   ## <quant>-                   ## pos: 18530 18537-                   (-                    (   ( $pad{I1636} = $pos or 1 ) &&-                       ## <metasyntax>-                       ## pos: 18530 18535-                       do {-                            my $prior = $::_V6_PRIOR_;-                            my $match =-                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                            $::_V6_PRIOR_ = $prior;-                            my $bool = (!$match != 1);-                            $pos = $match->to if $bool;-                            $match;-                       }-                       ## </metasyntax>-     ||    ( ( $pos = $pad{I1636} ) && 0 ) )-                   || ( $bool = 1 )-                   )-                   ## </quant>-    -                 )-                 ## </concat>-     ||    ( ( $pos = $pad{I1634} ) && 0 ) )) {}; $bool = 1 }-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 18544 18580-              (   ( $pad{I1637} = $pos or 1 ) &&-               ## <closure>-               ## pos: 18544 18579-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return { ${ $_[0]->{qw(ident)} } => $_[0]->{qw(item)} } }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1637} ) && 0 ) )-             ## </group>-    -           )-           ## </concat>-    ;-        }-        if ( $bool ) {-          my $prior = $::_V6_PRIOR_;-          $::_V6_PRIOR_ = sub {-            local $main::_V6_PRIOR_ = $prior;-            $rule->(@_);-          };-          #warn "pos2 = ", $pos, "\n";-          pos($_[1]) = $pos if $_[3]{continue};-          last;-        }-      } # /for-      $::_V6_MATCH_ = $m;-      return $m;-    } }-    ## </global>-;--# token spec-*spec =-    ## <global>-    ## sigspace: 0-    ## ratchet: 1-    do { my $rule; $rule = sub {-      my $grammar = $_[0];-      my $s = $_[1];-      $_[3] = $_[2] unless defined $_[3]; # backwards compat-      no warnings 'substr', 'uninitialized', 'syntax';-      my %pad;-      my $m;-      my $bool;-      my @pos;-      # XXX :pos(X) takes the precedence over :continue ?-      if (defined $_[3]{p}) {-        push @pos, $_[3]{p} || 0;-      } elsif ($_[3]{continue}) {-        push @pos, (pos($_[1]) || 0) .. length($s);-      } else {-        push @pos, 0..length($s);-      }-      for my $pos ( @pos ) {-        my %index;-        my @match;-        my %named;-        $bool = 1;-        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};-        $m = Pugs::Runtime::Match->new( {-          str => \$s, from => \(0+$pos), to => \($pos),-          bool => \$bool, match => \@match, named => \%named, capture => undef,-        } );-        {-          my $prior = $::_V6_PRIOR_;-          local $::_V6_PRIOR_ = $prior;-          $bool = 0 unless-           ## <concat>-           ## pos: 18600 18720-           (-             ## <quant>-             ## pos: 18600 18616-             (-              (   ( $pad{I1638} = $pos or 1 ) &&-                 ## <named_capture>-                 ## pos: 18600 18610-                 do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                             $grammar->verbatim( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'verbatim'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                 ## </named_capture>-     ||    ( ( $pos = $pad{I1638} ) && 0 ) )-             || ( $bool = 1 )-             )-             ## </quant>-    -           &&-             ## <quant>-             ## pos: 18616 18631-             do { while (-              (   ( $pad{I1639} = $pos or 1 ) &&-                 ## <named_capture>-                 ## pos: 18616 18625-                 do {-                    my $prior = $::_V6_PRIOR_;-                    my $match =-                             $grammar->grammar( $s, { p => $pos, positionals => [  ], args => {}, }, undef );-                    $::_V6_PRIOR_ = $prior;-                    if ( $match ) { push @{$named{'grammar'}}, $match;-                        $pos = $match->to;-                        1-                    }-                    else { 0 }-                }-                 ## </named_capture>-     ||    ( ( $pos = $pad{I1639} ) && 0 ) )) {}; $bool = 1 }-             ## </quant>-    -           &&-      -             ## <group>-             ## pos: 18631 18720-              (   ( $pad{I1640} = $pos or 1 ) &&-               ## <closure>-               ## pos: 18631 18719-               do {-                 local $::_V6_SUCCEED = 1;-                 $::_V6_MATCH_ = $m;-                 $m->data->{capture} = \( sub { return {-                block => $_[0]->{qw(verbatim)},-                'grammar' => $_[0]->{qw(grammar)} }-        }->( $m ) ); -                 $bool = $::_V6_SUCCEED;-                 $::_V6_MATCH_ = $m if $bool; -                 return $m if $bool; -               }-               ## </closure>-     ||    ( ( $pos = $pad{I1640} ) && 0 ) )+# script from examples/Grammar.grammar at Tue Jul 22 22:14:35 2008++use strict;+use warnings;++package Pugs::Grammar::Rule;++#use base 'Pugs::Grammar::Base';++use Pugs::Runtime::Match;+use Pugs::Runtime::Regex;+use Pugs::Runtime::Tracer ();++# Code block from grammar spec+++use utf8;+no strict 'refs';+no warnings 'redefine';+no warnings 'once';++#use Pugs::Runtime::Match;++our %rule_terms;+our %variables;++++# token pod_begin+*pod_begin =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 632 675+           (+               ( $pad{I1955} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 633 652+               (+      +                 ## <group>+                 ## pos: 633 639+                  (   ( $pad{I1956} = $pos or 1 ) &&+                   ## <perl5>+                   ( ( substr( $s, $pos ) =~ m/^((?:\n\r?|\r\n?))/ )+                       ? ( $pos += length( $1 ) or 1 )+                       : 0+                   )+                   ## </perl5>+     ||    ( ( $pos = $pad{I1956} ) && 0 ) )+                 ## </group>+    +               &&+    +                 ## <constant>+                 ## pos: 639 640+                 ( ( substr( $s, $pos, 1 ) eq '=' )+                     ? ( $pos += 1 or 1 )+                     : 0+                 )+                 ## </constant>+    +               &&+    +                 ## <constant>+                 ## pos: 640 641+                 ( ( substr( $s, $pos, 1 ) eq 'e' )+                     ? ( $pos += 1 or 1 )+                     : 0+                 )+                 ## </constant>+    +               &&+    +                 ## <constant>+                 ## pos: 641 642+                 ( ( substr( $s, $pos, 1 ) eq 'n' )+                     ? ( $pos += 1 or 1 )+                     : 0+                 )+                 ## </constant>+    +               &&+      +                 ## <group>+                 ## pos: 642 644+                  (   ( $pad{I1957} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 642 643+                   ( ( substr( $s, $pos, 1 ) eq 'd' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I1957} ) && 0 ) )+                 ## </group>+    +               &&+                 ## <quant>+                 ## pos: 644 652+                 do { while (+                  (   ( $pad{I1958} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I1958} ) && 0 ) )) {}; $bool = 1 }+                 ## </quant>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I1955} ) or 1 )+               &&            ## <concat>+               ## pos: 653 675+               (+      +                 ## <group>+                 ## pos: 653 658+                  (   ( $pad{I1959} = $pos or 1 ) &&+    +                   ## <dot>+                   ## pos: 656 657+                   ( substr( $s, $pos++, 1 ) ne '' )+                   ## </dot>+     ||    ( ( $pos = $pad{I1959} ) && 0 ) )+                 ## </group>+    +               &&+                 ## <quant>+                 ## pos: 658 662+                 do { while (+                  (   ( $pad{I1960} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I1960} ) && 0 ) )) {}; $bool = 1 }+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 662 675+                  (   ( $pad{I1961} = $pos or 1 ) &&+                   ## <metasyntax>+                   ## pos: 662 674+                   do {+                        my $prior = $::_V6_PRIOR_;+                        my $match =+                               $grammar->pod_begin( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                        $::_V6_PRIOR_ = $prior;+                        my $bool = (!$match != 1);+                        $pos = $match->to if $bool;+                        $match;+                   }+                   ## </metasyntax>+     ||    ( ( $pos = $pad{I1961} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token pod_other+*pod_other =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 700 743+           (+               ( $pad{I1962} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 701 720+               (+      +                 ## <group>+                 ## pos: 701 707+                  (   ( $pad{I1963} = $pos or 1 ) &&+                   ## <perl5>+                   ( ( substr( $s, $pos ) =~ m/^((?:\n\r?|\r\n?))/ )+                       ? ( $pos += length( $1 ) or 1 )+                       : 0+                   )+                   ## </perl5>+     ||    ( ( $pos = $pad{I1963} ) && 0 ) )+                 ## </group>+    +               &&+    +                 ## <constant>+                 ## pos: 707 708+                 ( ( substr( $s, $pos, 1 ) eq '=' )+                     ? ( $pos += 1 or 1 )+                     : 0+                 )+                 ## </constant>+    +               &&+    +                 ## <constant>+                 ## pos: 708 709+                 ( ( substr( $s, $pos, 1 ) eq 'c' )+                     ? ( $pos += 1 or 1 )+                     : 0+                 )+                 ## </constant>+    +               &&+    +                 ## <constant>+                 ## pos: 709 710+                 ( ( substr( $s, $pos, 1 ) eq 'u' )+                     ? ( $pos += 1 or 1 )+                     : 0+                 )+                 ## </constant>+    +               &&+      +                 ## <group>+                 ## pos: 710 712+                  (   ( $pad{I1964} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 710 711+                   ( ( substr( $s, $pos, 1 ) eq 't' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I1964} ) && 0 ) )+                 ## </group>+    +               &&+                 ## <quant>+                 ## pos: 712 720+                 do { while (+                  (   ( $pad{I1965} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I1965} ) && 0 ) )) {}; $bool = 1 }+                 ## </quant>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I1962} ) or 1 )+               &&            ## <concat>+               ## pos: 721 743+               (+      +                 ## <group>+                 ## pos: 721 726+                  (   ( $pad{I1966} = $pos or 1 ) &&+    +                   ## <dot>+                   ## pos: 724 725+                   ( substr( $s, $pos++, 1 ) ne '' )+                   ## </dot>+     ||    ( ( $pos = $pad{I1966} ) && 0 ) )+                 ## </group>+    +               &&+                 ## <quant>+                 ## pos: 726 730+                 do { while (+                  (   ( $pad{I1967} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I1967} ) && 0 ) )) {}; $bool = 1 }+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 730 743+                  (   ( $pad{I1968} = $pos or 1 ) &&+                   ## <metasyntax>+                   ## pos: 730 742+                   do {+                        my $prior = $::_V6_PRIOR_;+                        my $match =+                               $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                        $::_V6_PRIOR_ = $prior;+                        my $bool = (!$match != 1);+                        $pos = $match->to if $bool;+                        $match;+                   }+                   ## </metasyntax>+     ||    ( ( $pos = $pad{I1968} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token ws+*ws =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <quant>+           ## pos: 761 1059+           (+            (   ( $pad{I1969} = $pos or 1 ) &&+               ## <alt>+               ## pos: 762 1056+               (+                   ( $pad{I1970} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 768 783+                   (+      +                     ## <group>+                     ## pos: 768 775+                      (   ( $pad{I1971} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 772 774+                       ( ( substr( $s, $pos, 1 ) eq '#' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I1971} ) && 0 ) )+                     ## </group>+    +                   &&+                     ## <quant>+                     ## pos: 775 783+                     do { while (+                      (   ( $pad{I1972} = $pos or 1 ) &&+                         ## <perl5>+                         ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )+                             ? ( $pos += length( $1 ) or 1 )+                             : 0+                         )+                         ## </perl5>+     ||    ( ( $pos = $pad{I1972} ) && 0 ) )) {}; $bool = 1 }+                     ## </quant>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I1970} ) or 1 )+                   &&                ## <concat>+                   ## pos: 784 1044+                   (+      +                     ## <group>+                     ## pos: 784 791+                      (   ( $pad{I1973} = $pos or 1 ) &&+                       ## <perl5>+                       ( ( substr( $s, $pos ) =~ m/^((?:\n\r?|\r\n?))/ )+                           ? ( $pos += length( $1 ) or 1 )+                           : 0+                       )+                       ## </perl5>+     ||    ( ( $pos = $pad{I1973} ) && 0 ) )+                     ## </group>+    +                   &&+                     ## <quant>+                     ## pos: 791 1044+                     (+                      (   ( $pad{I1974} = $pos or 1 ) &&+                         ## <concat>+                         ## pos: 792 1037+                         (+      +                           ## <group>+                           ## pos: 792 795+                            (   ( $pad{I1975} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 793 794+                             ( ( substr( $s, $pos, 1 ) eq '=' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I1975} ) && 0 ) )+                           ## </group>+    +                         &&+                           ## <quant>+                           ## pos: 795 1037+                           (+                            (   ( $pad{I1976} = $pos or 1 ) &&+                               ## <alt>+                               ## pos: 796 1022+                               (+                                   ( $pad{I1977} = $pos or 1 )+                                   && (+                                   ## <concat>+                                   ## pos: 810 847+                                   (+      +                                     ## <group>+                                     ## pos: 810 813+                                      (   ( $pad{I1978} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 812 813+                                       ( ( substr( $s, $pos, 1 ) eq 'b' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1978} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 813 814+                                     ( ( substr( $s, $pos, 1 ) eq 'e' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 814 815+                                     ( ( substr( $s, $pos, 1 ) eq 'g' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 815 816+                                     ( ( substr( $s, $pos, 1 ) eq 'i' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 816 818+                                      (   ( $pad{I1979} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 816 817+                                       ( ( substr( $s, $pos, 1 ) eq 'n' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1979} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 818 824+                                      (   ( $pad{I1980} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 818 823+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1980} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 824 825+                                     ( ( substr( $s, $pos, 1 ) eq 'E' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 825 826+                                     ( ( substr( $s, $pos, 1 ) eq 'N' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 826 828+                                      (   ( $pad{I1981} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 826 827+                                       ( ( substr( $s, $pos, 1 ) eq 'D' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1981} ) && 0 ) )+                                     ## </group>+    +                                   &&+                                     ## <quant>+                                     ## pos: 828 832+                                     do { while (+                                      (   ( $pad{I1982} = $pos or 1 ) &&+                                         ## <perl5>+                                         ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )+                                             ? ( $pos += length( $1 ) or 1 )+                                             : 0+                                         )+                                         ## </perl5>+     ||    ( ( $pos = $pad{I1982} ) && 0 ) )) {}; $bool = 1 }+                                     ## </quant>+    +                                   &&+                                     ## <quant>+                                     ## pos: 832 847+                                     do { while (+                                      (   ( $pad{I1983} = $pos or 1 ) &&+    +                                         ## <dot>+                                         ## pos: 832 833+                                         ( substr( $s, $pos++, 1 ) ne '' )+                                         ## </dot>+     ||    ( ( $pos = $pad{I1983} ) && 0 ) )) {}; $bool = 1 }+                                     ## </quant>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 848 882+                                   (+      +                                     ## <group>+                                     ## pos: 848 851+                                      (   ( $pad{I1984} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 850 851+                                       ( ( substr( $s, $pos, 1 ) eq 'b' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1984} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 851 852+                                     ( ( substr( $s, $pos, 1 ) eq 'e' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 852 853+                                     ( ( substr( $s, $pos, 1 ) eq 'g' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 853 854+                                     ( ( substr( $s, $pos, 1 ) eq 'i' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 854 857+                                      (   ( $pad{I1985} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 854 855+                                       ( ( substr( $s, $pos, 1 ) eq 'n' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1985} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 857 882+                                      (   ( $pad{I1986} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 857 869+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_begin( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1986} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 883 917+                                   (+      +                                     ## <group>+                                     ## pos: 883 886+                                      (   ( $pad{I1987} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 885 886+                                       ( ( substr( $s, $pos, 1 ) eq 'k' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1987} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 886 887+                                     ( ( substr( $s, $pos, 1 ) eq 'w' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 887 888+                                     ( ( substr( $s, $pos, 1 ) eq 'i' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 888 892+                                      (   ( $pad{I1988} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 888 889+                                       ( ( substr( $s, $pos, 1 ) eq 'd' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1988} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 892 917+                                      (   ( $pad{I1989} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 892 904+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1989} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 918 952+                                   (+      +                                     ## <group>+                                     ## pos: 918 921+                                      (   ( $pad{I1990} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 920 921+                                       ( ( substr( $s, $pos, 1 ) eq 'p' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1990} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 921 922+                                     ( ( substr( $s, $pos, 1 ) eq 'o' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 922 927+                                      (   ( $pad{I1991} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 922 923+                                       ( ( substr( $s, $pos, 1 ) eq 'd' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1991} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 927 952+                                      (   ( $pad{I1992} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 927 939+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1992} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 953 987+                                   (+      +                                     ## <group>+                                     ## pos: 953 956+                                      (   ( $pad{I1993} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 955 956+                                       ( ( substr( $s, $pos, 1 ) eq 'f' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1993} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 956 957+                                     ( ( substr( $s, $pos, 1 ) eq 'o' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 957 962+                                      (   ( $pad{I1994} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 957 958+                                       ( ( substr( $s, $pos, 1 ) eq 'r' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1994} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 962 987+                                      (   ( $pad{I1995} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 962 974+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1995} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 988 1022+                                   (+      +                                     ## <group>+                                     ## pos: 988 991+                                      (   ( $pad{I1996} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 990 991+                                       ( ( substr( $s, $pos, 1 ) eq 'h' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1996} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 991 992+                                     ( ( substr( $s, $pos, 1 ) eq 'e' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 992 993+                                     ( ( substr( $s, $pos, 1 ) eq 'a' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 993 994+                                     ( ( substr( $s, $pos, 1 ) eq 'd' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 994 997+                                      (   ( $pad{I1997} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 994 995+                                       ( ( substr( $s, $pos, 1 ) eq '1' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1997} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 997 1022+                                      (   ( $pad{I1998} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 997 1009+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1998} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                 )+                               )+                               ## </alt>+     ||    ( ( $pos = $pad{I1976} ) && 0 ) )+                           || ( $bool = 1 )+                           )+                           ## </quant>+    +                         )+                         ## </concat>+     ||    ( ( $pos = $pad{I1974} ) && 0 ) )+                     || ( $bool = 1 )+                     )+                     ## </quant>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I1970} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 1045 1056+                    (   ( $pad{I1999} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^(\s)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I1999} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I1969} ) && 0 ) )+           && do { while (+            (   ( $pad{I1969} = $pos or 1 ) &&+               ## <alt>+               ## pos: 762 1056+               (+                   ( $pad{I1970} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 768 783+                   (+      +                     ## <group>+                     ## pos: 768 775+                      (   ( $pad{I1971} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 772 774+                       ( ( substr( $s, $pos, 1 ) eq '#' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I1971} ) && 0 ) )+                     ## </group>+    +                   &&+                     ## <quant>+                     ## pos: 775 783+                     do { while (+                      (   ( $pad{I1972} = $pos or 1 ) &&+                         ## <perl5>+                         ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )+                             ? ( $pos += length( $1 ) or 1 )+                             : 0+                         )+                         ## </perl5>+     ||    ( ( $pos = $pad{I1972} ) && 0 ) )) {}; $bool = 1 }+                     ## </quant>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I1970} ) or 1 )+                   &&                ## <concat>+                   ## pos: 784 1044+                   (+      +                     ## <group>+                     ## pos: 784 791+                      (   ( $pad{I1973} = $pos or 1 ) &&+                       ## <perl5>+                       ( ( substr( $s, $pos ) =~ m/^((?:\n\r?|\r\n?))/ )+                           ? ( $pos += length( $1 ) or 1 )+                           : 0+                       )+                       ## </perl5>+     ||    ( ( $pos = $pad{I1973} ) && 0 ) )+                     ## </group>+    +                   &&+                     ## <quant>+                     ## pos: 791 1044+                     (+                      (   ( $pad{I1974} = $pos or 1 ) &&+                         ## <concat>+                         ## pos: 792 1037+                         (+      +                           ## <group>+                           ## pos: 792 795+                            (   ( $pad{I1975} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 793 794+                             ( ( substr( $s, $pos, 1 ) eq '=' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I1975} ) && 0 ) )+                           ## </group>+    +                         &&+                           ## <quant>+                           ## pos: 795 1037+                           (+                            (   ( $pad{I1976} = $pos or 1 ) &&+                               ## <alt>+                               ## pos: 796 1022+                               (+                                   ( $pad{I1977} = $pos or 1 )+                                   && (+                                   ## <concat>+                                   ## pos: 810 847+                                   (+      +                                     ## <group>+                                     ## pos: 810 813+                                      (   ( $pad{I1978} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 812 813+                                       ( ( substr( $s, $pos, 1 ) eq 'b' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1978} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 813 814+                                     ( ( substr( $s, $pos, 1 ) eq 'e' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 814 815+                                     ( ( substr( $s, $pos, 1 ) eq 'g' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 815 816+                                     ( ( substr( $s, $pos, 1 ) eq 'i' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 816 818+                                      (   ( $pad{I1979} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 816 817+                                       ( ( substr( $s, $pos, 1 ) eq 'n' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1979} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 818 824+                                      (   ( $pad{I1980} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 818 823+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1980} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 824 825+                                     ( ( substr( $s, $pos, 1 ) eq 'E' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 825 826+                                     ( ( substr( $s, $pos, 1 ) eq 'N' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 826 828+                                      (   ( $pad{I1981} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 826 827+                                       ( ( substr( $s, $pos, 1 ) eq 'D' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1981} ) && 0 ) )+                                     ## </group>+    +                                   &&+                                     ## <quant>+                                     ## pos: 828 832+                                     do { while (+                                      (   ( $pad{I1982} = $pos or 1 ) &&+                                         ## <perl5>+                                         ( ( substr( $s, $pos ) =~ m/^((?!\n\r?|\r\n?).)/ )+                                             ? ( $pos += length( $1 ) or 1 )+                                             : 0+                                         )+                                         ## </perl5>+     ||    ( ( $pos = $pad{I1982} ) && 0 ) )) {}; $bool = 1 }+                                     ## </quant>+    +                                   &&+                                     ## <quant>+                                     ## pos: 832 847+                                     do { while (+                                      (   ( $pad{I1983} = $pos or 1 ) &&+    +                                         ## <dot>+                                         ## pos: 832 833+                                         ( substr( $s, $pos++, 1 ) ne '' )+                                         ## </dot>+     ||    ( ( $pos = $pad{I1983} ) && 0 ) )) {}; $bool = 1 }+                                     ## </quant>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 848 882+                                   (+      +                                     ## <group>+                                     ## pos: 848 851+                                      (   ( $pad{I1984} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 850 851+                                       ( ( substr( $s, $pos, 1 ) eq 'b' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1984} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 851 852+                                     ( ( substr( $s, $pos, 1 ) eq 'e' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 852 853+                                     ( ( substr( $s, $pos, 1 ) eq 'g' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 853 854+                                     ( ( substr( $s, $pos, 1 ) eq 'i' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 854 857+                                      (   ( $pad{I1985} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 854 855+                                       ( ( substr( $s, $pos, 1 ) eq 'n' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1985} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 857 882+                                      (   ( $pad{I1986} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 857 869+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_begin( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1986} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 883 917+                                   (+      +                                     ## <group>+                                     ## pos: 883 886+                                      (   ( $pad{I1987} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 885 886+                                       ( ( substr( $s, $pos, 1 ) eq 'k' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1987} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 886 887+                                     ( ( substr( $s, $pos, 1 ) eq 'w' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 887 888+                                     ( ( substr( $s, $pos, 1 ) eq 'i' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 888 892+                                      (   ( $pad{I1988} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 888 889+                                       ( ( substr( $s, $pos, 1 ) eq 'd' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1988} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 892 917+                                      (   ( $pad{I1989} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 892 904+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1989} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 918 952+                                   (+      +                                     ## <group>+                                     ## pos: 918 921+                                      (   ( $pad{I1990} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 920 921+                                       ( ( substr( $s, $pos, 1 ) eq 'p' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1990} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 921 922+                                     ( ( substr( $s, $pos, 1 ) eq 'o' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 922 927+                                      (   ( $pad{I1991} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 922 923+                                       ( ( substr( $s, $pos, 1 ) eq 'd' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1991} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 927 952+                                      (   ( $pad{I1992} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 927 939+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1992} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 953 987+                                   (+      +                                     ## <group>+                                     ## pos: 953 956+                                      (   ( $pad{I1993} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 955 956+                                       ( ( substr( $s, $pos, 1 ) eq 'f' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1993} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 956 957+                                     ( ( substr( $s, $pos, 1 ) eq 'o' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 957 962+                                      (   ( $pad{I1994} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 957 958+                                       ( ( substr( $s, $pos, 1 ) eq 'r' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1994} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 962 987+                                      (   ( $pad{I1995} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 962 974+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1995} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I1977} ) or 1 )+                                   &&                                ## <concat>+                                   ## pos: 988 1022+                                   (+      +                                     ## <group>+                                     ## pos: 988 991+                                      (   ( $pad{I1996} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 990 991+                                       ( ( substr( $s, $pos, 1 ) eq 'h' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1996} ) && 0 ) )+                                     ## </group>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 991 992+                                     ( ( substr( $s, $pos, 1 ) eq 'e' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 992 993+                                     ( ( substr( $s, $pos, 1 ) eq 'a' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+    +                                     ## <constant>+                                     ## pos: 993 994+                                     ( ( substr( $s, $pos, 1 ) eq 'd' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 994 997+                                      (   ( $pad{I1997} = $pos or 1 ) &&+    +                                       ## <constant>+                                       ## pos: 994 995+                                       ( ( substr( $s, $pos, 1 ) eq '1' )+                                           ? ( $pos += 1 or 1 )+                                           : 0+                                       )+                                       ## </constant>+     ||    ( ( $pos = $pad{I1997} ) && 0 ) )+                                     ## </group>+    +                                   &&+      +                                     ## <group>+                                     ## pos: 997 1022+                                      (   ( $pad{I1998} = $pos or 1 ) &&+                                       ## <metasyntax>+                                       ## pos: 997 1009+                                       do {+                                            my $prior = $::_V6_PRIOR_;+                                            my $match =+                                                   $grammar->pod_other( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                            $::_V6_PRIOR_ = $prior;+                                            my $bool = (!$match != 1);+                                            $pos = $match->to if $bool;+                                            $match;+                                       }+                                       ## </metasyntax>+     ||    ( ( $pos = $pad{I1998} ) && 0 ) )+                                     ## </group>+    +                                   )+                                   ## </concat>+    +                                 )+                               )+                               ## </alt>+     ||    ( ( $pos = $pad{I1976} ) && 0 ) )+                           || ( $bool = 1 )+                           )+                           ## </quant>+    +                         )+                         ## </concat>+     ||    ( ( $pos = $pad{I1974} ) && 0 ) )+                     || ( $bool = 1 )+                     )+                     ## </quant>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I1970} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 1045 1056+                    (   ( $pad{I1999} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^(\s)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I1999} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I1969} ) && 0 ) )) {}; $bool = 1 }+           )+           ## </quant>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token ident+*ident =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <quant>+           ## pos: 1118 1143+           (+            (   ( $pad{I2000} = $pos or 1 ) &&+               ## <alt>+               ## pos: 1119 1140+               (+                   ( $pad{I2001} = $pos or 1 )+                   && (+      +                   ## <group>+                   ## pos: 1119 1129+                    (   ( $pad{I2002} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 1120 1128+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2002} ) && 0 ) )+                   ## </group>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2001} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 1130 1133+                    (   ( $pad{I2003} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 1131 1132+                     ( ( substr( $s, $pos, 1 ) eq '_' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2003} ) && 0 ) )+                   ## </group>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2001} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 1134 1140+                    (   ( $pad{I2004} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 1135 1139+                     ( ( substr( $s, $pos, 2 ) eq '::' )+                         ? ( $pos += 2 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2004} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2000} ) && 0 ) )+           && do { while (+            (   ( $pad{I2000} = $pos or 1 ) &&+               ## <alt>+               ## pos: 1119 1140+               (+                   ( $pad{I2001} = $pos or 1 )+                   && (+      +                   ## <group>+                   ## pos: 1119 1129+                    (   ( $pad{I2002} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 1120 1128+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2002} ) && 0 ) )+                   ## </group>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2001} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 1130 1133+                    (   ( $pad{I2003} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 1131 1132+                     ( ( substr( $s, $pos, 1 ) eq '_' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2003} ) && 0 ) )+                   ## </group>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2001} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 1134 1140+                    (   ( $pad{I2004} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 1135 1139+                     ( ( substr( $s, $pos, 2 ) eq '::' )+                         ? ( $pos += 2 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2004} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2000} ) && 0 ) )) {}; $bool = 1 }+           )+           ## </quant>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token alnum+*alnum =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 1164 1178+            (   ( $pad{I2005} = $pos or 1 ) &&+             ## <perl5>+             ( ( substr( $s, $pos ) =~ m/^((?:(?=[0-9a-zA-Z]))\X)/ )+                 ? ( $pos += length( $1 ) or 1 )+                 : 0+             )+             ## </perl5>+     ||    ( ( $pos = $pad{I2005} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token alpha+*alpha =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 1199 1210+            (   ( $pad{I2006} = $pos or 1 ) &&+             ## <perl5>+             ( ( substr( $s, $pos ) =~ m/^((?:(?=[a-zA-Z]))\X)/ )+                 ? ( $pos += length( $1 ) or 1 )+                 : 0+             )+             ## </perl5>+     ||    ( ( $pos = $pad{I2006} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token digit+*digit =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 1231 1239+            (   ( $pad{I2007} = $pos or 1 ) &&+             ## <perl5>+             ( ( substr( $s, $pos ) =~ m/^((?:(?=[0-9]))\X)/ )+                 ? ( $pos += length( $1 ) or 1 )+                 : 0+             )+             ## </perl5>+     ||    ( ( $pos = $pad{I2007} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token special_char+*special_char =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 1284 2177+           (+               ( $pad{I2008} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 1285 1473+               (+      +                 ## <group>+                 ## pos: 1285 1296+                  (   ( $pad{I2009} = $pos or 1 ) &&+    +                   ## <capture>+                   do{+                       my $hash = do {+                         my $bool = 1;+                         my $from = $pos;+                         my @match;+                         my %named;+                         $bool = 0 unless+                           ## <alt>+                           ## pos: 1287 1294+                           (+                               ( $pad{I2010} = $pos or 1 )+                               && (+      +                               ## <group>+                               ## pos: 1287 1290+                                (   ( $pad{I2011} = $pos or 1 ) &&+    +                                 ## <constant>+                                 ## pos: 1288 1289+                                 ( ( substr( $s, $pos, 1 ) eq 'c' )+                                     ? ( $pos += 1 or 1 )+                                     : 0+                                 )+                                 ## </constant>+     ||    ( ( $pos = $pad{I2011} ) && 0 ) )+                               ## </group>+    +                               )+                             || (+                               ( ( $bool = 1 ) && ( $pos = $pad{I2010} ) or 1 )+                               &&   +                               ## <group>+                               ## pos: 1291 1294+                                (   ( $pad{I2012} = $pos or 1 ) &&+    +                                 ## <constant>+                                 ## pos: 1292 1293+                                 ( ( substr( $s, $pos, 1 ) eq 'C' )+                                     ? ( $pos += 1 or 1 )+                                     : 0+                                 )+                                 ## </constant>+     ||    ( ( $pos = $pad{I2012} ) && 0 ) )+                               ## </group>+    +                             )+                           )+                           ## </alt>+    ;+                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                       };+                       my $bool = ${$hash->{'bool'}};+                       $match[ 0 ] = Pugs::Runtime::Match->new( $hash );+                       $bool;+                   }+                   ## </capture>+     ||    ( ( $pos = $pad{I2009} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1296 1299+                  (   ( $pad{I2013} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 1296 1298+                   ( ( substr( $s, $pos, 1 ) eq '[' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2013} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1299 1340+                  (   ( $pad{I2014} = $pos or 1 ) &&+    +                   ## <capture>+                   do{+                       my $hash = do {+                         my $bool = 1;+                         my $from = $pos;+                         my @match;+                         my %named;+                         $bool = 0 unless+                           ## <quant>+                           ## pos: 1300 1338+                           (+                            (   ( $pad{I2015} = $pos or 1 ) &&+                               ## <alt>+                               ## pos: 1302 1336+                               (+                                   ( $pad{I2016} = $pos or 1 )+                                   && (+                                   ## <named_capture>+                                   ## pos: 1302 1309+                                   do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                               $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'alnum'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                                   ## </named_capture>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&                                ## <perl5>+                                   ( ( substr( $s, $pos ) =~ m/^(\s)/ )+                                       ? ( $pos += length( $1 ) or 1 )+                                       : 0+                                   )+                                   ## </perl5>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&   +                                   ## <group>+                                   ## pos: 1313 1318+                                    (   ( $pad{I2017} = $pos or 1 ) &&+    +                                     ## <constant>+                                     ## pos: 1314 1317+                                     ( ( substr( $s, $pos, 1 ) eq ';' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+     ||    ( ( $pos = $pad{I2017} ) && 0 ) )+                                   ## </group>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&   +                                   ## <group>+                                   ## pos: 1319 1324+                                    (   ( $pad{I2018} = $pos or 1 ) &&+    +                                     ## <constant>+                                     ## pos: 1320 1323+                                     ( ( substr( $s, $pos, 1 ) eq '(' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+     ||    ( ( $pos = $pad{I2018} ) && 0 ) )+                                   ## </group>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&   +                                   ## <group>+                                   ## pos: 1325 1330+                                    (   ( $pad{I2019} = $pos or 1 ) &&+    +                                     ## <constant>+                                     ## pos: 1326 1329+                                     ( ( substr( $s, $pos, 1 ) eq ')' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+     ||    ( ( $pos = $pad{I2019} ) && 0 ) )+                                   ## </group>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&   +                                   ## <group>+                                   ## pos: 1331 1336+                                    (   ( $pad{I2020} = $pos or 1 ) &&+    +                                     ## <constant>+                                     ## pos: 1332 1335+                                     ( ( substr( $s, $pos, 1 ) eq '-' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+     ||    ( ( $pos = $pad{I2020} ) && 0 ) )+                                   ## </group>+    +                                 )+                               )+                               ## </alt>+     ||    ( ( $pos = $pad{I2015} ) && 0 ) )+                           && do { while (+                            (   ( $pad{I2015} = $pos or 1 ) &&+                               ## <alt>+                               ## pos: 1302 1336+                               (+                                   ( $pad{I2016} = $pos or 1 )+                                   && (+                                   ## <named_capture>+                                   ## pos: 1302 1309+                                   do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                               $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'alnum'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                                   ## </named_capture>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&                                ## <perl5>+                                   ( ( substr( $s, $pos ) =~ m/^(\s)/ )+                                       ? ( $pos += length( $1 ) or 1 )+                                       : 0+                                   )+                                   ## </perl5>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&   +                                   ## <group>+                                   ## pos: 1313 1318+                                    (   ( $pad{I2017} = $pos or 1 ) &&+    +                                     ## <constant>+                                     ## pos: 1314 1317+                                     ( ( substr( $s, $pos, 1 ) eq ';' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+     ||    ( ( $pos = $pad{I2017} ) && 0 ) )+                                   ## </group>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&   +                                   ## <group>+                                   ## pos: 1319 1324+                                    (   ( $pad{I2018} = $pos or 1 ) &&+    +                                     ## <constant>+                                     ## pos: 1320 1323+                                     ( ( substr( $s, $pos, 1 ) eq '(' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+     ||    ( ( $pos = $pad{I2018} ) && 0 ) )+                                   ## </group>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&   +                                   ## <group>+                                   ## pos: 1325 1330+                                    (   ( $pad{I2019} = $pos or 1 ) &&+    +                                     ## <constant>+                                     ## pos: 1326 1329+                                     ( ( substr( $s, $pos, 1 ) eq ')' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+     ||    ( ( $pos = $pad{I2019} ) && 0 ) )+                                   ## </group>+    +                                   )+                                 || (+                                   ( ( $bool = 1 ) && ( $pos = $pad{I2016} ) or 1 )+                                   &&   +                                   ## <group>+                                   ## pos: 1331 1336+                                    (   ( $pad{I2020} = $pos or 1 ) &&+    +                                     ## <constant>+                                     ## pos: 1332 1335+                                     ( ( substr( $s, $pos, 1 ) eq '-' )+                                         ? ( $pos += 1 or 1 )+                                         : 0+                                     )+                                     ## </constant>+     ||    ( ( $pos = $pad{I2020} ) && 0 ) )+                                   ## </group>+    +                                 )+                               )+                               ## </alt>+     ||    ( ( $pos = $pad{I2015} ) && 0 ) )) {}; $bool = 1 }+                           )+                           ## </quant>+    ;+                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                       };+                       my $bool = ${$hash->{'bool'}};+                       $match[ 1 ] = Pugs::Runtime::Match->new( $hash );+                       $bool;+                   }+                   ## </capture>+     ||    ( ( $pos = $pad{I2014} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1340 1385+                  (   ( $pad{I2021} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 1340 1342+                   ( ( substr( $s, $pos, 1 ) eq ']' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2021} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1385 1473+                  (   ( $pad{I2022} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 1385 1463+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0]->[0] . $_[0]->[1], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2022} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2008} ) or 1 )+               &&            ## <concat>+               ## pos: 1474 1617+               (+      +                 ## <group>+                 ## pos: 1474 1485+                  (   ( $pad{I2023} = $pos or 1 ) &&+                   ## <alt>+                   ## pos: 1476 1483+                   (+                       ( $pad{I2024} = $pos or 1 )+                       && (+      +                       ## <group>+                       ## pos: 1476 1479+                        (   ( $pad{I2025} = $pos or 1 ) &&+    +                         ## <constant>+                         ## pos: 1477 1478+                         ( ( substr( $s, $pos, 1 ) eq 'x' )+                             ? ( $pos += 1 or 1 )+                             : 0+                         )+                         ## </constant>+     ||    ( ( $pos = $pad{I2025} ) && 0 ) )+                       ## </group>+    +                       )+                     || (+                       ( ( $bool = 1 ) && ( $pos = $pad{I2024} ) or 1 )+                       &&   +                       ## <group>+                       ## pos: 1480 1483+                        (   ( $pad{I2026} = $pos or 1 ) &&+    +                         ## <constant>+                         ## pos: 1481 1482+                         ( ( substr( $s, $pos, 1 ) eq 'X' )+                             ? ( $pos += 1 or 1 )+                             : 0+                         )+                         ## </constant>+     ||    ( ( $pos = $pad{I2026} ) && 0 ) )+                       ## </group>+    +                     )+                   )+                   ## </alt>+     ||    ( ( $pos = $pad{I2023} ) && 0 ) )+                 ## </group>+    +               &&+                 ## <quant>+                 ## pos: 1485 1535+                 (+                  (   ( $pad{I2027} = $pos or 1 ) &&+                     ## <named_capture>+                     ## pos: 1485 1493+                     do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                 $grammar->xdigit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'xdigit'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                     ## </named_capture>+     ||    ( ( $pos = $pad{I2027} ) && 0 ) )+                 && do { while (+                  (   ( $pad{I2027} = $pos or 1 ) &&+                     ## <named_capture>+                     ## pos: 1485 1493+                     do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                 $grammar->xdigit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'xdigit'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                     ## </named_capture>+     ||    ( ( $pos = $pad{I2027} ) && 0 ) )) {}; $bool = 1 }+                 )+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 1535 1617+                  (   ( $pad{I2028} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 1535 1608+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2028} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2008} ) or 1 )+               &&            ## <concat>+               ## pos: 1618 1777+               (+      +                 ## <group>+                 ## pos: 1618 1629+                  (   ( $pad{I2029} = $pos or 1 ) &&+    +                   ## <capture>+                   do{+                       my $hash = do {+                         my $bool = 1;+                         my $from = $pos;+                         my @match;+                         my %named;+                         $bool = 0 unless+                           ## <alt>+                           ## pos: 1620 1627+                           (+                               ( $pad{I2030} = $pos or 1 )+                               && (+      +                               ## <group>+                               ## pos: 1620 1623+                                (   ( $pad{I2031} = $pos or 1 ) &&+    +                                 ## <constant>+                                 ## pos: 1621 1622+                                 ( ( substr( $s, $pos, 1 ) eq 'x' )+                                     ? ( $pos += 1 or 1 )+                                     : 0+                                 )+                                 ## </constant>+     ||    ( ( $pos = $pad{I2031} ) && 0 ) )+                               ## </group>+    +                               )+                             || (+                               ( ( $bool = 1 ) && ( $pos = $pad{I2030} ) or 1 )+                               &&   +                               ## <group>+                               ## pos: 1624 1627+                                (   ( $pad{I2032} = $pos or 1 ) &&+    +                                 ## <constant>+                                 ## pos: 1625 1626+                                 ( ( substr( $s, $pos, 1 ) eq 'X' )+                                     ? ( $pos += 1 or 1 )+                                     : 0+                                 )+                                 ## </constant>+     ||    ( ( $pos = $pad{I2032} ) && 0 ) )+                               ## </group>+    +                             )+                           )+                           ## </alt>+    ;+                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                       };+                       my $bool = ${$hash->{'bool'}};+                       $match[ 0 ] = Pugs::Runtime::Match->new( $hash );+                       $bool;+                   }+                   ## </capture>+     ||    ( ( $pos = $pad{I2029} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1629 1632+                  (   ( $pad{I2033} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 1629 1631+                   ( ( substr( $s, $pos, 1 ) eq '[' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2033} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1632 1644+                  (   ( $pad{I2034} = $pos or 1 ) &&+    +                   ## <capture>+                   do{+                       my $hash = do {+                         my $bool = 1;+                         my $from = $pos;+                         my @match;+                         my %named;+                         $bool = 0 unless+                           ## <quant>+                           ## pos: 1633 1642+                           (+                            (   ( $pad{I2035} = $pos or 1 ) &&+                               ## <named_capture>+                               ## pos: 1633 1641+                               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                           $grammar->xdigit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'xdigit'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                               ## </named_capture>+     ||    ( ( $pos = $pad{I2035} ) && 0 ) )+                           && do { while (+                            (   ( $pad{I2035} = $pos or 1 ) &&+                               ## <named_capture>+                               ## pos: 1633 1641+                               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                           $grammar->xdigit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'xdigit'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                               ## </named_capture>+     ||    ( ( $pos = $pad{I2035} ) && 0 ) )) {}; $bool = 1 }+                           )+                           ## </quant>+    ;+                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                       };+                       my $bool = ${$hash->{'bool'}};+                       $match[ 1 ] = Pugs::Runtime::Match->new( $hash );+                       $bool;+                   }+                   ## </capture>+     ||    ( ( $pos = $pad{I2034} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1644 1689+                  (   ( $pad{I2036} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 1644 1646+                   ( ( substr( $s, $pos, 1 ) eq ']' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2036} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1689 1777+                  (   ( $pad{I2037} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 1689 1767+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0]->[0] . $_[0]->[1], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2037} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2008} ) or 1 )+               &&            ## <concat>+               ## pos: 1778 1915+               (+      +                 ## <group>+                 ## pos: 1778 1789+                  (   ( $pad{I2038} = $pos or 1 ) &&+                   ## <alt>+                   ## pos: 1780 1787+                   (+                       ( $pad{I2039} = $pos or 1 )+                       && (+      +                       ## <group>+                       ## pos: 1780 1783+                        (   ( $pad{I2040} = $pos or 1 ) &&+    +                         ## <constant>+                         ## pos: 1781 1782+                         ( ( substr( $s, $pos, 1 ) eq 'o' )+                             ? ( $pos += 1 or 1 )+                             : 0+                         )+                         ## </constant>+     ||    ( ( $pos = $pad{I2040} ) && 0 ) )+                       ## </group>+    +                       )+                     || (+                       ( ( $bool = 1 ) && ( $pos = $pad{I2039} ) or 1 )+                       &&   +                       ## <group>+                       ## pos: 1784 1787+                        (   ( $pad{I2041} = $pos or 1 ) &&+    +                         ## <constant>+                         ## pos: 1785 1786+                         ( ( substr( $s, $pos, 1 ) eq 'O' )+                             ? ( $pos += 1 or 1 )+                             : 0+                         )+                         ## </constant>+     ||    ( ( $pos = $pad{I2041} ) && 0 ) )+                       ## </group>+    +                     )+                   )+                   ## </alt>+     ||    ( ( $pos = $pad{I2038} ) && 0 ) )+                 ## </group>+    +               &&+                 ## <quant>+                 ## pos: 1789 1833+                 (+                  (   ( $pad{I2042} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^(\d)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2042} ) && 0 ) )+                 && do { while (+                  (   ( $pad{I2042} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^(\d)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2042} ) && 0 ) )) {}; $bool = 1 }+                 )+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 1833 1915+                  (   ( $pad{I2043} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 1833 1906+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2043} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2008} ) or 1 )+               &&            ## <concat>+               ## pos: 1916 2069+               (+      +                 ## <group>+                 ## pos: 1916 1927+                  (   ( $pad{I2044} = $pos or 1 ) &&+    +                   ## <capture>+                   do{+                       my $hash = do {+                         my $bool = 1;+                         my $from = $pos;+                         my @match;+                         my %named;+                         $bool = 0 unless+                           ## <alt>+                           ## pos: 1918 1925+                           (+                               ( $pad{I2045} = $pos or 1 )+                               && (+      +                               ## <group>+                               ## pos: 1918 1921+                                (   ( $pad{I2046} = $pos or 1 ) &&+    +                                 ## <constant>+                                 ## pos: 1919 1920+                                 ( ( substr( $s, $pos, 1 ) eq 'o' )+                                     ? ( $pos += 1 or 1 )+                                     : 0+                                 )+                                 ## </constant>+     ||    ( ( $pos = $pad{I2046} ) && 0 ) )+                               ## </group>+    +                               )+                             || (+                               ( ( $bool = 1 ) && ( $pos = $pad{I2045} ) or 1 )+                               &&   +                               ## <group>+                               ## pos: 1922 1925+                                (   ( $pad{I2047} = $pos or 1 ) &&+    +                                 ## <constant>+                                 ## pos: 1923 1924+                                 ( ( substr( $s, $pos, 1 ) eq 'O' )+                                     ? ( $pos += 1 or 1 )+                                     : 0+                                 )+                                 ## </constant>+     ||    ( ( $pos = $pad{I2047} ) && 0 ) )+                               ## </group>+    +                             )+                           )+                           ## </alt>+    ;+                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                       };+                       my $bool = ${$hash->{'bool'}};+                       $match[ 0 ] = Pugs::Runtime::Match->new( $hash );+                       $bool;+                   }+                   ## </capture>+     ||    ( ( $pos = $pad{I2044} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1927 1930+                  (   ( $pad{I2048} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 1927 1929+                   ( ( substr( $s, $pos, 1 ) eq '[' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2048} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1930 1936+                  (   ( $pad{I2049} = $pos or 1 ) &&+    +                   ## <capture>+                   do{+                       my $hash = do {+                         my $bool = 1;+                         my $from = $pos;+                         my @match;+                         my %named;+                         $bool = 0 unless+                           ## <quant>+                           ## pos: 1931 1934+                           (+                            (   ( $pad{I2050} = $pos or 1 ) &&+                               ## <perl5>+                               ( ( substr( $s, $pos ) =~ m/^(\d)/ )+                                   ? ( $pos += length( $1 ) or 1 )+                                   : 0+                               )+                               ## </perl5>+     ||    ( ( $pos = $pad{I2050} ) && 0 ) )+                           && do { while (+                            (   ( $pad{I2050} = $pos or 1 ) &&+                               ## <perl5>+                               ( ( substr( $s, $pos ) =~ m/^(\d)/ )+                                   ? ( $pos += length( $1 ) or 1 )+                                   : 0+                               )+                               ## </perl5>+     ||    ( ( $pos = $pad{I2050} ) && 0 ) )) {}; $bool = 1 }+                           )+                           ## </quant>+    ;+                         { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                       };+                       my $bool = ${$hash->{'bool'}};+                       $match[ 1 ] = Pugs::Runtime::Match->new( $hash );+                       $bool;+                   }+                   ## </capture>+     ||    ( ( $pos = $pad{I2049} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1936 1981+                  (   ( $pad{I2051} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 1936 1938+                   ( ( substr( $s, $pos, 1 ) eq ']' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2051} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 1981 2069+                  (   ( $pad{I2052} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 1981 2059+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0]->[0] . $_[0]->[1], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2052} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2008} ) or 1 )+               &&            ## <concat>+               ## pos: 2070 2177+               (+      +                 ## <group>+                 ## pos: 2070 2103+                  (   ( $pad{I2053} = $pos or 1 ) &&+    +                   ## <dot>+                   ## pos: 2071 2072+                   ( substr( $s, $pos++, 1 ) ne '' )+                   ## </dot>+     ||    ( ( $pos = $pad{I2053} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 2103 2177+                  (   ( $pad{I2054} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 2103 2176+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { special_char => '\\' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2054} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token literal+*literal =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <quant>+           ## pos: 2200 2251+           do { while (+            (   ( $pad{I2055} = $pos or 1 ) &&+               ## <alt>+               ## pos: 2201 2248+               (+                   ( $pad{I2056} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 2207 2231+                   (+      +                     ## <group>+                     ## pos: 2207 2212+                      (   ( $pad{I2057} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2209 2211+                       ( ( substr( $s, $pos, 1 ) eq '\\' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2057} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2212 2231+                      (   ( $pad{I2058} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 2212 2226+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'special_char'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2058} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2056} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 2232 2248+                    (   ( $pad{I2059} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\']))\X)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2059} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2055} ) && 0 ) )) {}; $bool = 1 }+           ## </quant>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token double_quoted+*double_quoted =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <quant>+           ## pos: 2280 2372+           do { while (+            (   ( $pad{I2060} = $pos or 1 ) &&+               ## <alt>+               ## pos: 2281 2369+               (+                   ( $pad{I2061} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 2287 2311+                   (+      +                     ## <group>+                     ## pos: 2287 2292+                      (   ( $pad{I2062} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2289 2291+                       ( ( substr( $s, $pos, 1 ) eq '\\' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2062} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2292 2311+                      (   ( $pad{I2063} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 2292 2306+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'special_char'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2063} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2061} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 2312 2352+                    (   ( $pad{I2064} = $pos or 1 ) &&+                    ## <metasyntax>+                     ## pos: 2314 2347+                     do{+                    my $match = +              ## <variable>+              ## pos: 2314 2347+              do {+                our $I2065;+                our $I2065_sizes;+                unless ( $I2065 ) {+                    my $hash = \%Pugs::Grammar::Rule::variables;+                    my %sizes = map { length($_) => 1 } keys %$hash;+                    $I2065_sizes = [ sort { $b <=> $a } keys %sizes ];+                    $I2065 = $hash;+                }+                my $match = 0;+                my $key;+                for ( @$I2065_sizes ) {+                    $key = ( $pos <= length( $s )+                                ? substr( $s, $pos, $_ )+                                : '' );+                    if ( exists $I2065->{$key} ) {+                        #$named{KEY} = $key;+                        #$::_V6_MATCH_ = $m;+                        #print "m: ", Dumper( $::_V6_MATCH_->data )+                        #    if ( $key eq 'until' );+                        $match = Pugs::Runtime::Regex::preprocess_hash( $I2065, $key )->( $s, $grammar, { p => ( $pos + $_ ), positionals => [ ], args => { KEY => $key } }, undef );+                        last if $match;+                    }+                }+                if ( $match ) {+                    $pos = $match->to;+                    #print "match: $key at $pos = ", Dumper( $match->data );+                    $bool = 1;+                }; # else { $bool = 0 }+                $match;+              }+              ## </variable>+    ;+                    if ( $match ) { push @{$named{'Pugs::Grammar::Rule::variables'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                    ## </metasyntax>+     ||    ( ( $pos = $pad{I2064} ) && 0 ) )+                   ## </group>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2061} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 2353 2369+                    (   ( $pad{I2066} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\"]))\X)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2066} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2060} ) && 0 ) )) {}; $bool = 1 }+           ## </quant>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token metasyntax+*metasyntax =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <quant>+           ## pos: 2398 2576+           (+            (   ( $pad{I2067} = $pos or 1 ) &&+               ## <alt>+               ## pos: 2399 2573+               (+                   ( $pad{I2068} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 2405 2429+                   (+      +                     ## <group>+                     ## pos: 2405 2410+                      (   ( $pad{I2069} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2407 2409+                       ( ( substr( $s, $pos, 1 ) eq '\\' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2069} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2410 2429+                      (   ( $pad{I2070} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 2410 2424+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'special_char'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2070} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2430 2458+                   (+      +                     ## <group>+                     ## pos: 2430 2436+                      (   ( $pad{I2071} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2432 2434+                       ( ( substr( $s, $pos, 1 ) eq chr(39) )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2071} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2436 2451+                      (   ( $pad{I2072} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2436 2446+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2072} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2451 2458+                      (   ( $pad{I2073} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2451 2453+                       ( ( substr( $s, $pos, 1 ) eq chr(39) )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2073} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2459 2491+                   (+      +                     ## <group>+                     ## pos: 2459 2465+                      (   ( $pad{I2074} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2461 2463+                       ( ( substr( $s, $pos, 1 ) eq '"' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2074} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2465 2484+                      (   ( $pad{I2075} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2465 2481+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->double_quoted( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2075} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2484 2491+                      (   ( $pad{I2076} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2484 2486+                       ( ( substr( $s, $pos, 1 ) eq '"' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2076} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2492 2527+                   (+      +                     ## <group>+                     ## pos: 2492 2498+                      (   ( $pad{I2077} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2494 2496+                       ( ( substr( $s, $pos, 1 ) eq '{' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2077} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2498 2520+                      (   ( $pad{I2078} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2498 2512+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2078} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2520 2527+                      (   ( $pad{I2079} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2520 2522+                       ( ( substr( $s, $pos, 1 ) eq '}' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2079} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2528 2556+                   (+      +                     ## <group>+                     ## pos: 2528 2534+                      (   ( $pad{I2080} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2530 2532+                       ( ( substr( $s, $pos, 1 ) eq '<' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2080} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2534 2549+                      (   ( $pad{I2081} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2534 2547+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2081} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2549 2556+                      (   ( $pad{I2082} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2549 2551+                       ( ( substr( $s, $pos, 1 ) eq '>' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2082} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 2557 2573+                    (   ( $pad{I2083} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\>]))\X)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2083} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2067} ) && 0 ) )+           && do { while (+            (   ( $pad{I2067} = $pos or 1 ) &&+               ## <alt>+               ## pos: 2399 2573+               (+                   ( $pad{I2068} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 2405 2429+                   (+      +                     ## <group>+                     ## pos: 2405 2410+                      (   ( $pad{I2069} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2407 2409+                       ( ( substr( $s, $pos, 1 ) eq '\\' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2069} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2410 2429+                      (   ( $pad{I2070} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 2410 2424+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'special_char'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2070} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2430 2458+                   (+      +                     ## <group>+                     ## pos: 2430 2436+                      (   ( $pad{I2071} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2432 2434+                       ( ( substr( $s, $pos, 1 ) eq chr(39) )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2071} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2436 2451+                      (   ( $pad{I2072} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2436 2446+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2072} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2451 2458+                      (   ( $pad{I2073} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2451 2453+                       ( ( substr( $s, $pos, 1 ) eq chr(39) )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2073} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2459 2491+                   (+      +                     ## <group>+                     ## pos: 2459 2465+                      (   ( $pad{I2074} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2461 2463+                       ( ( substr( $s, $pos, 1 ) eq '"' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2074} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2465 2484+                      (   ( $pad{I2075} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2465 2481+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->double_quoted( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2075} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2484 2491+                      (   ( $pad{I2076} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2484 2486+                       ( ( substr( $s, $pos, 1 ) eq '"' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2076} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2492 2527+                   (+      +                     ## <group>+                     ## pos: 2492 2498+                      (   ( $pad{I2077} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2494 2496+                       ( ( substr( $s, $pos, 1 ) eq '{' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2077} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2498 2520+                      (   ( $pad{I2078} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2498 2512+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2078} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2520 2527+                      (   ( $pad{I2079} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2520 2522+                       ( ( substr( $s, $pos, 1 ) eq '}' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2079} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2528 2556+                   (+      +                     ## <group>+                     ## pos: 2528 2534+                      (   ( $pad{I2080} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2530 2532+                       ( ( substr( $s, $pos, 1 ) eq '<' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2080} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2534 2549+                      (   ( $pad{I2081} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2534 2547+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2081} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2549 2556+                      (   ( $pad{I2082} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2549 2551+                       ( ( substr( $s, $pos, 1 ) eq '>' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2082} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2068} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 2557 2573+                    (   ( $pad{I2083} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\>]))\X)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2083} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2067} ) && 0 ) )) {}; $bool = 1 }+           )+           ## </quant>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token char_range+*char_range =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <quant>+           ## pos: 2602 2653+           (+            (   ( $pad{I2084} = $pos or 1 ) &&+               ## <alt>+               ## pos: 2603 2650+               (+                   ( $pad{I2085} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 2609 2633+                   (+      +                     ## <group>+                     ## pos: 2609 2614+                      (   ( $pad{I2086} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2611 2613+                       ( ( substr( $s, $pos, 1 ) eq '\\' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2086} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2614 2633+                      (   ( $pad{I2087} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 2614 2628+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'special_char'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2087} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2085} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 2634 2650+                    (   ( $pad{I2088} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\]]))\X)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2088} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2084} ) && 0 ) )+           && do { while (+            (   ( $pad{I2084} = $pos or 1 ) &&+               ## <alt>+               ## pos: 2603 2650+               (+                   ( $pad{I2085} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 2609 2633+                   (+      +                     ## <group>+                     ## pos: 2609 2614+                      (   ( $pad{I2086} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2611 2613+                       ( ( substr( $s, $pos, 1 ) eq '\\' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2086} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2614 2633+                      (   ( $pad{I2087} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 2614 2628+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'special_char'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2087} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2085} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 2634 2650+                    (   ( $pad{I2088} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\]]))\X)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2088} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2084} ) && 0 ) )) {}; $bool = 1 }+           )+           ## </quant>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token char_class+*char_class =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 2679 2738+           (+               ( $pad{I2089} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 2680 2713+               (+      +                 ## <group>+                 ## pos: 2680 2691+                  (   ( $pad{I2090} = $pos or 1 ) &&+                   ## <metasyntax>+                   ## pos: 2682 2690+                   do {+                        my $prior = $::_V6_PRIOR_;+                        my $match =+                               $grammar->alpha( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                        $::_V6_PRIOR_ = $prior;+                        my $bool = (!$match != 1);+                        $pos = $match->to if $bool;+                        $match;+                   }+                   ## </metasyntax>+     ||    ( ( $pos = $pad{I2090} ) && 0 ) )+                 ## </group>+    +               &&+                 ## <quant>+                 ## pos: 2691 2713+                 do { while (+                  (   ( $pad{I2091} = $pos or 1 ) &&+                     ## <alt>+                     ## pos: 2692 2706+                     (+                         ( $pad{I2092} = $pos or 1 )+                         && (+      +                         ## <group>+                         ## pos: 2692 2702+                          (   ( $pad{I2093} = $pos or 1 ) &&+                           ## <metasyntax>+                           ## pos: 2693 2701+                           do {+                                my $prior = $::_V6_PRIOR_;+                                my $match =+                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                $::_V6_PRIOR_ = $prior;+                                my $bool = (!$match != 1);+                                $pos = $match->to if $bool;+                                $match;+                           }+                           ## </metasyntax>+     ||    ( ( $pos = $pad{I2093} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2092} ) or 1 )+                         &&   +                         ## <group>+                         ## pos: 2703 2706+                          (   ( $pad{I2094} = $pos or 1 ) &&+    +                           ## <constant>+                           ## pos: 2704 2705+                           ( ( substr( $s, $pos, 1 ) eq '_' )+                               ? ( $pos += 1 or 1 )+                               : 0+                           )+                           ## </constant>+     ||    ( ( $pos = $pad{I2094} ) && 0 ) )+                         ## </group>+    +                       )+                     )+                     ## </alt>+     ||    ( ( $pos = $pad{I2091} ) && 0 ) )) {}; $bool = 1 }+                 ## </quant>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2089} ) or 1 )+               &&            ## <concat>+               ## pos: 2714 2738+               (+      +                 ## <group>+                 ## pos: 2714 2720+                  (   ( $pad{I2095} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 2716 2718+                   ( ( substr( $s, $pos, 1 ) eq '[' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2095} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 2720 2735+                  (   ( $pad{I2096} = $pos or 1 ) &&+                   ## <metasyntax>+                   ## pos: 2720 2733+                   do {+                        my $prior = $::_V6_PRIOR_;+                        my $match =+                               $grammar->char_range( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                        $::_V6_PRIOR_ = $prior;+                        my $bool = (!$match != 1);+                        $pos = $match->to if $bool;+                        $match;+                   }+                   ## </metasyntax>+     ||    ( ( $pos = $pad{I2096} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 2735 2738+                  (   ( $pad{I2097} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 2735 2737+                   ( ( substr( $s, $pos, 1 ) eq ']' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2097} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token string_code+*string_code =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <quant>+           ## pos: 2788 3072+           (+            (   ( $pad{I2098} = $pos or 1 ) &&+               ## <alt>+               ## pos: 2789 3069+               (+                   ( $pad{I2099} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 2795 2819+                   (+      +                     ## <group>+                     ## pos: 2795 2800+                      (   ( $pad{I2100} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2797 2799+                       ( ( substr( $s, $pos, 1 ) eq '\\' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2100} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2800 2819+                      (   ( $pad{I2101} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 2800 2814+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'special_char'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2101} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2820 2848+                   (+      +                     ## <group>+                     ## pos: 2820 2826+                      (   ( $pad{I2102} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2822 2824+                       ( ( substr( $s, $pos, 1 ) eq chr(39) )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2102} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2826 2841+                      (   ( $pad{I2103} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2826 2836+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2103} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2841 2848+                      (   ( $pad{I2104} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2841 2843+                       ( ( substr( $s, $pos, 1 ) eq chr(39) )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2104} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2849 2881+                   (+      +                     ## <group>+                     ## pos: 2849 2855+                      (   ( $pad{I2105} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2851 2853+                       ( ( substr( $s, $pos, 1 ) eq '"' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2105} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2855 2874+                      (   ( $pad{I2106} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2855 2871+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->double_quoted( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2106} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2874 2881+                      (   ( $pad{I2107} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2874 2876+                       ( ( substr( $s, $pos, 1 ) eq '"' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2107} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2882 2920+                   (+      +                     ## <group>+                     ## pos: 2882 2888+                      (   ( $pad{I2108} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2884 2886+                       ( ( substr( $s, $pos, 1 ) eq '{' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2108} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2888 2913+                      (   ( $pad{I2109} = $pos or 1 ) &&+                       ## <alt>+                       ## pos: 2889 2910+                       (+                           ( $pad{I2110} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 2889 2905+                            (   ( $pad{I2111} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 2890 2904+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2111} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2110} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 2906 2910+                            (   ( $pad{I2112} = $pos or 1 ) &&+     1 # null constant+     ||    ( ( $pos = $pad{I2112} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+     ||    ( ( $pos = $pad{I2109} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2913 2920+                      (   ( $pad{I2113} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2913 2915+                       ( ( substr( $s, $pos, 1 ) eq '}' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2113} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2921 2959+                   (+      +                     ## <group>+                     ## pos: 2921 2927+                      (   ( $pad{I2114} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2923 2925+                       ( ( substr( $s, $pos, 1 ) eq '(' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2114} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2927 2952+                      (   ( $pad{I2115} = $pos or 1 ) &&+                       ## <alt>+                       ## pos: 2928 2949+                       (+                           ( $pad{I2116} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 2928 2944+                            (   ( $pad{I2117} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 2929 2943+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2117} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2116} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 2945 2949+                            (   ( $pad{I2118} = $pos or 1 ) &&+     1 # null constant+     ||    ( ( $pos = $pad{I2118} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+     ||    ( ( $pos = $pad{I2115} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2952 2959+                      (   ( $pad{I2119} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2952 2954+                       ( ( substr( $s, $pos, 1 ) eq ')' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2119} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2960 2998+                   (+      +                     ## <group>+                     ## pos: 2960 2966+                      (   ( $pad{I2120} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2962 2964+                       ( ( substr( $s, $pos, 1 ) eq '<' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2120} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2966 2991+                      (   ( $pad{I2121} = $pos or 1 ) &&+                       ## <alt>+                       ## pos: 2967 2988+                       (+                           ( $pad{I2122} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 2967 2983+                            (   ( $pad{I2123} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 2968 2982+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2123} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2122} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 2984 2988+                            (   ( $pad{I2124} = $pos or 1 ) &&+     1 # null constant+     ||    ( ( $pos = $pad{I2124} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+     ||    ( ( $pos = $pad{I2121} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2991 2998+                      (   ( $pad{I2125} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2991 2993+                       ( ( substr( $s, $pos, 1 ) eq '>' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2125} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2999 3033+                   (+      +                     ## <group>+                     ## pos: 2999 3026+                      (   ( $pad{I2126} = $pos or 1 ) &&+                       ## <alt>+                       ## pos: 3002 3024+                       (+                           ( $pad{I2127} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 3002 3009+                            (   ( $pad{I2128} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 3003 3008+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2128} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2127} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 3010 3014+                            (   ( $pad{I2129} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 3011 3013+                             ( ( substr( $s, $pos, 1 ) eq '>' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2129} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2127} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 3015 3019+                            (   ( $pad{I2130} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 3016 3018+                             ( ( substr( $s, $pos, 1 ) eq '=' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2130} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2127} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 3020 3024+                            (   ( $pad{I2131} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 3021 3023+                             ( ( substr( $s, $pos, 1 ) eq '-' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2131} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+     ||    ( ( $pos = $pad{I2126} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 3026 3033+                      (   ( $pad{I2132} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 3026 3028+                       ( ( substr( $s, $pos, 1 ) eq '>' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2132} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 3034 3046+                    (   ( $pad{I2133} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 3036 3041+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2133} ) && 0 ) )+                   ## </group>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 3047 3069+                    (   ( $pad{I2134} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\}\)\>]))\X)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2134} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2098} ) && 0 ) )+           && do { while (+            (   ( $pad{I2098} = $pos or 1 ) &&+               ## <alt>+               ## pos: 2789 3069+               (+                   ( $pad{I2099} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 2795 2819+                   (+      +                     ## <group>+                     ## pos: 2795 2800+                      (   ( $pad{I2100} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2797 2799+                       ( ( substr( $s, $pos, 1 ) eq '\\' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2100} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2800 2819+                      (   ( $pad{I2101} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 2800 2814+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'special_char'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2101} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2820 2848+                   (+      +                     ## <group>+                     ## pos: 2820 2826+                      (   ( $pad{I2102} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2822 2824+                       ( ( substr( $s, $pos, 1 ) eq chr(39) )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2102} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2826 2841+                      (   ( $pad{I2103} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2826 2836+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2103} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2841 2848+                      (   ( $pad{I2104} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2841 2843+                       ( ( substr( $s, $pos, 1 ) eq chr(39) )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2104} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2849 2881+                   (+      +                     ## <group>+                     ## pos: 2849 2855+                      (   ( $pad{I2105} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2851 2853+                       ( ( substr( $s, $pos, 1 ) eq '"' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2105} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2855 2874+                      (   ( $pad{I2106} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 2855 2871+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->double_quoted( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2106} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2874 2881+                      (   ( $pad{I2107} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2874 2876+                       ( ( substr( $s, $pos, 1 ) eq '"' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2107} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2882 2920+                   (+      +                     ## <group>+                     ## pos: 2882 2888+                      (   ( $pad{I2108} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2884 2886+                       ( ( substr( $s, $pos, 1 ) eq '{' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2108} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2888 2913+                      (   ( $pad{I2109} = $pos or 1 ) &&+                       ## <alt>+                       ## pos: 2889 2910+                       (+                           ( $pad{I2110} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 2889 2905+                            (   ( $pad{I2111} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 2890 2904+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2111} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2110} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 2906 2910+                            (   ( $pad{I2112} = $pos or 1 ) &&+     1 # null constant+     ||    ( ( $pos = $pad{I2112} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+     ||    ( ( $pos = $pad{I2109} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2913 2920+                      (   ( $pad{I2113} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2913 2915+                       ( ( substr( $s, $pos, 1 ) eq '}' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2113} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2921 2959+                   (+      +                     ## <group>+                     ## pos: 2921 2927+                      (   ( $pad{I2114} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2923 2925+                       ( ( substr( $s, $pos, 1 ) eq '(' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2114} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2927 2952+                      (   ( $pad{I2115} = $pos or 1 ) &&+                       ## <alt>+                       ## pos: 2928 2949+                       (+                           ( $pad{I2116} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 2928 2944+                            (   ( $pad{I2117} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 2929 2943+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2117} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2116} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 2945 2949+                            (   ( $pad{I2118} = $pos or 1 ) &&+     1 # null constant+     ||    ( ( $pos = $pad{I2118} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+     ||    ( ( $pos = $pad{I2115} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2952 2959+                      (   ( $pad{I2119} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2952 2954+                       ( ( substr( $s, $pos, 1 ) eq ')' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2119} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2960 2998+                   (+      +                     ## <group>+                     ## pos: 2960 2966+                      (   ( $pad{I2120} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2962 2964+                       ( ( substr( $s, $pos, 1 ) eq '<' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2120} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2966 2991+                      (   ( $pad{I2121} = $pos or 1 ) &&+                       ## <alt>+                       ## pos: 2967 2988+                       (+                           ( $pad{I2122} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 2967 2983+                            (   ( $pad{I2123} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 2968 2982+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2123} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2122} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 2984 2988+                            (   ( $pad{I2124} = $pos or 1 ) &&+     1 # null constant+     ||    ( ( $pos = $pad{I2124} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+     ||    ( ( $pos = $pad{I2121} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 2991 2998+                      (   ( $pad{I2125} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 2991 2993+                       ( ( substr( $s, $pos, 1 ) eq '>' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2125} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&                ## <concat>+                   ## pos: 2999 3033+                   (+      +                     ## <group>+                     ## pos: 2999 3026+                      (   ( $pad{I2126} = $pos or 1 ) &&+                       ## <alt>+                       ## pos: 3002 3024+                       (+                           ( $pad{I2127} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 3002 3009+                            (   ( $pad{I2128} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 3003 3008+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2128} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2127} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 3010 3014+                            (   ( $pad{I2129} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 3011 3013+                             ( ( substr( $s, $pos, 1 ) eq '>' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2129} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2127} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 3015 3019+                            (   ( $pad{I2130} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 3016 3018+                             ( ( substr( $s, $pos, 1 ) eq '=' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2130} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2127} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 3020 3024+                            (   ( $pad{I2131} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 3021 3023+                             ( ( substr( $s, $pos, 1 ) eq '-' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2131} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+     ||    ( ( $pos = $pad{I2126} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 3026 3033+                      (   ( $pad{I2132} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 3026 3028+                       ( ( substr( $s, $pos, 1 ) eq '>' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2132} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 3034 3046+                    (   ( $pad{I2133} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 3036 3041+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2133} ) && 0 ) )+                   ## </group>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2099} ) or 1 )+                   &&   +                   ## <group>+                   ## pos: 3047 3069+                    (   ( $pad{I2134} = $pos or 1 ) &&+                     ## <perl5>+                     ( ( substr( $s, $pos ) =~ m/^((?:(?![\}\)\>]))\X)/ )+                         ? ( $pos += length( $1 ) or 1 )+                         : 0+                     )+                     ## </perl5>+     ||    ( ( $pos = $pad{I2134} ) && 0 ) )+                   ## </group>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2098} ) && 0 ) )) {}; $bool = 1 }+           )+           ## </quant>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token parsed_code+*parsed_code =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 3158 3204+           (+      +             ## <group>+             ## pos: 3158 3177+              (   ( $pad{I2135} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 3158 3172+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->string_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2135} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 3177 3204+              (   ( $pad{I2136} = $pos or 1 ) &&+               ## <closure>+               ## pos: 3177 3203+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return '{' . $_[0] . '}'; }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2136} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token named_capture_body+*named_capture_body =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 3238 3729+           (+               ( $pad{I2137} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 3239 3371+               (+      +                 ## <group>+                 ## pos: 3239 3244+                  (   ( $pad{I2138} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 3240 3242+                   ( ( substr( $s, $pos, 1 ) eq '(' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2138} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3244 3258+                  (   ( $pad{I2139} = $pos or 1 ) &&+                   ## <named_capture>+                   ## pos: 3244 3250+                   do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                               $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                   ## </named_capture>+     ||    ( ( $pos = $pad{I2139} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3258 3262+                  (   ( $pad{I2140} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 3258 3260+                   ( ( substr( $s, $pos, 1 ) eq ')' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2140} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3262 3371+                  (   ( $pad{I2141} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 3262 3366+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { capturing_group => ${ $_[0]->{qw(rule)} },+                                  _pos => [ $_[0]->from, $_[0]->to ], }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2141} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2137} ) or 1 )+               &&            ## <concat>+               ## pos: 3372 3419+               (+      +                 ## <group>+                 ## pos: 3372 3377+                  (   ( $pad{I2142} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 3373 3375+                   ( ( substr( $s, $pos, 1 ) eq '[' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2142} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3377 3391+                  (   ( $pad{I2143} = $pos or 1 ) &&+                   ## <named_capture>+                   ## pos: 3377 3383+                   do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                               $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                   ## </named_capture>+     ||    ( ( $pos = $pad{I2143} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3391 3395+                  (   ( $pad{I2144} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 3391 3393+                   ( ( substr( $s, $pos, 1 ) eq ']' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2144} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3395 3419+                  (   ( $pad{I2145} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 3395 3414+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return ${ $_[0]->{qw(rule)} } }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2145} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2137} ) or 1 )+               &&            ## <concat>+               ## pos: 3420 3481+               (+      +                 ## <group>+                 ## pos: 3420 3425+                  (   ( $pad{I2146} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 3421 3423+                   ( ( substr( $s, $pos, 1 ) eq '<' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2146} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3425 3445+                  (   ( $pad{I2147} = $pos or 1 ) &&+                   ## <named_capture>+                   ## pos: 3425 3443+                   do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                               $grammar->parse_metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'parse_metasyntax'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                   ## </named_capture>+     ||    ( ( $pos = $pad{I2147} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3445 3481+                  (   ( $pad{I2148} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 3445 3476+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return ${ $_[0]->{qw(parse_metasyntax)} } }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2148} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2137} ) or 1 )+               &&            ## <concat>+               ## pos: 3482 3695+               (+      +                 ## <group>+                 ## pos: 3482 3487+                  (   ( $pad{I2149} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 3483 3485+                   ( ( substr( $s, $pos, 1 ) eq chr(39) )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2149} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3487 3501+                  (   ( $pad{I2150} = $pos or 1 ) &&+                   ## <metasyntax>+                   ## pos: 3487 3497+                   do {+                        my $prior = $::_V6_PRIOR_;+                        my $match =+                               $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                        $::_V6_PRIOR_ = $prior;+                        my $bool = (!$match != 1);+                        $pos = $match->to if $bool;+                        $match;+                   }+                   ## </metasyntax>+     ||    ( ( $pos = $pad{I2150} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3501 3512+                  (   ( $pad{I2151} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 3501 3503+                   ( ( substr( $s, $pos, 1 ) eq chr(39) )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2151} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 3512 3695+                  (   ( $pad{I2152} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 3512 3690+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { metasyntax => {+                            metasyntax => "${$_[0]}",+                            },+                       _pos => [ $_[0]->from, $_[0]->to ],+                    };+            }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2152} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2137} ) or 1 )+               &&   +               ## <group>+               ## pos: 3696 3729+                (   ( $pad{I2153} = $pos or 1 ) &&+                 ## <closure>+                 ## pos: 3697 3728+                 do { +                   local $::_V6_SUCCEED = 1;+                   $::_V6_MATCH_ = $m;+                   sub { die "invalid alias syntax"; }->( $m );+                   1;+                 }+                 ## </closure>+     ||    ( ( $pos = $pad{I2153} ) && 0 ) )+               ## </group>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token parse_metasyntax+*parse_metasyntax =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 3765 6638+           (+      +             ## <group>+             ## pos: 3765 3809+              (   ( $pad{I2154} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 3765 3804+               do{+                    my $from = $pos;+                    my $bool =                    ## <alt>+                       ## pos: 3781 3803+                       (+                           ( $pad{I2155} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 3781 3786+                            (   ( $pad{I2156} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 3782 3785+                             ( ( substr( $s, $pos, 1 ) eq '!' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2156} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2155} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 3787 3792+                            (   ( $pad{I2157} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 3788 3791+                             ( ( substr( $s, $pos, 1 ) eq '?' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2157} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2155} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 3793 3798+                            (   ( $pad{I2158} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 3794 3797+                             ( ( substr( $s, $pos, 1 ) eq '.' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2158} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2155} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 3799 3803+                            (   ( $pad{I2159} = $pos or 1 ) &&+     1 # null constant+     ||    ( ( $pos = $pad{I2159} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+    ;+                    my $match = Pugs::Runtime::Match->new(+                        { str => \$s, from => \$from, match => [], named => {}, bool => \1, to => \(0+$pos), capture => undef }+                    ); $named{'modifier'} = $match;+                    $bool+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2154} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 3809 6638+              (   ( $pad{I2160} = $pos or 1 ) &&+               ## <alt>+               ## pos: 3810 6636+               (+                   ( $pad{I2161} = $pos or 1 )+                   && (+                   ## <concat>+                   ## pos: 3810 4028+                   (+      +                     ## <group>+                     ## pos: 3810 3824+                      (   ( $pad{I2162} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 3819 3822+                       ( ( substr( $s, $pos, 1 ) eq '{' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2162} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 3824 3839+                      (   ( $pad{I2163} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 3824 3837+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->parsed_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'parsed_code'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2163} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 3839 3852+                      (   ( $pad{I2164} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 3839 3843+                       ( ( substr( $s, $pos, 2 ) eq '}>' )+                           ? ( $pos += 2 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2164} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 3852 4028+                      (   ( $pad{I2165} = $pos or 1 ) &&+                       ## <closure>+                       ## pos: 3852 4023+                       do {+                         local $::_V6_SUCCEED = 1;+                         $::_V6_MATCH_ = $m;+                         $m->data->{capture} = \( sub { return { closure => {+                closure  => ${ $_[0]->{qw(parsed_code)} },+                modifier => ${ $_[0]->{qw(modifier)} },+            },+                _pos => [ $_[0]->from - 1, $_[0]->to ],+            } }->( $m ) ); +                         $bool = $::_V6_SUCCEED;+                         $::_V6_MATCH_ = $m if $bool; +                         return $m if $bool; +                       }+                       ## </closure>+     ||    ( ( $pos = $pad{I2165} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2161} ) or 1 )+                   &&                ## <concat>+                   ## pos: 4029 4522+                   (+      +                     ## <group>+                     ## pos: 4029 4059+                      (   ( $pad{I2166} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 4038 4050+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'char_class'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2166} ) && 0 ) )+                     ## </group>+    +                   &&+                     ## <quant>+                     ## pos: 4059 4092+                     (+                      (   ( $pad{I2167} = $pos or 1 ) &&+    +                         ## <capture>+                         do{+                             my $hash = do {+                               my $bool = 1;+                               my $from = $pos;+                               my @match;+                               my %named;+                               $bool = 0 unless+                                 ## <concat>+                                 ## pos: 4060 4081+                                 (+      +                                   ## <group>+                                   ## pos: 4060 4068+                                    (   ( $pad{I2168} = $pos or 1 ) &&+                                     ## <perl5>+                                     ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )+                                         ? ( $pos += length( $1 ) or 1 )+                                         : 0+                                     )+                                     ## </perl5>+     ||    ( ( $pos = $pad{I2168} ) && 0 ) )+                                   ## </group>+    +                                 &&+      +                                   ## <group>+                                   ## pos: 4068 4081+                                    (   ( $pad{I2169} = $pos or 1 ) &&+                                     ## <named_capture>+                                     ## pos: 4068 4080+                                     do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                                 $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'char_class'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                                     ## </named_capture>+     ||    ( ( $pos = $pad{I2169} ) && 0 ) )+                                   ## </group>+    +                                 )+                                 ## </concat>+    ;+                               { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                             };+                             my $bool = ${$hash->{'bool'}};+                             if ( $bool ) {+                                 push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );+                             }+                             $bool;+                         }+                         ## </capture>+     ||    ( ( $pos = $pad{I2167} ) && 0 ) )+                     && do { while (+                      (   ( $pad{I2167} = $pos or 1 ) &&+    +                         ## <capture>+                         do{+                             my $hash = do {+                               my $bool = 1;+                               my $from = $pos;+                               my @match;+                               my %named;+                               $bool = 0 unless+                                 ## <concat>+                                 ## pos: 4060 4081+                                 (+      +                                   ## <group>+                                   ## pos: 4060 4068+                                    (   ( $pad{I2168} = $pos or 1 ) &&+                                     ## <perl5>+                                     ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )+                                         ? ( $pos += length( $1 ) or 1 )+                                         : 0+                                     )+                                     ## </perl5>+     ||    ( ( $pos = $pad{I2168} ) && 0 ) )+                                   ## </group>+    +                                 &&+      +                                   ## <group>+                                   ## pos: 4068 4081+                                    (   ( $pad{I2169} = $pos or 1 ) &&+                                     ## <named_capture>+                                     ## pos: 4068 4080+                                     do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                                 $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'char_class'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                                     ## </named_capture>+     ||    ( ( $pos = $pad{I2169} ) && 0 ) )+                                   ## </group>+    +                                 )+                                 ## </concat>+    ;+                               { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                             };+                             my $bool = ${$hash->{'bool'}};+                             if ( $bool ) {+                                 push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );+                             }+                             $bool;+                         }+                         ## </capture>+     ||    ( ( $pos = $pad{I2167} ) && 0 ) )) {}; $bool = 1 }+                     )+                     ## </quant>+    +                   &&+      +                     ## <group>+                     ## pos: 4092 4103+                      (   ( $pad{I2170} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 4092 4094+                       ( ( substr( $s, $pos, 1 ) eq '>' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2170} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 4103 4522+                      (   ( $pad{I2171} = $pos or 1 ) &&+                       ## <closure>+                       ## pos: 4103 4517+                       do {+                         local $::_V6_SUCCEED = 1;+                         $::_V6_MATCH_ = $m;+                         $m->data->{capture} = \( sub {+                if ( ${ $_[0]->{qw(modifier)} } eq '!' ) {+                  return {+                    negate => {+                      char_class => [+                        '+' . $_[0]->{qw(char_class)},+                        @{$_[0]->[0]},   # TODO - stringify+                  ] } }+                }+                return {+                  char_class => [+                    '+' . $_[0]->{qw(char_class)},+                    @{$_[0]->[0]},   # TODO - stringify+                ] }+            }->( $m ) ); +                         $bool = $::_V6_SUCCEED;+                         $::_V6_MATCH_ = $m if $bool; +                         return $m if $bool; +                       }+                       ## </closure>+     ||    ( ( $pos = $pad{I2171} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2161} ) or 1 )+                   &&                ## <concat>+                   ## pos: 4523 6411+                   (+      +                     ## <group>+                     ## pos: 4523 4548+                      (   ( $pad{I2172} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 4532 4539+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->ident( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'ident'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2172} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 4548 6411+                      (   ( $pad{I2173} = $pos or 1 ) &&+                       ## <alt>+                       ## pos: 4549 6405+                       (+                           ( $pad{I2174} = $pos or 1 )+                           && (+                           ## <concat>+                           ## pos: 4549 5166+                           (+      +                             ## <group>+                             ## pos: 4549 4566+                              (   ( $pad{I2175} = $pos or 1 ) &&+                               ## <metasyntax>+                               ## pos: 4560 4565+                               do {+                                    my $prior = $::_V6_PRIOR_;+                                    my $match =+                                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                    $::_V6_PRIOR_ = $prior;+                                    my $bool = (!$match != 1);+                                    $pos = $match->to if $bool;+                                    $match;+                               }+                               ## </metasyntax>+     ||    ( ( $pos = $pad{I2175} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 4566 4573+                              (   ( $pad{I2176} = $pos or 1 ) &&+                               ## <named_capture>+                               ## pos: 4566 4572+                               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                               ## </named_capture>+     ||    ( ( $pos = $pad{I2176} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 4573 4586+                              (   ( $pad{I2177} = $pos or 1 ) &&+    +                               ## <constant>+                               ## pos: 4573 4575+                               ( ( substr( $s, $pos, 1 ) eq '>' )+                                   ? ( $pos += 1 or 1 )+                                   : 0+                               )+                               ## </constant>+     ||    ( ( $pos = $pad{I2177} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 4586 5166+                              (   ( $pad{I2178} = $pos or 1 ) &&+                               ## <closure>+                               ## pos: 4586 5157+                               do {+                                 local $::_V6_SUCCEED = 1;+                                 $::_V6_MATCH_ = $m;+                                 $m->data->{capture} = \( sub {+                if  ( ${ $_[0]->{qw(ident)} } eq 'before'+                   || ${ $_[0]->{qw(ident)} } eq 'after'+                    ) {+                    return { ${ $_[0]->{qw(ident)} } => {+                        rule => ${ $_[0]->{qw(rule)} }, modifier => ${ $_[0]->{qw(modifier)} },+                         }, _pos => [ $_[0]->from - 1, $_[0]->to ], }+                }+                return { metasyntax => {+                            metasyntax => ${ $_[0]->{qw(ident)} },+                            rule       => ${ $_[0]->{qw(rule)} },+                            modifier   => ${ $_[0]->{qw(modifier)} },+                        },+                        _pos => [ $_[0]->from - 1, $_[0]->to ],+                    }+              }->( $m ) ); +                                 $bool = $::_V6_SUCCEED;+                                 $::_V6_MATCH_ = $m if $bool; +                                 return $m if $bool; +                               }+                               ## </closure>+     ||    ( ( $pos = $pad{I2178} ) && 0 ) )+                             ## </group>+    +                           )+                           ## </concat>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2174} ) or 1 )+                           &&                        ## <concat>+                           ## pos: 5167 6146+                           (+      +                             ## <group>+                             ## pos: 5167 5182+                              (   ( $pad{I2179} = $pos or 1 ) &&+    +                               ## <constant>+                               ## pos: 5178 5181+                               ( ( substr( $s, $pos, 1 ) eq ':' )+                                   ? ( $pos += 1 or 1 )+                                   : 0+                               )+                               ## </constant>+     ||    ( ( $pos = $pad{I2179} ) && 0 ) )+                             ## </group>+    +                           &&+                             ## <quant>+                             ## pos: 5182 5199+                             (+                              (   ( $pad{I2180} = $pos or 1 ) &&+                                 ## <metasyntax>+                                 ## pos: 5182 5187+                                 do {+                                      my $prior = $::_V6_PRIOR_;+                                      my $match =+                                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                      $::_V6_PRIOR_ = $prior;+                                      my $bool = (!$match != 1);+                                      $pos = $match->to if $bool;+                                      $match;+                                 }+                                 ## </metasyntax>+     ||    ( ( $pos = $pad{I2180} ) && 0 ) )+                             || ( $bool = 1 )+                             )+                             ## </quant>+    +                           &&+      +                             ## <group>+                             ## pos: 5199 5369+                              (   ( $pad{I2181} = $pos or 1 ) &&+                               ## <named_capture>+                               ## pos: 5199 5358+                               do{+                    my $from = $pos;+                    my $bool =                                    ## <quant>+                                       ## pos: 5210 5357+                                       do { while (+                                        (   ( $pad{I2182} = $pos or 1 ) &&+                                           ## <alt>+                                           ## pos: 5224 5344+                                           (+                                               ( $pad{I2183} = $pos or 1 )+                                               && (+                                               ## <concat>+                                               ## pos: 5238 5270+                                               (+      +                                                 ## <group>+                                                 ## pos: 5238 5243+                                                  (   ( $pad{I2184} = $pos or 1 ) &&+    +                                                   ## <constant>+                                                   ## pos: 5240 5242+                                                   ( ( substr( $s, $pos, 1 ) eq '\\' )+                                                       ? ( $pos += 1 or 1 )+                                                       : 0+                                                   )+                                                   ## </constant>+     ||    ( ( $pos = $pad{I2184} ) && 0 ) )+                                                 ## </group>+    +                                               &&+      +                                                 ## <group>+                                                 ## pos: 5243 5270+                                                  (   ( $pad{I2185} = $pos or 1 ) &&+                                                   ## <named_capture>+                                                   ## pos: 5243 5257+                                                   do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                                               $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'special_char'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                                                   ## </named_capture>+     ||    ( ( $pos = $pad{I2185} ) && 0 ) )+                                                 ## </group>+    +                                               )+                                               ## </concat>+    +                                               )+                                             || (+                                               ( ( $bool = 1 ) && ( $pos = $pad{I2183} ) or 1 )+                                               &&   +                                               ## <group>+                                               ## pos: 5271 5319+                                                (   ( $pad{I2186} = $pos or 1 ) &&+                                                ## <metasyntax>+                                                 ## pos: 5273 5306+                                                 do{+                    my $match = +              ## <variable>+              ## pos: 5273 5306+              do {+                our $I2187;+                our $I2187_sizes;+                unless ( $I2187 ) {+                    my $hash = \%Pugs::Grammar::Rule::variables;+                    my %sizes = map { length($_) => 1 } keys %$hash;+                    $I2187_sizes = [ sort { $b <=> $a } keys %sizes ];+                    $I2187 = $hash;+                }+                my $match = 0;+                my $key;+                for ( @$I2187_sizes ) {+                    $key = ( $pos <= length( $s )+                                ? substr( $s, $pos, $_ )+                                : '' );+                    if ( exists $I2187->{$key} ) {+                        #$named{KEY} = $key;+                        #$::_V6_MATCH_ = $m;+                        #print "m: ", Dumper( $::_V6_MATCH_->data )+                        #    if ( $key eq 'until' );+                        $match = Pugs::Runtime::Regex::preprocess_hash( $I2187, $key )->( $s, $grammar, { p => ( $pos + $_ ), positionals => [ ], args => { KEY => $key } }, undef );+                        last if $match;+                    }+                }+                if ( $match ) {+                    $pos = $match->to;+                    #print "match: $key at $pos = ", Dumper( $match->data );+                    $bool = 1;+                }; # else { $bool = 0 }+                $match;+              }+              ## </variable>+    ;+                    if ( $match ) { push @{$named{'Pugs::Grammar::Rule::variables'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                                                ## </metasyntax>+     ||    ( ( $pos = $pad{I2186} ) && 0 ) )+                                               ## </group>+    +                                               )+                                             || (+                                               ( ( $bool = 1 ) && ( $pos = $pad{I2183} ) or 1 )+                                               &&   +                                               ## <group>+                                               ## pos: 5320 5344+                                                (   ( $pad{I2188} = $pos or 1 ) &&+                                                 ## <perl5>+                                                 ( ( substr( $s, $pos ) =~ m/^((?:(?![\>]))\X)/ )+                                                     ? ( $pos += length( $1 ) or 1 )+                                                     : 0+                                                 )+                                                 ## </perl5>+     ||    ( ( $pos = $pad{I2188} ) && 0 ) )+                                               ## </group>+    +                                             )+                                           )+                                           ## </alt>+     ||    ( ( $pos = $pad{I2182} ) && 0 ) )) {}; $bool = 1 }+                                       ## </quant>+    ;+                    my $match = Pugs::Runtime::Match->new(+                        { str => \$s, from => \$from, match => [], named => {}, bool => \1, to => \(0+$pos), capture => undef }+                    ); $named{'str'} = $match;+                    $bool+                }+                               ## </named_capture>+     ||    ( ( $pos = $pad{I2181} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 5369 5382+                              (   ( $pad{I2189} = $pos or 1 ) &&+    +                               ## <constant>+                               ## pos: 5369 5371+                               ( ( substr( $s, $pos, 1 ) eq '>' )+                                   ? ( $pos += 1 or 1 )+                                   : 0+                               )+                               ## </constant>+     ||    ( ( $pos = $pad{I2189} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 5382 6146+                              (   ( $pad{I2190} = $pos or 1 ) &&+                               ## <closure>+                               ## pos: 5382 6137+                               do {+                                 local $::_V6_SUCCEED = 1;+                                 $::_V6_MATCH_ = $m;+                                 $m->data->{capture} = \( sub {+                if  ( ${ $_[0]->{qw(ident)} } eq 'before'+                   || ${ $_[0]->{qw(ident)} } eq 'after'+                    ) {+                    return { ${ $_[0]->{qw(ident)} } => {+                        rule     => { metasyntax => {+                                    metasyntax => '\'' . ${ $_[0]->{qw(str)} } . '\'',+                                },+                            _pos => [ $_[0]->{qw(str)}->from, $_[0]->{qw(str)}->to ],                   },+                        modifier => ${ $_[0]->{qw(modifier)} },+                        _pos => [ $_[0]->from - 1, $_[0]->to ],+                    } }+                }+                return { metasyntax => {+                    metasyntax => ${ $_[0]->{qw(ident)} },+                    string   => ${ $_[0]->{qw(str)} },+                    modifier => ${ $_[0]->{qw(modifier)} },+                },+                    _pos => [ $_[0]->from - 1, $_[0]->to ],+                }+              }->( $m ) ); +                                 $bool = $::_V6_SUCCEED;+                                 $::_V6_MATCH_ = $m if $bool; +                                 return $m if $bool; +                               }+                               ## </closure>+     ||    ( ( $pos = $pad{I2190} ) && 0 ) )+                             ## </group>+    +                           )+                           ## </concat>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2174} ) or 1 )+                           &&                        ## <concat>+                           ## pos: 6147 6405+                           (+      +                             ## <group>+                             ## pos: 6147 6162+                              (   ( $pad{I2191} = $pos or 1 ) &&+    +                               ## <constant>+                               ## pos: 6158 6160+                               ( ( substr( $s, $pos, 1 ) eq '(' )+                                   ? ( $pos += 1 or 1 )+                                   : 0+                               )+                               ## </constant>+     ||    ( ( $pos = $pad{I2191} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 6162 6177+                              (   ( $pad{I2192} = $pos or 1 ) &&+                               ## <named_capture>+                               ## pos: 6162 6175+                               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                           $grammar->parsed_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'parsed_code'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                               ## </named_capture>+     ||    ( ( $pos = $pad{I2192} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 6177 6180+                              (   ( $pad{I2193} = $pos or 1 ) &&+    +                               ## <constant>+                               ## pos: 6177 6179+                               ( ( substr( $s, $pos, 1 ) eq ')' )+                                   ? ( $pos += 1 or 1 )+                                   : 0+                               )+                               ## </constant>+     ||    ( ( $pos = $pad{I2193} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 6180 6193+                              (   ( $pad{I2194} = $pos or 1 ) &&+    +                               ## <constant>+                               ## pos: 6180 6182+                               ( ( substr( $s, $pos, 1 ) eq '>' )+                                   ? ( $pos += 1 or 1 )+                                   : 0+                               )+                               ## </constant>+     ||    ( ( $pos = $pad{I2194} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 6193 6405+                              (   ( $pad{I2195} = $pos or 1 ) &&+                               ## <closure>+                               ## pos: 6193 6396+                               do {+                                 local $::_V6_SUCCEED = 1;+                                 $::_V6_MATCH_ = $m;+                                 $m->data->{capture} = \( sub { return { call => {+                  method   => ${ $_[0]->{qw(ident)} },+                  params   => ${ $_[0]->{qw(parsed_code)} },+                  modifier => ${ $_[0]->{qw(modifier)} },+              },+                  _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); +                                 $bool = $::_V6_SUCCEED;+                                 $::_V6_MATCH_ = $m if $bool; +                                 return $m if $bool; +                               }+                               ## </closure>+     ||    ( ( $pos = $pad{I2195} ) && 0 ) )+                             ## </group>+    +                           )+                           ## </concat>+    +                         )+                       )+                       ## </alt>+     ||    ( ( $pos = $pad{I2173} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                   )+                 || (+                   ( ( $bool = 1 ) && ( $pos = $pad{I2161} ) or 1 )+                   &&                ## <concat>+                   ## pos: 6412 6636+                   (+      +                     ## <group>+                     ## pos: 6412 6435+                      (   ( $pad{I2196} = $pos or 1 ) &&+                       ## <named_capture>+                       ## pos: 6421 6433+                       do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                   $grammar->metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'metasyntax'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                       ## </named_capture>+     ||    ( ( $pos = $pad{I2196} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 6435 6446+                      (   ( $pad{I2197} = $pos or 1 ) &&+    +                       ## <constant>+                       ## pos: 6435 6437+                       ( ( substr( $s, $pos, 1 ) eq '>' )+                           ? ( $pos += 1 or 1 )+                           : 0+                       )+                       ## </constant>+     ||    ( ( $pos = $pad{I2197} ) && 0 ) )+                     ## </group>+    +                   &&+      +                     ## <group>+                     ## pos: 6446 6636+                      (   ( $pad{I2198} = $pos or 1 ) &&+                       ## <closure>+                       ## pos: 6446 6631+                       do {+                         local $::_V6_SUCCEED = 1;+                         $::_V6_MATCH_ = $m;+                         $m->data->{capture} = \( sub { return { metasyntax => {+                  metasyntax => "${ $_[0]->{qw(metasyntax)} }",+                  modifier   => ${ $_[0]->{qw(modifier)} },+            },+                  _pos => [ $_[0]->from - 1, $_[0]->to ],+            } }->( $m ) ); +                         $bool = $::_V6_SUCCEED;+                         $::_V6_MATCH_ = $m if $bool; +                         return $m if $bool; +                       }+                       ## </closure>+     ||    ( ( $pos = $pad{I2198} ) && 0 ) )+                     ## </group>+    +                   )+                   ## </concat>+    +                 )+               )+               ## </alt>+     ||    ( ( $pos = $pad{I2160} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token var1+*var1 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 6748 6850+           (+      +             ## <group>+             ## pos: 6748 6756+              (   ( $pad{I2199} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 6748 6755+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ident( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'ident'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2199} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 6756 6767+              (   ( $pad{I2200} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 6756 6758+               ( ( substr( $s, $pos, 1 ) eq '>' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2200} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 6767 6850+              (   ( $pad{I2201} = $pos or 1 ) &&+               ## <closure>+               ## pos: 6767 6849+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { match_variable => '$' . $_[0]->{ident}, _pos => [$_[0]->from - 2, $_[0]->to], }; }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2201} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $variables{'$<'} = sub { var1($_[1], $_[0], $_[2], $_[3]) }; ++# token var2+*var2 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 6942 7166+           (+               ( $pad{I2202} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 6942 7040+               (+                 ## <quant>+                 ## pos: 6942 6960+                 (+                  (   ( $pad{I2203} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 6942 6950+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2203} ) && 0 ) )+                 && do { while (+                  (   ( $pad{I2203} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 6942 6950+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2203} ) && 0 ) )) {}; $bool = 1 }+                 )+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 6960 7040+                  (   ( $pad{I2204} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 6960 7035+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { match_variable => '$' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to], }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2204} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2202} ) or 1 )+               &&            ## <concat>+               ## pos: 7041 7166+               (+                 ## <quant>+                 ## pos: 7041 7062+                 (+                  (   ( $pad{I2205} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 7050 7052+                     ( ( substr( $s, $pos, 1 ) eq '^' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2205} ) && 0 ) )+                 || ( $bool = 1 )+                 )+                 ## </quant>+    +               &&+                 ## <quant>+                 ## pos: 7062 7096+                 (+                  (   ( $pad{I2206} = $pos or 1 ) &&+                     ## <alt>+                     ## pos: 7063 7085+                     (+                         ( $pad{I2207} = $pos or 1 )+                         && (+      +                         ## <group>+                         ## pos: 7063 7073+                          (   ( $pad{I2208} = $pos or 1 ) &&+                           ## <metasyntax>+                           ## pos: 7064 7072+                           do {+                                my $prior = $::_V6_PRIOR_;+                                my $match =+                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                $::_V6_PRIOR_ = $prior;+                                my $bool = (!$match != 1);+                                $pos = $match->to if $bool;+                                $match;+                           }+                           ## </metasyntax>+     ||    ( ( $pos = $pad{I2208} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2207} ) or 1 )+                         &&   +                         ## <group>+                         ## pos: 7074 7077+                          (   ( $pad{I2209} = $pos or 1 ) &&+    +                           ## <constant>+                           ## pos: 7075 7076+                           ( ( substr( $s, $pos, 1 ) eq '_' )+                               ? ( $pos += 1 or 1 )+                               : 0+                           )+                           ## </constant>+     ||    ( ( $pos = $pad{I2209} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2207} ) or 1 )+                         &&                      ## <concat>+                         ## pos: 7078 7085+                         (+      +                           ## <group>+                           ## pos: 7078 7082+                            (   ( $pad{I2210} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7079 7081+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2210} ) && 0 ) )+                           ## </group>+    +                         &&+      +                           ## <group>+                           ## pos: 7082 7085+                            (   ( $pad{I2211} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7082 7084+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2211} ) && 0 ) )+                           ## </group>+    +                         )+                         ## </concat>+    +                       )+                     )+                     ## </alt>+     ||    ( ( $pos = $pad{I2206} ) && 0 ) )+                 && do { while (+                  (   ( $pad{I2206} = $pos or 1 ) &&+                     ## <alt>+                     ## pos: 7063 7085+                     (+                         ( $pad{I2207} = $pos or 1 )+                         && (+      +                         ## <group>+                         ## pos: 7063 7073+                          (   ( $pad{I2208} = $pos or 1 ) &&+                           ## <metasyntax>+                           ## pos: 7064 7072+                           do {+                                my $prior = $::_V6_PRIOR_;+                                my $match =+                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                $::_V6_PRIOR_ = $prior;+                                my $bool = (!$match != 1);+                                $pos = $match->to if $bool;+                                $match;+                           }+                           ## </metasyntax>+     ||    ( ( $pos = $pad{I2208} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2207} ) or 1 )+                         &&   +                         ## <group>+                         ## pos: 7074 7077+                          (   ( $pad{I2209} = $pos or 1 ) &&+    +                           ## <constant>+                           ## pos: 7075 7076+                           ( ( substr( $s, $pos, 1 ) eq '_' )+                               ? ( $pos += 1 or 1 )+                               : 0+                           )+                           ## </constant>+     ||    ( ( $pos = $pad{I2209} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2207} ) or 1 )+                         &&                      ## <concat>+                         ## pos: 7078 7085+                         (+      +                           ## <group>+                           ## pos: 7078 7082+                            (   ( $pad{I2210} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7079 7081+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2210} ) && 0 ) )+                           ## </group>+    +                         &&+      +                           ## <group>+                           ## pos: 7082 7085+                            (   ( $pad{I2211} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7082 7084+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2211} ) && 0 ) )+                           ## </group>+    +                         )+                         ## </concat>+    +                       )+                     )+                     ## </alt>+     ||    ( ( $pos = $pad{I2206} ) && 0 ) )) {}; $bool = 1 }+                 )+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 7096 7166+                  (   ( $pad{I2212} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 7096 7165+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { variable => '$' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to], }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2212} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $variables{'$'} = sub { var2($_[1], $_[0], $_[2], $_[3]) }; ++# token var3+*var3 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 7257 7479+           (+               ( $pad{I2213} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 7257 7354+               (+                 ## <quant>+                 ## pos: 7257 7275+                 (+                  (   ( $pad{I2214} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 7257 7265+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2214} ) && 0 ) )+                 && do { while (+                  (   ( $pad{I2214} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 7257 7265+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2214} ) && 0 ) )) {}; $bool = 1 }+                 )+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 7275 7354+                  (   ( $pad{I2215} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 7275 7349+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { match_variable => '@' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2215} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2213} ) or 1 )+               &&            ## <concat>+               ## pos: 7355 7479+               (+                 ## <quant>+                 ## pos: 7355 7376+                 (+                  (   ( $pad{I2216} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 7364 7366+                     ( ( substr( $s, $pos, 1 ) eq '^' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2216} ) && 0 ) )+                 || ( $bool = 1 )+                 )+                 ## </quant>+    +               &&+                 ## <quant>+                 ## pos: 7376 7410+                 (+                  (   ( $pad{I2217} = $pos or 1 ) &&+                     ## <alt>+                     ## pos: 7377 7399+                     (+                         ( $pad{I2218} = $pos or 1 )+                         && (+      +                         ## <group>+                         ## pos: 7377 7387+                          (   ( $pad{I2219} = $pos or 1 ) &&+                           ## <metasyntax>+                           ## pos: 7378 7386+                           do {+                                my $prior = $::_V6_PRIOR_;+                                my $match =+                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                $::_V6_PRIOR_ = $prior;+                                my $bool = (!$match != 1);+                                $pos = $match->to if $bool;+                                $match;+                           }+                           ## </metasyntax>+     ||    ( ( $pos = $pad{I2219} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2218} ) or 1 )+                         &&   +                         ## <group>+                         ## pos: 7388 7391+                          (   ( $pad{I2220} = $pos or 1 ) &&+    +                           ## <constant>+                           ## pos: 7389 7390+                           ( ( substr( $s, $pos, 1 ) eq '_' )+                               ? ( $pos += 1 or 1 )+                               : 0+                           )+                           ## </constant>+     ||    ( ( $pos = $pad{I2220} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2218} ) or 1 )+                         &&                      ## <concat>+                         ## pos: 7392 7399+                         (+      +                           ## <group>+                           ## pos: 7392 7396+                            (   ( $pad{I2221} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7393 7395+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2221} ) && 0 ) )+                           ## </group>+    +                         &&+      +                           ## <group>+                           ## pos: 7396 7399+                            (   ( $pad{I2222} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7396 7398+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2222} ) && 0 ) )+                           ## </group>+    +                         )+                         ## </concat>+    +                       )+                     )+                     ## </alt>+     ||    ( ( $pos = $pad{I2217} ) && 0 ) )+                 && do { while (+                  (   ( $pad{I2217} = $pos or 1 ) &&+                     ## <alt>+                     ## pos: 7377 7399+                     (+                         ( $pad{I2218} = $pos or 1 )+                         && (+      +                         ## <group>+                         ## pos: 7377 7387+                          (   ( $pad{I2219} = $pos or 1 ) &&+                           ## <metasyntax>+                           ## pos: 7378 7386+                           do {+                                my $prior = $::_V6_PRIOR_;+                                my $match =+                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                $::_V6_PRIOR_ = $prior;+                                my $bool = (!$match != 1);+                                $pos = $match->to if $bool;+                                $match;+                           }+                           ## </metasyntax>+     ||    ( ( $pos = $pad{I2219} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2218} ) or 1 )+                         &&   +                         ## <group>+                         ## pos: 7388 7391+                          (   ( $pad{I2220} = $pos or 1 ) &&+    +                           ## <constant>+                           ## pos: 7389 7390+                           ( ( substr( $s, $pos, 1 ) eq '_' )+                               ? ( $pos += 1 or 1 )+                               : 0+                           )+                           ## </constant>+     ||    ( ( $pos = $pad{I2220} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2218} ) or 1 )+                         &&                      ## <concat>+                         ## pos: 7392 7399+                         (+      +                           ## <group>+                           ## pos: 7392 7396+                            (   ( $pad{I2221} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7393 7395+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2221} ) && 0 ) )+                           ## </group>+    +                         &&+      +                           ## <group>+                           ## pos: 7396 7399+                            (   ( $pad{I2222} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7396 7398+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2222} ) && 0 ) )+                           ## </group>+    +                         )+                         ## </concat>+    +                       )+                     )+                     ## </alt>+     ||    ( ( $pos = $pad{I2217} ) && 0 ) )) {}; $bool = 1 }+                 )+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 7410 7479+                  (   ( $pad{I2223} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 7410 7478+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { variable => '@' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2223} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $variables{'@'} = sub { var3($_[1], $_[0], $_[2], $_[3]) }; ++# token var4+*var4 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 7570 7790+           (+               ( $pad{I2224} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 7570 7666+               (+                 ## <quant>+                 ## pos: 7570 7588+                 (+                  (   ( $pad{I2225} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 7570 7578+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2225} ) && 0 ) )+                 && do { while (+                  (   ( $pad{I2225} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 7570 7578+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->digit( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2225} ) && 0 ) )) {}; $bool = 1 }+                 )+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 7588 7666+                  (   ( $pad{I2226} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 7588 7661+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { match_variable => '%' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] } }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2226} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2224} ) or 1 )+               &&            ## <concat>+               ## pos: 7667 7790+               (+                 ## <quant>+                 ## pos: 7667 7688+                 (+                  (   ( $pad{I2227} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 7676 7678+                     ( ( substr( $s, $pos, 1 ) eq '^' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2227} ) && 0 ) )+                 || ( $bool = 1 )+                 )+                 ## </quant>+    +               &&+                 ## <quant>+                 ## pos: 7688 7722+                 (+                  (   ( $pad{I2228} = $pos or 1 ) &&+                     ## <alt>+                     ## pos: 7689 7711+                     (+                         ( $pad{I2229} = $pos or 1 )+                         && (+      +                         ## <group>+                         ## pos: 7689 7699+                          (   ( $pad{I2230} = $pos or 1 ) &&+                           ## <metasyntax>+                           ## pos: 7690 7698+                           do {+                                my $prior = $::_V6_PRIOR_;+                                my $match =+                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                $::_V6_PRIOR_ = $prior;+                                my $bool = (!$match != 1);+                                $pos = $match->to if $bool;+                                $match;+                           }+                           ## </metasyntax>+     ||    ( ( $pos = $pad{I2230} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2229} ) or 1 )+                         &&   +                         ## <group>+                         ## pos: 7700 7703+                          (   ( $pad{I2231} = $pos or 1 ) &&+    +                           ## <constant>+                           ## pos: 7701 7702+                           ( ( substr( $s, $pos, 1 ) eq '_' )+                               ? ( $pos += 1 or 1 )+                               : 0+                           )+                           ## </constant>+     ||    ( ( $pos = $pad{I2231} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2229} ) or 1 )+                         &&                      ## <concat>+                         ## pos: 7704 7711+                         (+      +                           ## <group>+                           ## pos: 7704 7708+                            (   ( $pad{I2232} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7705 7707+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2232} ) && 0 ) )+                           ## </group>+    +                         &&+      +                           ## <group>+                           ## pos: 7708 7711+                            (   ( $pad{I2233} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7708 7710+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2233} ) && 0 ) )+                           ## </group>+    +                         )+                         ## </concat>+    +                       )+                     )+                     ## </alt>+     ||    ( ( $pos = $pad{I2228} ) && 0 ) )+                 && do { while (+                  (   ( $pad{I2228} = $pos or 1 ) &&+                     ## <alt>+                     ## pos: 7689 7711+                     (+                         ( $pad{I2229} = $pos or 1 )+                         && (+      +                         ## <group>+                         ## pos: 7689 7699+                          (   ( $pad{I2230} = $pos or 1 ) &&+                           ## <metasyntax>+                           ## pos: 7690 7698+                           do {+                                my $prior = $::_V6_PRIOR_;+                                my $match =+                                       $grammar->alnum( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                $::_V6_PRIOR_ = $prior;+                                my $bool = (!$match != 1);+                                $pos = $match->to if $bool;+                                $match;+                           }+                           ## </metasyntax>+     ||    ( ( $pos = $pad{I2230} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2229} ) or 1 )+                         &&   +                         ## <group>+                         ## pos: 7700 7703+                          (   ( $pad{I2231} = $pos or 1 ) &&+    +                           ## <constant>+                           ## pos: 7701 7702+                           ( ( substr( $s, $pos, 1 ) eq '_' )+                               ? ( $pos += 1 or 1 )+                               : 0+                           )+                           ## </constant>+     ||    ( ( $pos = $pad{I2231} ) && 0 ) )+                         ## </group>+    +                         )+                       || (+                         ( ( $bool = 1 ) && ( $pos = $pad{I2229} ) or 1 )+                         &&                      ## <concat>+                         ## pos: 7704 7711+                         (+      +                           ## <group>+                           ## pos: 7704 7708+                            (   ( $pad{I2232} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7705 7707+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2232} ) && 0 ) )+                           ## </group>+    +                         &&+      +                           ## <group>+                           ## pos: 7708 7711+                            (   ( $pad{I2233} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 7708 7710+                             ( ( substr( $s, $pos, 1 ) eq ':' )+                                 ? ( $pos += 1 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2233} ) && 0 ) )+                           ## </group>+    +                         )+                         ## </concat>+    +                       )+                     )+                     ## </alt>+     ||    ( ( $pos = $pad{I2228} ) && 0 ) )) {}; $bool = 1 }+                 )+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 7722 7790+                  (   ( $pad{I2234} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 7722 7789+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { variable => '%' . $_[0], _pos => [$_[0]->from - 1, $_[0]->to] } }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2234} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $variables{'%'} = sub { var4($_[1], $_[0], $_[2], $_[3]) }; ++# token term1+*term1 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 7991 8141+            (   ( $pad{I2235} = $pos or 1 ) &&+             ## <closure>+             ## pos: 7991 8140+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { metasyntax => {+                            metasyntax => 'null',+            },+                            _pos => [ $_[0]->from, $_[0]->to ],+            } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2235} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'{*}'} = sub { term1($_[1], $_[0], $_[2], $_[3]) }; ++# token term2+*term2 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 8237 8452+           (+      +             ## <group>+             ## pos: 8237 8252+              (   ( $pad{I2236} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 8237 8247+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->literal( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2236} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 8252 8263+              (   ( $pad{I2237} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 8252 8254+               ( ( substr( $s, $pos, 1 ) eq chr(39) )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2237} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 8263 8452+              (   ( $pad{I2238} = $pos or 1 ) &&+               ## <closure>+               ## pos: 8263 8451+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return {+                    metasyntax => {+                        metasyntax => '\'' . ${$_[0]},+                    },+                        _pos => [ $_[0]->from - 1, $_[0]->to ],+                };+            }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2238} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'\''} = sub { term2($_[1], $_[0], $_[2], $_[3]) }; ++# token term3+*term3 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 8547 8663+           (+      +             ## <group>+             ## pos: 8547 8554+              (   ( $pad{I2239} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 8547 8553+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2239} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 8554 8565+              (   ( $pad{I2240} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 8554 8556+               ( ( substr( $s, $pos, 1 ) eq ')' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2240} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 8565 8663+              (   ( $pad{I2241} = $pos or 1 ) &&+               ## <closure>+               ## pos: 8565 8662+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { capturing_group => ${ $_[0]->{qw(rule)} },+                       _pos => [ $_[0]->from - 1, $_[0]->to ], }; }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2241} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'('} = sub { term3($_[1], $_[0], $_[2], $_[3]) }; ++# token term4+*term4 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 8757 8878+           (+      +             ## <group>+             ## pos: 8757 8765+              (   ( $pad{I2242} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 8757 8763+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2242} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 8765 8778+              (   ( $pad{I2243} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 8765 8769+               ( ( substr( $s, $pos, 2 ) eq ')>' )+                   ? ( $pos += 2 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2243} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 8778 8878+              (   ( $pad{I2244} = $pos or 1 ) &&+               ## <closure>+               ## pos: 8778 8877+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { capture_as_result => ${ $_[0]->{qw(rule)} },+                       _pos => [ $_[0]->from - 2, $_[0]->to ], }; }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2244} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'<('} = sub { term4($_[1], $_[0], $_[2], $_[3]) }; ++# token term5+*term5 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 8973 9233+           (+      +             ## <group>+             ## pos: 8973 8994+              (   ( $pad{I2245} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 8973 8985+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'char_class'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2245} ) && 0 ) )+             ## </group>+    +           &&+             ## <quant>+             ## pos: 8994 9027+             do { while (+              (   ( $pad{I2246} = $pos or 1 ) &&+    +                 ## <capture>+                 do{+                     my $hash = do {+                       my $bool = 1;+                       my $from = $pos;+                       my @match;+                       my %named;+                       $bool = 0 unless+                         ## <concat>+                         ## pos: 8995 9016+                         (+      +                           ## <group>+                           ## pos: 8995 9003+                            (   ( $pad{I2247} = $pos or 1 ) &&+                             ## <perl5>+                             ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )+                                 ? ( $pos += length( $1 ) or 1 )+                                 : 0+                             )+                             ## </perl5>+     ||    ( ( $pos = $pad{I2247} ) && 0 ) )+                           ## </group>+    +                         &&+      +                           ## <group>+                           ## pos: 9003 9016+                            (   ( $pad{I2248} = $pos or 1 ) &&+                             ## <named_capture>+                             ## pos: 9003 9015+                             do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                         $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'char_class'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                             ## </named_capture>+     ||    ( ( $pos = $pad{I2248} ) && 0 ) )+                           ## </group>+    +                         )+                         ## </concat>+    ;+                       { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                     };+                     my $bool = ${$hash->{'bool'}};+                     if ( $bool ) {+                         push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );+                     }+                     $bool;+                 }+                 ## </capture>+     ||    ( ( $pos = $pad{I2246} ) && 0 ) )) {}; $bool = 1 }+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 9027 9038+              (   ( $pad{I2249} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 9027 9029+               ( ( substr( $s, $pos, 1 ) eq '>' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2249} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 9038 9233+              (   ( $pad{I2250} = $pos or 1 ) &&+               ## <closure>+               ## pos: 9038 9232+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return {+                _pos => [ $_[0]->from - 2, $_[0]->to ],+                char_class => [+                    '+' . $_[0]->{qw(char_class)},+                    @{$_[0]->[0]},   # TODO - stringify+                ] }+            }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2250} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'<+'} = sub { term5($_[1], $_[0], $_[2], $_[3]) }; ++# token term6+*term6 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 9328 9588+           (+      +             ## <group>+             ## pos: 9328 9349+              (   ( $pad{I2251} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 9328 9340+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'char_class'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2251} ) && 0 ) )+             ## </group>+    +           &&+             ## <quant>+             ## pos: 9349 9382+             do { while (+              (   ( $pad{I2252} = $pos or 1 ) &&+    +                 ## <capture>+                 do{+                     my $hash = do {+                       my $bool = 1;+                       my $from = $pos;+                       my @match;+                       my %named;+                       $bool = 0 unless+                         ## <concat>+                         ## pos: 9350 9371+                         (+      +                           ## <group>+                           ## pos: 9350 9358+                            (   ( $pad{I2253} = $pos or 1 ) &&+                             ## <perl5>+                             ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )+                                 ? ( $pos += length( $1 ) or 1 )+                                 : 0+                             )+                             ## </perl5>+     ||    ( ( $pos = $pad{I2253} ) && 0 ) )+                           ## </group>+    +                         &&+      +                           ## <group>+                           ## pos: 9358 9371+                            (   ( $pad{I2254} = $pos or 1 ) &&+                             ## <named_capture>+                             ## pos: 9358 9370+                             do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                         $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'char_class'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                             ## </named_capture>+     ||    ( ( $pos = $pad{I2254} ) && 0 ) )+                           ## </group>+    +                         )+                         ## </concat>+    ;+                       { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                     };+                     my $bool = ${$hash->{'bool'}};+                     if ( $bool ) {+                         push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );+                     }+                     $bool;+                 }+                 ## </capture>+     ||    ( ( $pos = $pad{I2252} ) && 0 ) )) {}; $bool = 1 }+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 9382 9393+              (   ( $pad{I2255} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 9382 9384+               ( ( substr( $s, $pos, 1 ) eq '>' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2255} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 9393 9588+              (   ( $pad{I2256} = $pos or 1 ) &&+               ## <closure>+               ## pos: 9393 9587+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return {+                _pos => [ $_[0]->from - 2, $_[0]->to ],+                char_class => [+                    '-' . $_[0]->{qw(char_class)},+                    @{$_[0]->[0]},   # TODO - stringify+                ] }+            }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2256} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'<-'} = sub { term6($_[1], $_[0], $_[2], $_[3]) }; ++# token term7+*term7 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 9683 9954+           (+      +             ## <group>+             ## pos: 9683 9697+              (   ( $pad{I2257} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 9683 9695+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->char_range( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'char_range'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2257} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 9697 9708+              (   ( $pad{I2258} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 9697 9699+               ( ( substr( $s, $pos, 1 ) eq ']' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2258} ) && 0 ) )+             ## </group>+    +           &&+             ## <quant>+             ## pos: 9708 9741+             do { while (+              (   ( $pad{I2259} = $pos or 1 ) &&+    +                 ## <capture>+                 do{+                     my $hash = do {+                       my $bool = 1;+                       my $from = $pos;+                       my @match;+                       my %named;+                       $bool = 0 unless+                         ## <concat>+                         ## pos: 9709 9730+                         (+      +                           ## <group>+                           ## pos: 9709 9717+                            (   ( $pad{I2260} = $pos or 1 ) &&+                             ## <perl5>+                             ( ( substr( $s, $pos ) =~ m/^((?:(?=[+-]))\X)/ )+                                 ? ( $pos += length( $1 ) or 1 )+                                 : 0+                             )+                             ## </perl5>+     ||    ( ( $pos = $pad{I2260} ) && 0 ) )+                           ## </group>+    +                         &&+      +                           ## <group>+                           ## pos: 9717 9730+                            (   ( $pad{I2261} = $pos or 1 ) &&+                             ## <named_capture>+                             ## pos: 9717 9729+                             do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                         $grammar->char_class( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'char_class'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                             ## </named_capture>+     ||    ( ( $pos = $pad{I2261} ) && 0 ) )+                           ## </group>+    +                         )+                         ## </concat>+    ;+                       { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                     };+                     my $bool = ${$hash->{'bool'}};+                     if ( $bool ) {+                         push @{ $match[ 0 ] }, Pugs::Runtime::Match->new( $hash );+                     }+                     $bool;+                 }+                 ## </capture>+     ||    ( ( $pos = $pad{I2259} ) && 0 ) )) {}; $bool = 1 }+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 9741 9752+              (   ( $pad{I2262} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 9741 9743+               ( ( substr( $s, $pos, 1 ) eq '>' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2262} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 9752 9954+              (   ( $pad{I2263} = $pos or 1 ) &&+               ## <closure>+               ## pos: 9752 9953+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return {+                _pos => [ $_[0]->from - 2, $_[0]->to ],+                char_class => [+                    '+[' . $_[0]->{qw(char_range)} . ']',+                    @{$_[0]->[0]},   # TODO - stringify+                ] }+            }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2263} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'<['} = sub { term7($_[1], $_[0], $_[2], $_[3]) }; ++# token term8+*term8 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 10049 10108+           (+      +             ## <group>+             ## pos: 10049 10076+              (   ( $pad{I2264} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 10049 10067+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->parse_metasyntax( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'parse_metasyntax'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2264} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 10076 10108+              (   ( $pad{I2265} = $pos or 1 ) &&+               ## <closure>+               ## pos: 10076 10107+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return ${ $_[0]->{qw(parse_metasyntax)} } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2265} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'<'} = sub { term8($_[1], $_[0], $_[2], $_[3]) }; ++# token term9+*term9 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 10202 10392+           (+      +             ## <group>+             ## pos: 10202 10217+              (   ( $pad{I2266} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 10202 10215+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->parsed_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'parsed_code'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2266} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 10217 10228+              (   ( $pad{I2267} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 10217 10219+               ( ( substr( $s, $pos, 1 ) eq '}' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2267} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 10228 10392+              (   ( $pad{I2268} = $pos or 1 ) &&+               ## <closure>+               ## pos: 10228 10391+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { closure => {+                closure => ${ $_[0]->{qw(parsed_code)} },+                modifier => 'plain',+            },+                _pos => [$_[0]->from - 1, $_[0]->to],+            } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2268} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'{'} = sub { term9($_[1], $_[0], $_[2], $_[3]) }; ++# token term10+*term10 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 10487 10538+           (+      +             ## <group>+             ## pos: 10487 10510+              (   ( $pad{I2269} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 10487 10501+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->special_char( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'special_char'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2269} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 10510 10538+              (   ( $pad{I2270} = $pos or 1 ) &&+               ## <closure>+               ## pos: 10510 10537+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return ${ $_[0]->{qw(special_char)} } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2270} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'\\'} = sub { term10($_[1], $_[0], $_[2], $_[3]) }; ++# token term11+*term11 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 10635 10694+            (   ( $pad{I2271} = $pos or 1 ) &&+             ## <closure>+             ## pos: 10635 10693+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { 'dot' => 1, _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2271} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'.'} = sub { term11($_[1], $_[0], $_[2], $_[3]) }; ++# token term12+*term12 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 10790 10828+           (+      +             ## <group>+             ## pos: 10790 10797+              (   ( $pad{I2272} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 10790 10796+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2272} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 10797 10808+              (   ( $pad{I2273} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 10797 10799+               ( ( substr( $s, $pos, 1 ) eq ']' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2273} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 10808 10828+              (   ( $pad{I2274} = $pos or 1 ) &&+               ## <closure>+               ## pos: 10808 10827+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return ${ $_[0]->{qw(rule)} } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2274} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'['} = sub { term12($_[1], $_[0], $_[2], $_[3]) }; ++# token term13+*term13 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 10916 10979+            (   ( $pad{I2275} = $pos or 1 ) &&+             ## <closure>+             ## pos: 10916 10978+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => ':::', _pos => [$_[0]->from - 3, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2275} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':::'} = sub { term13($_[1], $_[0], $_[2], $_[3]) }; ++# token term14+*term14 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 11069 11131+            (   ( $pad{I2276} = $pos or 1 ) &&+             ## <closure>+             ## pos: 11069 11130+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => ':?', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2276} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':?'} = sub { term14($_[1], $_[0], $_[2], $_[3]) }; ++# token term15+*term15 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 11220 11282+            (   ( $pad{I2277} = $pos or 1 ) &&+             ## <closure>+             ## pos: 11220 11281+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => ':+', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2277} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':+'} = sub { term15($_[1], $_[0], $_[2], $_[3]) }; ++# token term16+*term16 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 11371 11433+            (   ( $pad{I2278} = $pos or 1 ) &&+             ## <closure>+             ## pos: 11371 11432+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => '::', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2278} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'::'} = sub { term16($_[1], $_[0], $_[2], $_[3]) }; ++# token term17+*term17 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 11522 11583+            (   ( $pad{I2279} = $pos or 1 ) &&+             ## <closure>+             ## pos: 11522 11582+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => ':', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2279} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':'} = sub { term17($_[1], $_[0], $_[2], $_[3]) }; ++# token term18+*term18 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 11671 11733+            (   ( $pad{I2280} = $pos or 1 ) &&+             ## <closure>+             ## pos: 11671 11732+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => '$$', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2280} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'$$'} = sub { term18($_[1], $_[0], $_[2], $_[3]) }; ++# token term19+*term19 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 11822 11884+            (   ( $pad{I2281} = $pos or 1 ) &&+             ## <closure>+             ## pos: 11822 11883+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => '$', _pos => [$_[0]->from - 1, $_[0]->to],  } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2281} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'$'} = sub { term19($_[1], $_[0], $_[2], $_[3]) }; ++# token term20+*term20 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 11972 12034+            (   ( $pad{I2282} = $pos or 1 ) &&+             ## <closure>+             ## pos: 11972 12033+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => '^^', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2282} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'^^'} = sub { term20($_[1], $_[0], $_[2], $_[3]) }; ++# token term21+*term21 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 12123 12184+            (   ( $pad{I2283} = $pos or 1 ) &&+             ## <closure>+             ## pos: 12123 12183+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => '^', _pos => [$_[0]->from - 1, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2283} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'^'} = sub { term21($_[1], $_[0], $_[2], $_[3]) }; ++# token term22+*term22 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 12272 12334+            (   ( $pad{I2284} = $pos or 1 ) &&+             ## <closure>+             ## pos: 12272 12333+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => '>>', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2284} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'>>'} = sub { term22($_[1], $_[0], $_[2], $_[3]) }; ++# Code block from grammar spec+ $rule_terms{'»'} = sub { term22($_[1], $_[0], $_[2], $_[3]) }; ++# token term24+*term24 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+      +           ## <group>+           ## pos: 12576 12638+            (   ( $pad{I2285} = $pos or 1 ) &&+             ## <closure>+             ## pos: 12576 12637+             do {+               local $::_V6_SUCCEED = 1;+               $::_V6_MATCH_ = $m;+               $m->data->{capture} = \( sub { return { colon => '<<', _pos => [$_[0]->from - 2, $_[0]->to], } }->( $m ) ); +               $bool = $::_V6_SUCCEED;+               $::_V6_MATCH_ = $m if $bool; +               return $m if $bool; +             }+             ## </closure>+     ||    ( ( $pos = $pad{I2285} ) && 0 ) )+           ## </group>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{'<<'} = sub { term24($_[1], $_[0], $_[2], $_[3]) }; ++# Code block from grammar spec+ $rule_terms{'«'} = sub { term24($_[1], $_[0], $_[2], $_[3]) }; ++# token term26+*term26 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 12888 13065+           (+      +             ## <group>+             ## pos: 12888 12894+              (   ( $pad{I2286} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 12888 12893+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2286} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 12894 12909+              (   ( $pad{I2287} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 12894 12900+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2287} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 12909 13065+              (   ( $pad{I2288} = $pos or 1 ) &&+               ## <closure>+               ## pos: 12909 13064+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return {+                modifier => {+                    modifier => 'ignorecase',+                    rule => ${ $_[0]->{qw(rule)} },+                    }+                },+            }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2288} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':i'} = sub { term26($_[1], $_[0], $_[2], $_[3]) }; ++# Code block from grammar spec+ $rule_terms{':ignorecase'} = sub { term26($_[1], $_[0], $_[2], $_[3]) }; ++# token term28+*term28 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 13345 13422+           (+      +             ## <group>+             ## pos: 13345 13351+              (   ( $pad{I2289} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 13345 13350+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2289} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 13351 13366+              (   ( $pad{I2290} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 13351 13357+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2290} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 13366 13422+              (   ( $pad{I2291} = $pos or 1 ) &&+               ## <closure>+               ## pos: 13366 13421+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { modifier => 'sigspace', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2291} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':s'} = sub { term28($_[1], $_[0], $_[2], $_[3]) }; ++# Code block from grammar spec+ $rule_terms{':sigspace'} = sub { term28($_[1], $_[0], $_[2], $_[3]) }; ++# token term30+*term30 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 13701 13775+           (+      +             ## <group>+             ## pos: 13701 13707+              (   ( $pad{I2292} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 13701 13706+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2292} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 13707 13722+              (   ( $pad{I2293} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 13707 13713+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2293} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 13722 13775+              (   ( $pad{I2294} = $pos or 1 ) &&+               ## <closure>+               ## pos: 13722 13774+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { modifier => 'Perl5', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2294} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':P5'} = sub { term30($_[1], $_[0], $_[2], $_[3]) }; ++# Code block from grammar spec+ $rule_terms{':Perl5'} = sub { term30($_[1], $_[0], $_[2], $_[3]) }; ++# token term32+*term32 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 14048 14122+           (+      +             ## <group>+             ## pos: 14048 14054+              (   ( $pad{I2295} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 14048 14053+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2295} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 14054 14069+              (   ( $pad{I2296} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 14054 14060+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2296} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 14069 14122+              (   ( $pad{I2297} = $pos or 1 ) &&+               ## <closure>+               ## pos: 14069 14121+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { modifier => 'bytes', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2297} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':bytes'} = sub { term32($_[1], $_[0], $_[2], $_[3]) }; ++# token term33+*term33 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 14223 14297+           (+      +             ## <group>+             ## pos: 14223 14229+              (   ( $pad{I2298} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 14223 14228+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2298} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 14229 14244+              (   ( $pad{I2299} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 14229 14235+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2299} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 14244 14297+              (   ( $pad{I2300} = $pos or 1 ) &&+               ## <closure>+               ## pos: 14244 14296+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { modifier => 'codes', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2300} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':codes'} = sub { term33($_[1], $_[0], $_[2], $_[3]) }; ++# token term34+*term34 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 14398 14473+           (+      +             ## <group>+             ## pos: 14398 14404+              (   ( $pad{I2301} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 14398 14403+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2301} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 14404 14419+              (   ( $pad{I2302} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 14404 14410+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2302} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 14419 14473+              (   ( $pad{I2303} = $pos or 1 ) &&+               ## <closure>+               ## pos: 14419 14472+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { modifier => 'graphs', rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2303} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':graphs'} = sub { term34($_[1], $_[0], $_[2], $_[3]) }; ++# token term35+*term35 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 14575 14650+           (+      +             ## <group>+             ## pos: 14575 14581+              (   ( $pad{I2304} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 14575 14580+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2304} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 14581 14596+              (   ( $pad{I2305} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 14581 14587+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2305} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 14596 14650+              (   ( $pad{I2306} = $pos or 1 ) &&+               ## <closure>+               ## pos: 14596 14649+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { modifier => 'langs',  rule => ${ $_[0]->{qw(rule)} } } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2306} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# Code block from grammar spec+ $rule_terms{':langs'} = sub { term35($_[1], $_[0], $_[2], $_[3]) }; ++# token term+*term =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 14745 15547+           (+               ( $pad{I2307} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 14746 15224+               (+      +                 ## <group>+                 ## pos: 14746 14789+                  (   ( $pad{I2308} = $pos or 1 ) &&+                  ## <metasyntax>+                   ## pos: 14748 14781+                   do{+                    my $match = +              ## <variable>+              ## pos: 14748 14781+              do {+                our $I2309;+                our $I2309_sizes;+                unless ( $I2309 ) {+                    my $hash = \%Pugs::Grammar::Rule::variables;+                    my %sizes = map { length($_) => 1 } keys %$hash;+                    $I2309_sizes = [ sort { $b <=> $a } keys %sizes ];+                    $I2309 = $hash;+                }+                my $match = 0;+                my $key;+                for ( @$I2309_sizes ) {+                    $key = ( $pos <= length( $s )+                                ? substr( $s, $pos, $_ )+                                : '' );+                    if ( exists $I2309->{$key} ) {+                        #$named{KEY} = $key;+                        #$::_V6_MATCH_ = $m;+                        #print "m: ", Dumper( $::_V6_MATCH_->data )+                        #    if ( $key eq 'until' );+                        $match = Pugs::Runtime::Regex::preprocess_hash( $I2309, $key )->( $s, $grammar, { p => ( $pos + $_ ), positionals => [ ], args => { KEY => $key } }, undef );+                        last if $match;+                    }+                }+                if ( $match ) {+                    $pos = $match->to;+                    #print "match: $key at $pos = ", Dumper( $match->data );+                    $bool = 1;+                }; # else { $bool = 0 }+                $match;+              }+              ## </variable>+    ;+                    if ( $match ) { $named{'Pugs::Grammar::Rule::variables'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                  ## </metasyntax>+     ||    ( ( $pos = $pad{I2308} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 14789 15224+                  (   ( $pad{I2310} = $pos or 1 ) &&+                   ## <alt>+                   ## pos: 14790 15218+                   (+                       ( $pad{I2311} = $pos or 1 )+                       && (+                       ## <concat>+                       ## pos: 14790 15131+                       (+                         ## <quant>+                         ## pos: 14790 14799+                         (+                          (   ( $pad{I2312} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 14792 14797+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2312} ) && 0 ) )+                         || ( $bool = 1 )+                         )+                         ## </quant>+    +                       &&+      +                         ## <group>+                         ## pos: 14799 14804+                          (   ( $pad{I2313} = $pos or 1 ) &&+    +                           ## <constant>+                           ## pos: 14799 14803+                           ( ( substr( $s, $pos, 2 ) eq ':=' )+                               ? ( $pos += 2 or 1 )+                               : 0+                           )+                           ## </constant>+     ||    ( ( $pos = $pad{I2313} ) && 0 ) )+                         ## </group>+    +                       &&+                         ## <quant>+                         ## pos: 14804 14811+                         (+                          (   ( $pad{I2314} = $pos or 1 ) &&+                             ## <metasyntax>+                             ## pos: 14804 14809+                             do {+                                  my $prior = $::_V6_PRIOR_;+                                  my $match =+                                         $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                  $::_V6_PRIOR_ = $prior;+                                  my $bool = (!$match != 1);+                                  $pos = $match->to if $bool;+                                  $match;+                             }+                             ## </metasyntax>+     ||    ( ( $pos = $pad{I2314} ) && 0 ) )+                         || ( $bool = 1 )+                         )+                         ## </quant>+    +                       &&+      +                         ## <group>+                         ## pos: 14811 14842+                          (   ( $pad{I2315} = $pos or 1 ) &&+                           ## <named_capture>+                           ## pos: 14811 14831+                           do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                       $grammar->named_capture_body( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'named_capture_body'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                           ## </named_capture>+     ||    ( ( $pos = $pad{I2315} ) && 0 ) )+                         ## </group>+    +                       &&+      +                         ## <group>+                         ## pos: 14842 15131+                          (   ( $pad{I2316} = $pos or 1 ) &&+                           ## <closure>+                           ## pos: 14842 15123+                           do {+                             local $::_V6_SUCCEED = 1;+                             $::_V6_MATCH_ = $m;+                             $m->data->{capture} = \( sub {+                return { named_capture => {+                            rule =>  ${ $_[0]->{qw(named_capture_body)} },+                            ident => ${ $_[0]->{qw(Pugs::Grammar::Rule::variables)} },+                         },+                            _pos => [ $_[0]->from, $_[0]->to ],+                         };+              }->( $m ) ); +                             $bool = $::_V6_SUCCEED;+                             $::_V6_MATCH_ = $m if $bool; +                             return $m if $bool; +                           }+                           ## </closure>+     ||    ( ( $pos = $pad{I2316} ) && 0 ) )+                         ## </group>+    +                       )+                       ## </concat>+    +                       )+                     || (+                       ( ( $bool = 1 ) && ( $pos = $pad{I2311} ) or 1 )+                       &&   +                       ## <group>+                       ## pos: 15132 15218+                        (   ( $pad{I2317} = $pos or 1 ) &&+                         ## <closure>+                         ## pos: 15143 15210+                         do {+                           local $::_V6_SUCCEED = 1;+                           $::_V6_MATCH_ = $m;+                           $m->data->{capture} = \( sub {+                return ${ $_[0]->{qw(Pugs::Grammar::Rule::variables)} }+              }->( $m ) ); +                           $bool = $::_V6_SUCCEED;+                           $::_V6_MATCH_ = $m if $bool; +                           return $m if $bool; +                         }+                         ## </closure>+     ||    ( ( $pos = $pad{I2317} ) && 0 ) )+                       ## </group>+    +                     )+                   )+                   ## </alt>+     ||    ( ( $pos = $pad{I2310} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2307} ) or 1 )+               &&            ## <concat>+               ## pos: 15225 15393+               (+      +                 ## <group>+                 ## pos: 15225 15270+                  (   ( $pad{I2318} = $pos or 1 ) &&+                  ## <metasyntax>+                   ## pos: 15227 15261+                   do{+                    my $match = +              ## <variable>+              ## pos: 15227 15261+              do {+                our $I2319;+                our $I2319_sizes;+                unless ( $I2319 ) {+                    my $hash = \%Pugs::Grammar::Rule::rule_terms;+                    my %sizes = map { length($_) => 1 } keys %$hash;+                    $I2319_sizes = [ sort { $b <=> $a } keys %sizes ];+                    $I2319 = $hash;+                }+                my $match = 0;+                my $key;+                for ( @$I2319_sizes ) {+                    $key = ( $pos <= length( $s )+                                ? substr( $s, $pos, $_ )+                                : '' );+                    if ( exists $I2319->{$key} ) {+                        #$named{KEY} = $key;+                        #$::_V6_MATCH_ = $m;+                        #print "m: ", Dumper( $::_V6_MATCH_->data )+                        #    if ( $key eq 'until' );+                        $match = Pugs::Runtime::Regex::preprocess_hash( $I2319, $key )->( $s, $grammar, { p => ( $pos + $_ ), positionals => [ ], args => { KEY => $key } }, undef );+                        last if $match;+                    }+                }+                if ( $match ) {+                    $pos = $match->to;+                    #print "match: $key at $pos = ", Dumper( $match->data );+                    $bool = 1;+                }; # else { $bool = 0 }+                $match;+              }+              ## </variable>+    ;+                    if ( $match ) { $named{'Pugs::Grammar::Rule::rule_terms'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                  ## </metasyntax>+     ||    ( ( $pos = $pad{I2318} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 15270 15393+                  (   ( $pad{I2320} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 15270 15388+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub {+                #print "term: ", Dumper( $_[0]->data );+                return ${ $_[0]->{qw(Pugs::Grammar::Rule::rule_terms)} }+            }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2320} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2307} ) or 1 )+               &&            ## <concat>+               ## pos: 15394 15547+               (+      +                 ## <group>+                 ## pos: 15394 15441+                  (   ( $pad{I2321} = $pos or 1 ) &&+                   ## <perl5>+                   ( ( substr( $s, $pos ) =~ m/^((?:(?![\]\}\)\>\:\?\+\*\|\&]))\X)/ )+                       ? ( $pos += length( $1 ) or 1 )+                       : 0+                   )+                   ## </perl5>+     ||    ( ( $pos = $pad{I2321} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 15441 15547+                  (   ( $pad{I2322} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 15441 15546+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub {+                return { 'constant' => ${$_[0]},+                         _pos => [ $_[0]->from, $_[0]->to ] }+            }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2322} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token quant+*quant =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 15568 15682+           (+               ( $pad{I2323} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 15569 15660+               (+      +                 ## <group>+                 ## pos: 15569 15577+                  (   ( $pad{I2324} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 15572 15576+                   ( ( substr( $s, $pos, 2 ) eq '**' )+                       ? ( $pos += 2 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2324} ) && 0 ) )+                 ## </group>+    +               &&+                 ## <quant>+                 ## pos: 15577 15584+                 (+                  (   ( $pad{I2325} = $pos or 1 ) &&+                     ## <metasyntax>+                     ## pos: 15577 15582+                     do {+                          my $prior = $::_V6_PRIOR_;+                          my $match =+                                 $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                          $::_V6_PRIOR_ = $prior;+                          my $bool = (!$match != 1);+                          $pos = $match->to if $bool;+                          $match;+                     }+                     ## </metasyntax>+     ||    ( ( $pos = $pad{I2325} ) && 0 ) )+                 || ( $bool = 1 )+                 )+                 ## </quant>+    +               &&+      +                 ## <group>+                 ## pos: 15584 15588+                  (   ( $pad{I2326} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 15584 15586+                   ( ( substr( $s, $pos, 1 ) eq '{' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2326} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 15588 15603+                  (   ( $pad{I2327} = $pos or 1 ) &&+                   ## <named_capture>+                   ## pos: 15588 15601+                   do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                               $grammar->parsed_code( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'parsed_code'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                   ## </named_capture>+     ||    ( ( $pos = $pad{I2327} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 15603 15614+                  (   ( $pad{I2328} = $pos or 1 ) &&+    +                   ## <constant>+                   ## pos: 15603 15605+                   ( ( substr( $s, $pos, 1 ) eq '}' )+                       ? ( $pos += 1 or 1 )+                       : 0+                   )+                   ## </constant>+     ||    ( ( $pos = $pad{I2328} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 15614 15660+                  (   ( $pad{I2329} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 15614 15655+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return { closure => ${ $_[0]->{qw(parsed_code)} } } }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2329} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2323} ) or 1 )+               &&            ## <quant>+               ## pos: 15661 15682+               (+                (   ( $pad{I2330} = $pos or 1 ) &&+                   ## <perl5>+                   ( ( substr( $s, $pos ) =~ m/^((?:(?=[\?\*\+]))\X)/ )+                       ? ( $pos += length( $1 ) or 1 )+                       : 0+                   )+                   ## </perl5>+     ||    ( ( $pos = $pad{I2330} ) && 0 ) )+               || ( $bool = 1 )+               )+               ## </quant>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token quantifier+*quantifier =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 15708 16474+           (+      +             ## <group>+             ## pos: 15708 15733+              (   ( $pad{I2331} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 15708 15728+               do{+                    my $match = Pugs::Runtime::Match->new( do {+                        my $bool = 1;+                        my $from = $pos;+                        my @match;+                        my %named;+                        $bool = 0 unless +                       ## <capture>+                       do{+                           my $hash = do {+                             my $bool = 1;+                             my $from = $pos;+                             my @match;+                             my %named;+                             $bool = 0 unless+                               ## <quant>+                               ## pos: 15721 15727+                               (+                                (   ( $pad{I2332} = $pos or 1 ) &&+                                   ## <metasyntax>+                                   ## pos: 15721 15726+                                   do {+                                        my $prior = $::_V6_PRIOR_;+                                        my $match =+                                               $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                        $::_V6_PRIOR_ = $prior;+                                        my $bool = (!$match != 1);+                                        $pos = $match->to if $bool;+                                        $match;+                                   }+                                   ## </metasyntax>+     ||    ( ( $pos = $pad{I2332} ) && 0 ) )+                               || ( $bool = 1 )+                               )+                               ## </quant>+    ;+                             { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                           };+                           my $bool = ${$hash->{'bool'}};+                           $match[ 0 ] = Pugs::Runtime::Match->new( $hash );+                           $bool;+                       }+                       ## </capture>+    ;+                        { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                    } );+                    if ( $match ) { $named{'ws1'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2331} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 15733 15768+              (   ( $pad{I2333} = $pos or 1 ) &&+               ## <negate>+               ## pos: 15733 15763+               do{+                   my $pos1 = $pos;+                   do {+                     my $pos = $pos1;+                     my $from = $pos;+                     my @match;+                     my %named;+                     $bool = +                         ## <before>+                         ## pos: 15743 15762+                         do{+                             my $pos1 = $pos;+                             do {+                               my $pos = $pos1;+                               my $from = $pos;+                               my @match;+                               my %named;+                               $bool = 0 unless+      +                                   ## <group>+                                   ## pos: 15743 15762+                                    (   ( $pad{I2334} = $pos or 1 ) &&+                                     ## <perl5>+                                     ( ( substr( $s, $pos ) =~ m/^((?:(?=[\}\]\)]))\X)/ )+                                         ? ( $pos += length( $1 ) or 1 )+                                         : 0+                                     )+                                     ## </perl5>+     ||    ( ( $pos = $pad{I2334} ) && 0 ) )+                                   ## </group>+    ;+                               $bool;+                             };+                         }+                         ## </before>+     ? 0 : 1;+                     $bool;+                   };+               }+               ## </negate>+     ||    ( ( $pos = $pad{I2333} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 15768 15779+              (   ( $pad{I2335} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 15768 15774+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->term( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'term'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2335} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 15779 15804+              (   ( $pad{I2336} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 15779 15799+               do{+                    my $match = Pugs::Runtime::Match->new( do {+                        my $bool = 1;+                        my $from = $pos;+                        my @match;+                        my %named;+                        $bool = 0 unless +                       ## <capture>+                       do{+                           my $hash = do {+                             my $bool = 1;+                             my $from = $pos;+                             my @match;+                             my %named;+                             $bool = 0 unless+                               ## <quant>+                               ## pos: 15792 15798+                               (+                                (   ( $pad{I2337} = $pos or 1 ) &&+                                   ## <metasyntax>+                                   ## pos: 15792 15797+                                   do {+                                        my $prior = $::_V6_PRIOR_;+                                        my $match =+                                               $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                        $::_V6_PRIOR_ = $prior;+                                        my $bool = (!$match != 1);+                                        $pos = $match->to if $bool;+                                        $match;+                                   }+                                   ## </metasyntax>+     ||    ( ( $pos = $pad{I2337} ) && 0 ) )+                               || ( $bool = 1 )+                               )+                               ## </quant>+    ;+                             { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                           };+                           my $bool = ${$hash->{'bool'}};+                           $match[ 0 ] = Pugs::Runtime::Match->new( $hash );+                           $bool;+                       }+                       ## </capture>+    ;+                        { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                    } );+                    if ( $match ) { $named{'ws2'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2336} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 15804 15816+              (   ( $pad{I2338} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 15804 15811+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->quant( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'quant'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2338} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 15816 15850+              (   ( $pad{I2339} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 15816 15845+               do{+                    my $match = Pugs::Runtime::Match->new( do {+                        my $bool = 1;+                        my $from = $pos;+                        my @match;+                        my %named;+                        $bool = 0 unless +                       ## <capture>+                       do{+                           my $hash = do {+                             my $bool = 1;+                             my $from = $pos;+                             my @match;+                             my %named;+                             $bool = 0 unless+                               ## <quant>+                               ## pos: 15830 15844+                               (+                                (   ( $pad{I2340} = $pos or 1 ) &&+                                   ## <perl5>+                                   ( ( substr( $s, $pos ) =~ m/^((?:(?=[\?\+]))\X)/ )+                                       ? ( $pos += length( $1 ) or 1 )+                                       : 0+                                   )+                                   ## </perl5>+     ||    ( ( $pos = $pad{I2340} ) && 0 ) )+                               || ( $bool = 1 )+                               )+                               ## </quant>+    ;+                             { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                           };+                           my $bool = ${$hash->{'bool'}};+                           $match[ 0 ] = Pugs::Runtime::Match->new( $hash );+                           $bool;+                       }+                       ## </capture>+    ;+                        { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                    } );+                    if ( $match ) { $named{'greedy'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2339} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 15850 15875+              (   ( $pad{I2341} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 15850 15870+               do{+                    my $match = Pugs::Runtime::Match->new( do {+                        my $bool = 1;+                        my $from = $pos;+                        my @match;+                        my %named;+                        $bool = 0 unless +                       ## <capture>+                       do{+                           my $hash = do {+                             my $bool = 1;+                             my $from = $pos;+                             my @match;+                             my %named;+                             $bool = 0 unless+                               ## <quant>+                               ## pos: 15863 15869+                               (+                                (   ( $pad{I2342} = $pos or 1 ) &&+                                   ## <metasyntax>+                                   ## pos: 15863 15868+                                   do {+                                        my $prior = $::_V6_PRIOR_;+                                        my $match =+                                               $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                                        $::_V6_PRIOR_ = $prior;+                                        my $bool = (!$match != 1);+                                        $pos = $match->to if $bool;+                                        $match;+                                   }+                                   ## </metasyntax>+     ||    ( ( $pos = $pad{I2342} ) && 0 ) )+                               || ( $bool = 1 )+                               )+                               ## </quant>+    ;+                             { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                           };+                           my $bool = ${$hash->{'bool'}};+                           $match[ 0 ] = Pugs::Runtime::Match->new( $hash );+                           $bool;+                       }+                       ## </capture>+    ;+                        { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                    } );+                    if ( $match ) { $named{'ws3'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2341} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 15875 16474+              (   ( $pad{I2343} = $pos or 1 ) &&+               ## <closure>+               ## pos: 15875 16473+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub {+          if (+                   ${$_[0]->{'quant'}}  eq ''+                && ${$_[0]->{'greedy'}} eq ''+                && ${$_[0]->{'ws1'}}    eq ''+                && ${$_[0]->{'ws2'}}    eq ''+                && ${$_[0]->{'ws3'}}    eq ''+          ) {+              return ${$_[0]->{'term'}};+          }+          return {+            quant => {+                    term    => ${$_[0]->{'term'}},+                    quant   => ${$_[0]->{'quant'}},+                    greedy  => ${$_[0]->{'greedy'}},+                    ws1     => ${$_[0]->{'ws1'}},+                    ws2     => ${$_[0]->{'ws2'}},+                    ws3     => ${$_[0]->{'ws3'}},+                },+            _pos => [$_[0]->from, $_[0]->to],+          }+        }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2343} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token concat+*concat =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 16496 16705+           (+             ## <quant>+             ## pos: 16496 16514+             (+              (   ( $pad{I2344} = $pos or 1 ) &&+                 ## <named_capture>+                 ## pos: 16496 16508+                 do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                             $grammar->quantifier( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'quantifier'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                 ## </named_capture>+     ||    ( ( $pos = $pad{I2344} ) && 0 ) )+             && do { while (+              (   ( $pad{I2344} = $pos or 1 ) &&+                 ## <named_capture>+                 ## pos: 16496 16508+                 do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                             $grammar->quantifier( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'quantifier'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                 ## </named_capture>+     ||    ( ( $pos = $pad{I2344} ) && 0 ) )) {}; $bool = 1 }+             )+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 16514 16705+              (   ( $pad{I2345} = $pos or 1 ) &&+               ## <closure>+               ## pos: 16514 16704+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub {+            my @a = map {  $_->()  }  @{ $::_V6_MATCH_->{'quantifier'} };+            return { concat => \@a, _pos => [$_[0]->from, $_[0]->to] }+                if scalar @a > 1;+            return $a[0];+        }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2345} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token conjunctive1+*conjunctive1 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 16733 17013+           (+             ## <quant>+             ## pos: 16733 16767+             (+              (   ( $pad{I2346} = $pos or 1 ) &&+                 ## <concat>+                 ## pos: 16734 16759+                 (+                   ## <quant>+                   ## pos: 16734 16742+                   (+                    (   ( $pad{I2347} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 16735 16740+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2347} ) && 0 ) )+                   || ( $bool = 1 )+                   )+                   ## </quant>+    +                 &&+      +                   ## <group>+                   ## pos: 16742 16745+                    (   ( $pad{I2348} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 16742 16744+                     ( ( substr( $s, $pos, 1 ) eq '&' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2348} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 16745 16759+                    (   ( $pad{I2349} = $pos or 1 ) &&+                     ## <negate>+                     ## pos: 16745 16758+                     do{+                         my $pos1 = $pos;+                         do {+                           my $pos = $pos1;+                           my $from = $pos;+                           my @match;+                           my %named;+                           $bool = +                               ## <before>+                               ## pos: 16754 16757+                               do{+                                   my $pos1 = $pos;+                                   do {+                                     my $pos = $pos1;+                                     my $from = $pos;+                                     my @match;+                                     my %named;+                                     $bool = 0 unless+      +                                         ## <group>+                                         ## pos: 16754 16757+                                          (   ( $pad{I2350} = $pos or 1 ) &&+    +                                           ## <constant>+                                           ## pos: 16754 16756+                                           ( ( substr( $s, $pos, 1 ) eq '&' )+                                               ? ( $pos += 1 or 1 )+                                               : 0+                                           )+                                           ## </constant>+     ||    ( ( $pos = $pad{I2350} ) && 0 ) )+                                         ## </group>+    ;+                                     $bool;+                                   };+                               }+                               ## </before>+     ? 0 : 1;+                           $bool;+                         };+                     }+                     ## </negate>+     ||    ( ( $pos = $pad{I2349} ) && 0 ) )+                   ## </group>+    +                 )+                 ## </concat>+     ||    ( ( $pos = $pad{I2346} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 16767 16785+             (+              (   ( $pad{I2351} = $pos or 1 ) &&+                 ## <named_capture>+                 ## pos: 16767 16775+                 do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                             $grammar->concat( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'concat'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                 ## </named_capture>+     ||    ( ( $pos = $pad{I2351} ) && 0 ) )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 16785 16834+             do { while (+              (   ( $pad{I2352} = $pos or 1 ) &&+                 ## <concat>+                 ## pos: 16786 16826+                 (+      +                   ## <group>+                   ## pos: 16786 16798+                    (   ( $pad{I2353} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 16795 16797+                     ( ( substr( $s, $pos, 1 ) eq '&' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2353} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 16798 16813+                    (   ( $pad{I2354} = $pos or 1 ) &&+                     ## <negate>+                     ## pos: 16798 16811+                     do{+                         my $pos1 = $pos;+                         do {+                           my $pos = $pos1;+                           my $from = $pos;+                           my @match;+                           my %named;+                           $bool = +                               ## <before>+                               ## pos: 16807 16810+                               do{+                                   my $pos1 = $pos;+                                   do {+                                     my $pos = $pos1;+                                     my $from = $pos;+                                     my @match;+                                     my %named;+                                     $bool = 0 unless+      +                                         ## <group>+                                         ## pos: 16807 16810+                                          (   ( $pad{I2355} = $pos or 1 ) &&+    +                                           ## <constant>+                                           ## pos: 16807 16809+                                           ( ( substr( $s, $pos, 1 ) eq '&' )+                                               ? ( $pos += 1 or 1 )+                                               : 0+                                           )+                                           ## </constant>+     ||    ( ( $pos = $pad{I2355} ) && 0 ) )+                                         ## </group>+    ;+                                     $bool;+                                   };+                               }+                               ## </before>+     ? 0 : 1;+                           $bool;+                         };+                     }+                     ## </negate>+     ||    ( ( $pos = $pad{I2354} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 16813 16826+                    (   ( $pad{I2356} = $pos or 1 ) &&+                     ## <named_capture>+                     ## pos: 16813 16821+                     do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                 $grammar->concat( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'concat'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                     ## </named_capture>+     ||    ( ( $pos = $pad{I2356} ) && 0 ) )+                   ## </group>+    +                 )+                 ## </concat>+     ||    ( ( $pos = $pad{I2352} ) && 0 ) )) {}; $bool = 1 }+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 16834 17013+              (   ( $pad{I2357} = $pos or 1 ) &&+               ## <closure>+               ## pos: 16834 17012+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub {+            my @a = map {  $$_  }  @{ $::_V6_MATCH_->{'concat'} };+            return { conjunctive1 => \@a, _pos => [$_[0]->from, $_[0]->to] }  if scalar @a > 1;+            return $a[0];+        }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2357} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token disjunctive1+*disjunctive1 =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 17041 17330+           (+             ## <quant>+             ## pos: 17041 17075+             (+              (   ( $pad{I2358} = $pos or 1 ) &&+                 ## <concat>+                 ## pos: 17042 17067+                 (+                   ## <quant>+                   ## pos: 17042 17050+                   (+                    (   ( $pad{I2359} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 17043 17048+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2359} ) && 0 ) )+                   || ( $bool = 1 )+                   )+                   ## </quant>+    +                 &&+      +                   ## <group>+                   ## pos: 17050 17053+                    (   ( $pad{I2360} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17050 17052+                     ( ( substr( $s, $pos, 1 ) eq '|' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2360} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 17053 17067+                    (   ( $pad{I2361} = $pos or 1 ) &&+                     ## <negate>+                     ## pos: 17053 17066+                     do{+                         my $pos1 = $pos;+                         do {+                           my $pos = $pos1;+                           my $from = $pos;+                           my @match;+                           my %named;+                           $bool = +                               ## <before>+                               ## pos: 17062 17065+                               do{+                                   my $pos1 = $pos;+                                   do {+                                     my $pos = $pos1;+                                     my $from = $pos;+                                     my @match;+                                     my %named;+                                     $bool = 0 unless+      +                                         ## <group>+                                         ## pos: 17062 17065+                                          (   ( $pad{I2362} = $pos or 1 ) &&+    +                                           ## <constant>+                                           ## pos: 17062 17064+                                           ( ( substr( $s, $pos, 1 ) eq '|' )+                                               ? ( $pos += 1 or 1 )+                                               : 0+                                           )+                                           ## </constant>+     ||    ( ( $pos = $pad{I2362} ) && 0 ) )+                                         ## </group>+    ;+                                     $bool;+                                   };+                               }+                               ## </before>+     ? 0 : 1;+                           $bool;+                         };+                     }+                     ## </negate>+     ||    ( ( $pos = $pad{I2361} ) && 0 ) )+                   ## </group>+    +                 )+                 ## </concat>+     ||    ( ( $pos = $pad{I2358} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 17075 17099+             (+              (   ( $pad{I2363} = $pos or 1 ) &&+                 ## <named_capture>+                 ## pos: 17075 17089+                 do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                             $grammar->conjunctive1( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'conjunctive1'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                 ## </named_capture>+     ||    ( ( $pos = $pad{I2363} ) && 0 ) )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 17099 17153+             do { while (+              (   ( $pad{I2364} = $pos or 1 ) &&+                 ## <concat>+                 ## pos: 17100 17145+                 (+      +                   ## <group>+                   ## pos: 17100 17112+                    (   ( $pad{I2365} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17109 17111+                     ( ( substr( $s, $pos, 1 ) eq '|' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2365} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 17112 17126+                    (   ( $pad{I2366} = $pos or 1 ) &&+                     ## <negate>+                     ## pos: 17112 17125+                     do{+                         my $pos1 = $pos;+                         do {+                           my $pos = $pos1;+                           my $from = $pos;+                           my @match;+                           my %named;+                           $bool = +                               ## <before>+                               ## pos: 17121 17124+                               do{+                                   my $pos1 = $pos;+                                   do {+                                     my $pos = $pos1;+                                     my $from = $pos;+                                     my @match;+                                     my %named;+                                     $bool = 0 unless+      +                                         ## <group>+                                         ## pos: 17121 17124+                                          (   ( $pad{I2367} = $pos or 1 ) &&+    +                                           ## <constant>+                                           ## pos: 17121 17123+                                           ( ( substr( $s, $pos, 1 ) eq '|' )+                                               ? ( $pos += 1 or 1 )+                                               : 0+                                           )+                                           ## </constant>+     ||    ( ( $pos = $pad{I2367} ) && 0 ) )+                                         ## </group>+    ;+                                     $bool;+                                   };+                               }+                               ## </before>+     ? 0 : 1;+                           $bool;+                         };+                     }+                     ## </negate>+     ||    ( ( $pos = $pad{I2366} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 17126 17145+                    (   ( $pad{I2368} = $pos or 1 ) &&+                     ## <named_capture>+                     ## pos: 17126 17140+                     do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                 $grammar->conjunctive1( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'conjunctive1'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                     ## </named_capture>+     ||    ( ( $pos = $pad{I2368} ) && 0 ) )+                   ## </group>+    +                 )+                 ## </concat>+     ||    ( ( $pos = $pad{I2364} ) && 0 ) )) {}; $bool = 1 }+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 17153 17330+              (   ( $pad{I2369} = $pos or 1 ) &&+               ## <closure>+               ## pos: 17153 17329+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub {+            my @a = map {  $$_  }  @{ $::_V6_MATCH_->{'conjunctive1'} };+            return { alt1 => \@a, _pos => [$_[0]->from, $_[0]->to] }  if scalar @a > 1;+            return $a[0];+        }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2369} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token conjunctive+*conjunctive =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 17357 17631+           (+             ## <quant>+             ## pos: 17357 17380+             (+              (   ( $pad{I2370} = $pos or 1 ) &&+                 ## <concat>+                 ## pos: 17358 17372+                 (+                   ## <quant>+                   ## pos: 17358 17366+                   (+                    (   ( $pad{I2371} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 17359 17364+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2371} ) && 0 ) )+                   || ( $bool = 1 )+                   )+                   ## </quant>+    +                 &&+      +                   ## <group>+                   ## pos: 17366 17369+                    (   ( $pad{I2372} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17366 17368+                     ( ( substr( $s, $pos, 1 ) eq '&' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2372} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 17369 17372+                    (   ( $pad{I2373} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17369 17371+                     ( ( substr( $s, $pos, 1 ) eq '&' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2373} ) && 0 ) )+                   ## </group>+    +                 )+                 ## </concat>+     ||    ( ( $pos = $pad{I2370} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 17380 17404+             (+              (   ( $pad{I2374} = $pos or 1 ) &&+                 ## <named_capture>+                 ## pos: 17380 17394+                 do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                             $grammar->disjunctive1( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'disjunctive1'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                 ## </named_capture>+     ||    ( ( $pos = $pad{I2374} ) && 0 ) )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 17404 17447+             do { while (+              (   ( $pad{I2375} = $pos or 1 ) &&+                 ## <concat>+                 ## pos: 17405 17439+                 (+      +                   ## <group>+                   ## pos: 17405 17417+                    (   ( $pad{I2376} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17414 17416+                     ( ( substr( $s, $pos, 1 ) eq '&' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2376} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 17417 17420+                    (   ( $pad{I2377} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17417 17419+                     ( ( substr( $s, $pos, 1 ) eq '&' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2377} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 17420 17439+                    (   ( $pad{I2378} = $pos or 1 ) &&+                     ## <named_capture>+                     ## pos: 17420 17434+                     do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                 $grammar->disjunctive1( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'disjunctive1'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                     ## </named_capture>+     ||    ( ( $pos = $pad{I2378} ) && 0 ) )+                   ## </group>+    +                 )+                 ## </concat>+     ||    ( ( $pos = $pad{I2375} ) && 0 ) )) {}; $bool = 1 }+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 17447 17631+              (   ( $pad{I2379} = $pos or 1 ) &&+               ## <closure>+               ## pos: 17447 17630+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub {+            my @a = map {  $$_  }  @{ $::_V6_MATCH_->{'disjunctive1'} };+            return { conjunctive => \@a, _pos => [$_[0]->from, $_[0]->to] }  if scalar @a > 1;+            return $a[0];+        }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2379} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token rule+*rule =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 17651 17915+           (+             ## <quant>+             ## pos: 17651 17674+             (+              (   ( $pad{I2380} = $pos or 1 ) &&+                 ## <concat>+                 ## pos: 17652 17666+                 (+                   ## <quant>+                   ## pos: 17652 17660+                   (+                    (   ( $pad{I2381} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 17653 17658+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2381} ) && 0 ) )+                   || ( $bool = 1 )+                   )+                   ## </quant>+    +                 &&+      +                   ## <group>+                   ## pos: 17660 17663+                    (   ( $pad{I2382} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17660 17662+                     ( ( substr( $s, $pos, 1 ) eq '|' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2382} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 17663 17666+                    (   ( $pad{I2383} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17663 17665+                     ( ( substr( $s, $pos, 1 ) eq '|' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2383} ) && 0 ) )+                   ## </group>+    +                 )+                 ## </concat>+     ||    ( ( $pos = $pad{I2380} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 17674 17697+             (+              (   ( $pad{I2384} = $pos or 1 ) &&+                 ## <named_capture>+                 ## pos: 17674 17687+                 do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                             $grammar->conjunctive( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'conjunctive'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                 ## </named_capture>+     ||    ( ( $pos = $pad{I2384} ) && 0 ) )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 17697 17739+             do { while (+              (   ( $pad{I2385} = $pos or 1 ) &&+                 ## <concat>+                 ## pos: 17698 17731+                 (+      +                   ## <group>+                   ## pos: 17698 17710+                    (   ( $pad{I2386} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17707 17709+                     ( ( substr( $s, $pos, 1 ) eq '|' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2386} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 17710 17713+                    (   ( $pad{I2387} = $pos or 1 ) &&+    +                     ## <constant>+                     ## pos: 17710 17712+                     ( ( substr( $s, $pos, 1 ) eq '|' )+                         ? ( $pos += 1 or 1 )+                         : 0+                     )+                     ## </constant>+     ||    ( ( $pos = $pad{I2387} ) && 0 ) )+                   ## </group>+    +                 &&+      +                   ## <group>+                   ## pos: 17713 17731+                    (   ( $pad{I2388} = $pos or 1 ) &&+                     ## <named_capture>+                     ## pos: 17713 17726+                     do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                 $grammar->conjunctive( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'conjunctive'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                     ## </named_capture>+     ||    ( ( $pos = $pad{I2388} ) && 0 ) )+                   ## </group>+    +                 )+                 ## </concat>+     ||    ( ( $pos = $pad{I2385} ) && 0 ) )) {}; $bool = 1 }+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 17739 17915+              (   ( $pad{I2389} = $pos or 1 ) &&+               ## <closure>+               ## pos: 17739 17914+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub {+            my @a = map {  $$_  }  @{ $::_V6_MATCH_->{'conjunctive'} };+            return { alt => \@a, _pos => [$_[0]->from, $_[0]->to], }  if scalar @a > 1;+            return $a[0];+        }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2389} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token named_regex+*named_regex =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 17942 18162+           (+      +             ## <group>+             ## pos: 17942 17977+              (   ( $pad{I2390} = $pos or 1 ) &&+    +               ## <capture>+               do{+                   my $hash = do {+                     my $bool = 1;+                     my $from = $pos;+                     my @match;+                     my %named;+                     $bool = 0 unless+                       ## <alt>+                       ## pos: 17943 17971+                       (+                           ( $pad{I2391} = $pos or 1 )+                           && (+      +                           ## <group>+                           ## pos: 17943 17952+                            (   ( $pad{I2392} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 17944 17951+                             ( ( substr( $s, $pos, 5 ) eq 'token' )+                                 ? ( $pos += 5 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2392} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2391} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 17953 17962+                            (   ( $pad{I2393} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 17954 17961+                             ( ( substr( $s, $pos, 5 ) eq 'regex' )+                                 ? ( $pos += 5 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2393} ) && 0 ) )+                           ## </group>+    +                           )+                         || (+                           ( ( $bool = 1 ) && ( $pos = $pad{I2391} ) or 1 )+                           &&   +                           ## <group>+                           ## pos: 17963 17971+                            (   ( $pad{I2394} = $pos or 1 ) &&+    +                             ## <constant>+                             ## pos: 17964 17970+                             ( ( substr( $s, $pos, 4 ) eq 'rule' )+                                 ? ( $pos += 4 or 1 )+                                 : 0+                             )+                             ## </constant>+     ||    ( ( $pos = $pad{I2394} ) && 0 ) )+                           ## </group>+    +                         )+                       )+                       ## </alt>+    ;+                     { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                   };+                   my $bool = ${$hash->{'bool'}};+                   $match[ 0 ] = Pugs::Runtime::Match->new( $hash );+                   $bool;+               }+               ## </capture>+     ||    ( ( $pos = $pad{I2390} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 17977 17983+              (   ( $pad{I2395} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 17977 17982+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2395} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 17983 17991+              (   ( $pad{I2396} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 17983 17990+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ident( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'ident'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2396} ) && 0 ) )+             ## </group>+    +           &&+             ## <quant>+             ## pos: 17991 17998+             (+              (   ( $pad{I2397} = $pos or 1 ) &&+                 ## <metasyntax>+                 ## pos: 17991 17996+                 do {+                      my $prior = $::_V6_PRIOR_;+                      my $match =+                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                      $::_V6_PRIOR_ = $prior;+                      my $bool = (!$match != 1);+                      $pos = $match->to if $bool;+                      $match;+                 }+                 ## </metasyntax>+     ||    ( ( $pos = $pad{I2397} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 17998 18010+              (   ( $pad{I2398} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 17998 18001+               ( ( substr( $s, $pos, 1 ) eq '{' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2398} ) && 0 ) )+             ## </group>+    +           &&+             ## <quant>+             ## pos: 18010 18025+             (+              (   ( $pad{I2399} = $pos or 1 ) &&+                 ## <metasyntax>+                 ## pos: 18010 18015+                 do {+                      my $prior = $::_V6_PRIOR_;+                      my $match =+                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                      $::_V6_PRIOR_ = $prior;+                      my $bool = (!$match != 1);+                      $pos = $match->to if $bool;+                      $match;+                 }+                 ## </metasyntax>+     ||    ( ( $pos = $pad{I2399} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 18025 18036+              (   ( $pad{I2400} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 18025 18031+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->rule( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'rule'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2400} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 18036 18040+              (   ( $pad{I2401} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 18036 18039+               ( ( substr( $s, $pos, 1 ) eq '}' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2401} ) && 0 ) )+             ## </group>+    +           &&+             ## <quant>+             ## pos: 18040 18050+             (+              (   ( $pad{I2402} = $pos or 1 ) &&+    +                 ## <constant>+                 ## pos: 18040 18043+                 ( ( substr( $s, $pos, 1 ) eq ';' )+                     ? ( $pos += 1 or 1 )+                     : 0+                 )+                 ## </constant>+     ||    ( ( $pos = $pad{I2402} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 18050 18162+              (   ( $pad{I2403} = $pos or 1 ) &&+               ## <closure>+               ## pos: 18050 18161+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return {+                type => ${ $_[0]->[0] },+                name => ${ $_[0]->{qw(ident)} },+                ast => ${ $_[0]->{qw(rule)} }+            };+        }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2403} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token verbatim+*verbatim =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 18224 18346+           (+      +             ## <group>+             ## pos: 18224 18229+              (   ( $pad{I2404} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 18224 18228+               ( ( substr( $s, $pos, 2 ) eq '%{' )+                   ? ( $pos += 2 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2404} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 18229 18255+              (   ( $pad{I2405} = $pos or 1 ) &&+    +               ## <capture>+               do{+                   my $hash = do {+                     my $bool = 1;+                     my $from = $pos;+                     my @match;+                     my %named;+                     $bool = 0 unless+                       ## <quant>+                       ## pos: 18230 18253+                       do { while (+                        (   ( $pad{I2406} = $pos or 1 ) &&+                           ## <concat>+                           ## pos: 18232 18250+                           (+      +                             ## <group>+                             ## pos: 18232 18248+                              (   ( $pad{I2407} = $pos or 1 ) &&+                               ## <negate>+                               ## pos: 18233 18247+                               do{+                                   my $pos1 = $pos;+                                   do {+                                     my $pos = $pos1;+                                     my $from = $pos;+                                     my @match;+                                     my %named;+                                     $bool = +                                         ## <before>+                                         ## pos: 18242 18246+                                         do{+                                             my $pos1 = $pos;+                                             do {+                                               my $pos = $pos1;+                                               my $from = $pos;+                                               my @match;+                                               my %named;+                                               $bool = 0 unless+    +                                                   ## <constant>+                                                   ## pos: 18242 18246+                                                   ( ( substr( $s, $pos, 2 ) eq '%}' )+                                                       ? ( $pos += 2 or 1 )+                                                       : 0+                                                   )+                                                   ## </constant>+    ;+                                               $bool;+                                             };+                                         }+                                         ## </before>+     ? 0 : 1;+                                     $bool;+                                   };+                               }+                               ## </negate>+     ||    ( ( $pos = $pad{I2407} ) && 0 ) )+                             ## </group>+    +                           &&+      +                             ## <group>+                             ## pos: 18248 18250+                              (   ( $pad{I2408} = $pos or 1 ) &&+    +                               ## <dot>+                               ## pos: 18248 18249+                               ( substr( $s, $pos++, 1 ) ne '' )+                               ## </dot>+     ||    ( ( $pos = $pad{I2408} ) && 0 ) )+                             ## </group>+    +                           )+                           ## </concat>+     ||    ( ( $pos = $pad{I2406} ) && 0 ) )) {}; $bool = 1 }+                       ## </quant>+    ;+                     { str => \$s, from => \$from, match => \@match, named => \%named, bool => \$bool, to => \(0+$pos), capture => undef }+                   };+                   my $bool = ${$hash->{'bool'}};+                   $match[ 0 ] = Pugs::Runtime::Match->new( $hash );+                   $bool;+               }+               ## </capture>+     ||    ( ( $pos = $pad{I2405} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 18255 18264+              (   ( $pad{I2409} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 18255 18259+               ( ( substr( $s, $pos, 2 ) eq '%}' )+                   ? ( $pos += 2 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2409} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 18264 18346+              (   ( $pad{I2410} = $pos or 1 ) &&+               ## <closure>+               ## pos: 18264 18345+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return {+                type => 'block',+                value => ${ $_[0]->[0] }+            };+        }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2410} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token item+*item =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <alt>+           ## pos: 18366 18458+           (+               ( $pad{I2411} = $pos or 1 )+               && (+               ## <concat>+               ## pos: 18367 18414+               (+      +                 ## <group>+                 ## pos: 18367 18385+                  (   ( $pad{I2412} = $pos or 1 ) &&+                   ## <named_capture>+                   ## pos: 18368 18378+                   do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                               $grammar->verbatim( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'verbatim'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                   ## </named_capture>+     ||    ( ( $pos = $pad{I2412} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 18385 18414+                  (   ( $pad{I2413} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 18385 18409+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return ${ $_[0]->{qw(verbatim)} }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2413} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +               )+             || (+               ( ( $bool = 1 ) && ( $pos = $pad{I2411} ) or 1 )+               &&            ## <concat>+               ## pos: 18415 18458+               (+      +                 ## <group>+                 ## pos: 18415 18430+                  (   ( $pad{I2414} = $pos or 1 ) &&+                   ## <named_capture>+                   ## pos: 18416 18429+                   do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                               $grammar->named_regex( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'named_regex'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                   ## </named_capture>+     ||    ( ( $pos = $pad{I2414} ) && 0 ) )+                 ## </group>+    +               &&+      +                 ## <group>+                 ## pos: 18430 18458+                  (   ( $pad{I2415} = $pos or 1 ) &&+                   ## <closure>+                   ## pos: 18430 18457+                   do {+                     local $::_V6_SUCCEED = 1;+                     $::_V6_MATCH_ = $m;+                     $m->data->{capture} = \( sub { return ${ $_[0]->{qw(named_regex)} }; }->( $m ) ); +                     $bool = $::_V6_SUCCEED;+                     $::_V6_MATCH_ = $m if $bool; +                     return $m if $bool; +                   }+                   ## </closure>+     ||    ( ( $pos = $pad{I2415} ) && 0 ) )+                 ## </group>+    +               )+               ## </concat>+    +             )+           )+           ## </alt>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token grammar+*grammar =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 18481 18597+           (+             ## <quant>+             ## pos: 18481 18488+             (+              (   ( $pad{I2416} = $pos or 1 ) &&+                 ## <metasyntax>+                 ## pos: 18481 18486+                 do {+                      my $prior = $::_V6_PRIOR_;+                      my $match =+                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                      $::_V6_PRIOR_ = $prior;+                      my $bool = (!$match != 1);+                      $pos = $match->to if $bool;+                      $match;+                 }+                 ## </metasyntax>+     ||    ( ( $pos = $pad{I2416} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 18488 18498+              (   ( $pad{I2417} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 18488 18497+               ( ( substr( $s, $pos, 7 ) eq 'grammar' )+                   ? ( $pos += 7 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2417} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 18498 18504+              (   ( $pad{I2418} = $pos or 1 ) &&+               ## <metasyntax>+               ## pos: 18498 18503+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    my $bool = (!$match != 1);+                    $pos = $match->to if $bool;+                    $match;+               }+               ## </metasyntax>+     ||    ( ( $pos = $pad{I2418} ) && 0 ) )+             ## </group>+    +           &&+      +             ## <group>+             ## pos: 18504 18512+              (   ( $pad{I2419} = $pos or 1 ) &&+               ## <named_capture>+               ## pos: 18504 18511+               do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                           $grammar->ident( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { $named{'ident'} = $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+               ## </named_capture>+     ||    ( ( $pos = $pad{I2419} ) && 0 ) )+             ## </group>+    +           &&+             ## <quant>+             ## pos: 18512 18519+             (+              (   ( $pad{I2420} = $pos or 1 ) &&+                 ## <metasyntax>+                 ## pos: 18512 18517+                 do {+                      my $prior = $::_V6_PRIOR_;+                      my $match =+                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                      $::_V6_PRIOR_ = $prior;+                      my $bool = (!$match != 1);+                      $pos = $match->to if $bool;+                      $match;+                 }+                 ## </metasyntax>+     ||    ( ( $pos = $pad{I2420} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 18519 18527+              (   ( $pad{I2421} = $pos or 1 ) &&+    +               ## <constant>+               ## pos: 18519 18522+               ( ( substr( $s, $pos, 1 ) eq ';' )+                   ? ( $pos += 1 or 1 )+                   : 0+               )+               ## </constant>+     ||    ( ( $pos = $pad{I2421} ) && 0 ) )+             ## </group>+    +           &&+             ## <quant>+             ## pos: 18527 18538+             (+              (   ( $pad{I2422} = $pos or 1 ) &&+                 ## <metasyntax>+                 ## pos: 18527 18532+                 do {+                      my $prior = $::_V6_PRIOR_;+                      my $match =+                             $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                      $::_V6_PRIOR_ = $prior;+                      my $bool = (!$match != 1);+                      $pos = $match->to if $bool;+                      $match;+                 }+                 ## </metasyntax>+     ||    ( ( $pos = $pad{I2422} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 18538 18561+             do { while (+              (   ( $pad{I2423} = $pos or 1 ) &&+                 ## <concat>+                 ## pos: 18539 18554+                 (+      +                   ## <group>+                   ## pos: 18539 18547+                    (   ( $pad{I2424} = $pos or 1 ) &&+                     ## <named_capture>+                     ## pos: 18540 18546+                     do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                                 $grammar->item( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'item'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                     ## </named_capture>+     ||    ( ( $pos = $pad{I2424} ) && 0 ) )+                   ## </group>+    +                 &&+                   ## <quant>+                   ## pos: 18547 18554+                   (+                    (   ( $pad{I2425} = $pos or 1 ) &&+                       ## <metasyntax>+                       ## pos: 18547 18552+                       do {+                            my $prior = $::_V6_PRIOR_;+                            my $match =+                                   $grammar->ws( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                            $::_V6_PRIOR_ = $prior;+                            my $bool = (!$match != 1);+                            $pos = $match->to if $bool;+                            $match;+                       }+                       ## </metasyntax>+     ||    ( ( $pos = $pad{I2425} ) && 0 ) )+                   || ( $bool = 1 )+                   )+                   ## </quant>+    +                 )+                 ## </concat>+     ||    ( ( $pos = $pad{I2423} ) && 0 ) )) {}; $bool = 1 }+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 18561 18597+              (   ( $pad{I2426} = $pos or 1 ) &&+               ## <closure>+               ## pos: 18561 18596+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return { ${ $_[0]->{qw(ident)} } => $_[0]->{qw(item)} } }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2426} ) && 0 ) )+             ## </group>+    +           )+           ## </concat>+    ;+        }+        if ( $bool ) {+          my $prior = $::_V6_PRIOR_;+          $::_V6_PRIOR_ = sub {+            local $main::_V6_PRIOR_ = $prior;+            $rule->(@_);+          };+          #warn "pos2 = ", $pos, "\n";+          pos($_[1]) = $pos if $_[3]{continue};+          last;+        }+      } # /for+      $::_V6_MATCH_ = $m;+      return $m;+    } }+    ## </global>+;++# token spec+*spec =+    ## <global>+    ## sigspace: 0+    ## ratchet: 1+    do { my $rule; $rule = sub {+      my $grammar = $_[0];+      my $s = $_[1];+      $_[3] = $_[2] unless defined $_[3]; # backwards compat+      no warnings 'substr', 'uninitialized', 'syntax';+      my %pad;+      my $m;+      my $bool;+      my @pos;+      # XXX :pos(X) takes the precedence over :continue ?+      if (defined $_[3]{p}) {+        push @pos, $_[3]{p} || 0;+      } elsif ($_[3]{continue}) {+        push @pos, (pos($_[1]) || 0) .. length($s);+      } else {+        push @pos, 0..length($s);+      }+      for my $pos ( @pos ) {+        my %index;+        my @match;+        my %named;+        $bool = 1;+        $named{KEY} = $_[3]{KEY} if exists $_[3]{KEY};+        $m = Pugs::Runtime::Match->new( {+          str => \$s, from => \(0+$pos), to => \($pos),+          bool => \$bool, match => \@match, named => \%named, capture => undef,+        } );+        {+          my $prior = $::_V6_PRIOR_;+          local $::_V6_PRIOR_ = $prior;+          $bool = 0 unless+           ## <concat>+           ## pos: 18617 18737+           (+             ## <quant>+             ## pos: 18617 18633+             (+              (   ( $pad{I2427} = $pos or 1 ) &&+                 ## <named_capture>+                 ## pos: 18617 18627+                 do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                             $grammar->verbatim( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'verbatim'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                 ## </named_capture>+     ||    ( ( $pos = $pad{I2427} ) && 0 ) )+             || ( $bool = 1 )+             )+             ## </quant>+    +           &&+             ## <quant>+             ## pos: 18633 18648+             do { while (+              (   ( $pad{I2428} = $pos or 1 ) &&+                 ## <named_capture>+                 ## pos: 18633 18642+                 do {+                    my $prior = $::_V6_PRIOR_;+                    my $match =+                             $grammar->grammar( $s, { p => $pos, positionals => [  ], args => {}, }, undef );+                    $::_V6_PRIOR_ = $prior;+                    if ( $match ) { push @{$named{'grammar'}}, $match;+                        $pos = $match->to;+                        1+                    }+                    else { 0 }+                }+                 ## </named_capture>+     ||    ( ( $pos = $pad{I2428} ) && 0 ) )) {}; $bool = 1 }+             ## </quant>+    +           &&+      +             ## <group>+             ## pos: 18648 18737+              (   ( $pad{I2429} = $pos or 1 ) &&+               ## <closure>+               ## pos: 18648 18736+               do {+                 local $::_V6_SUCCEED = 1;+                 $::_V6_MATCH_ = $m;+                 $m->data->{capture} = \( sub { return {+                block => $_[0]->{qw(verbatim)},+                'grammar' => $_[0]->{qw(grammar)} }+        }->( $m ) ); +                 $bool = $::_V6_SUCCEED;+                 $::_V6_MATCH_ = $m if $bool; +                 return $m if $bool; +               }+               ## </closure>+     ||    ( ( $pos = $pad{I2429} ) && 0 ) )              ## </group>                 )
blib6/pugs/perl5/lib/Pugs/Runtime/Common.pm view
@@ -20,7 +20,7 @@     '‘'    => '’', ); -our %perl6_name = (+my @names = (     # perl 5        => # perl 6     '%::ENV'        => '%*ENV',       '$^O'           => '$*OS',  @@ -42,7 +42,8 @@     '$::_V6_COMPILER_NAME'    => '$?COMPILER',      '$::_V6_COMPILER_VERSION' => '$?VERSION', );-our %perl5_name = reverse %perl6_name;+our %perl6_name = @names;+our %perl5_name = reverse @names;  sub mangle_ident {     my $s = shift;@@ -53,7 +54,6 @@  sub mangle_var {     my $s = $_[0];-    #warn "mangle: $s";     return $perl5_name{$s} if exists $perl5_name{$s};     substr($s,1) =~ s/ ([^a-zA-Z0-9_:] | (?<!:):(?!:)) / '_'.ord($1).'_' /xge;     return $s;
blib6/pugs/perl5/lib/Pugs/Runtime/Regex.pm view
@@ -213,10 +213,12 @@     }     return sub {         #use charnames ':full';-        my $bool = $_[7]{ignorecase}-            ? substr( $_[0], $_[5] ) =~ m/(?i)$rx/-            : substr( $_[0], $_[5] ) =~ m/$rx/;-        $_[3] = Pugs::Runtime::Match->new({ +        my $bool;+        eval {+            $bool = $_[7]{ignorecase}+                ? substr( $_[0], $_[5] ) =~ m/(?i)$rx/+                : substr( $_[0], $_[5] ) =~ m/$rx/;+            $_[3] = Pugs::Runtime::Match->new({                  bool  => \$bool,                 str   => \$_[0],                 from  => \(0 + $_[5]),@@ -224,6 +226,12 @@                 named => {},                 match => [],             });+            1;+        } +        or do {+            die "$@ in perl5 regex: /$rx/";+        };+        $_[3];     }; } 
cbits/Test_pm.c view

file too large to diff

src/Pugs/Parser.hs view
@@ -474,11 +474,10 @@         sub <- ruleHashSubscript         -- Not exactly un-evil         let (Syn "{}" [_, expr]) = sub (Val VUndef)-        Val (VStr name) <- unsafeEvalExp $-            App (_Var "&*join") -            Nothing -            (Val (VStr " ") : [expr])-        return name+            exprs = case expr of+                Syn "," es  -> es+                e           -> [e]+        return $ unwords [ str | Val (VStr str) <- exprs ]     return $ categ ++ name  
src/Pugs/Version.hs view
@@ -14,10 +14,10 @@ -- #include "pugs_version.h"  #ifndef PUGS_VERSION-#define PUGS_VERSION "6.2.13.10"+#define PUGS_VERSION "6.2.13.11" #endif #ifndef PUGS_DATE-#define PUGS_DATE "July 26, 2008"+#define PUGS_DATE "July 31, 2008" #endif #ifndef PUGS_SVN_REVISION #define PUGS_SVN_REVISION 0