@@ -1802,9 +1802,9 @@ grammar P6 is STD {
1802
1802
1803
1803
token declarator {
1804
1804
[
1805
- | <variable_declarator >
1805
+ | <variable_declarator > < initializer > ?
1806
1806
[ <? before <.ws >',' <.ws > { @* MEMOS[$ ¢. pos]<declend > = $ * SCOPE; }> ]?
1807
- | '(' ~ ')' <signature > <trait >*
1807
+ | '(' ~ ')' <signature > <trait >* < initializer > ?
1808
1808
| <routine_declarator >
1809
1809
| <regex_declarator >
1810
1810
| <type_declarator >
@@ -2811,14 +2811,17 @@ grammar P6 is STD {
2811
2811
<trait >*
2812
2812
2813
2813
[
2814
- || <? before '=' >
2814
+ || <initializer >
2815
2815
|| <? before <- [ \n= ] >* '=' > <.panic : "Malformed constant" > # probable initializer later
2816
2816
|| <.sorry : "Missing initializer on constant declaration" >
2817
2817
]
2818
2818
2819
2819
<.getdecl >
2820
2820
}
2821
2821
2822
+ token initializer {
2823
+ <? before '=' | '.=' | ':=' | '::=' > <infix > <.ws > <EXPR ($ < infix >< O >< prec > )>
2824
+ }
2822
2825
2823
2826
token type_constraint {
2824
2827
:my $ * IN_DECL = '' ;
@@ -4915,8 +4918,8 @@ grammar Regex is STD {
4915
4918
token metachar :sym <(?: ) > { '(?:' <.obs (" (?: ... ) for grouping" , " [ ... ]" )> }
4916
4919
token metachar :sym <(?= ) > { '(?:' <.obs (" (?= ... ) for lookahead" , " <?before ... >" )> }
4917
4920
token metachar :sym <(?! ) > { '(?:' <.obs (" (?! ... ) for lookahead" , " <!before ... >" )> }
4918
- token metachar :sym <(?<= ) > { '(?:' <.obs (" (?<= ... ) for lookbehind" , " <?after ... >" )> }
4919
- token metachar :sym <(?<! ) > { '(?:' <.obs (" (?<! ... ) for lookbehind" , " <!after ... >" )> }
4921
+ token metachar :sym <(?\ <= ) > { '(?:' <.obs (" (?<= ... ) for lookbehind" , " <?after ... >" )> }
4922
+ token metachar :sym <(?\ <! ) > { '(?:' <.obs (" (?<! ... ) for lookbehind" , " <!after ... >" )> }
4920
4923
token metachar :sym <( ) > {
4921
4924
:dba ("capture parens" )
4922
4925
'(' ~ ')' <nibbler >
0 commit comments