Skip to content

Commit 6006414

Browse files
committed
make declarators parse the following initializer
1 parent 2300df1 commit 6006414

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

STD.pm6

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1802,9 +1802,9 @@ grammar P6 is STD {
18021802

18031803
token declarator {
18041804
[
1805-
| <variable_declarator>
1805+
| <variable_declarator> <initializer>?
18061806
[ <?before <.ws>','<.ws> { @*MEMOS[$¢.pos]<declend> = $*SCOPE; }> ]?
1807-
| '(' ~ ')' <signature> <trait>*
1807+
| '(' ~ ')' <signature> <trait>* <initializer>?
18081808
| <routine_declarator>
18091809
| <regex_declarator>
18101810
| <type_declarator>
@@ -2811,14 +2811,17 @@ grammar P6 is STD {
28112811
<trait>*
28122812

28132813
[
2814-
|| <?before '='>
2814+
|| <initializer>
28152815
|| <?before <-[\n=]>*'='> <.panic: "Malformed constant"> # probable initializer later
28162816
|| <.sorry: "Missing initializer on constant declaration">
28172817
]
28182818

28192819
<.getdecl>
28202820
}
28212821

2822+
token initializer {
2823+
<?before '=' | '.=' | ':=' | '::=' > <infix> <.ws> <EXPR($<infix><O><prec>)>
2824+
}
28222825

28232826
token type_constraint {
28242827
:my $*IN_DECL = '';
@@ -4915,8 +4918,8 @@ grammar Regex is STD {
49154918
token metachar:sym<(?: )> { '(?:' <.obs("(?: ... ) for grouping", "[ ... ]")> }
49164919
token metachar:sym<(?= )> { '(?:' <.obs("(?= ... ) for lookahead", "<?before ... >")> }
49174920
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 ... >")> }
49204923
token metachar:sym<( )> {
49214924
:dba("capture parens")
49224925
'(' ~ ')' <nibbler>

0 commit comments

Comments
 (0)