@@ -816,12 +816,11 @@ token p5term:fatarrow { <fatarrow> }
816
816
817
817
token p5term :variable { <variable >
818
818
[
819
- || { if $ < variable >< sigil > . Str ne ' $'
820
- { $ * VAR = $ < variable > } }
819
+ || <?{ $ < variable >< sigil > . Str ne ' $' }>
821
820
|| <? before '[' > { $ < variable >< really > = ' @' }
822
821
|| <? before '{' > { $ < variable >< really > = ' %' }
823
- || { $ * VAR = $ < variable > }
824
- ]
822
+ ] ?
823
+ { $ * VAR = $ < variable > }
825
824
}
826
825
827
826
token p5term :package_declarator { <package_declarator = p5package_declarator > }
@@ -1077,15 +1076,7 @@ token name {
1077
1076
}
1078
1077
1079
1078
token morename {
1080
- :my $ * QSIGIL ::= '' ;
1081
- '::'
1082
- [
1083
- <? before '(' | <alpha > >
1084
- [
1085
- | <identifier >
1086
- | :dba ('indirect name' ) '(' ~ ')' <EXPR >
1087
- ]
1088
- ]?
1079
+ '::' <identifier >?
1089
1080
}
1090
1081
1091
1082
token subname {
@@ -2336,7 +2327,9 @@ token p5term:blocklist
2336
2327
{
2337
2328
# :my $name;
2338
2329
# :my $pos;
2339
- $ < identifier > = ['map' | 'grep' | 'sort' ] <.ws > [<? before '{' > <block > <.ws >]? <arglist >
2330
+ $ < identifier > = ['map' | 'grep' | 'sort' ] <.ws >
2331
+ [ :my $ * IN_SORT = $ < identifier > . Str eq 'sort' ; <? before '{' > <block > <.ws >]?
2332
+ <arglist >
2340
2333
# { self.add_mystery($name,$pos,substr($*ORIG,$pos,1)) unless $<args><invocant>; }
2341
2334
<O (| % term )>
2342
2335
}
@@ -2685,14 +2678,14 @@ method check_variable ($variable) {
2685
2678
my $ here = self . cursor($ variable . from );
2686
2679
self . deb(" check_variable $ name" ) if $ * DEBUG +& DEBUG::symtab;
2687
2680
if $ variable <really > { $ name = $ variable <really > ~ substr ($ name ,1 ) }
2688
- my ($ sigil , $ first ) = $ name ~~ /(\$ | \@| \% | \&)(.? ) /;
2681
+ my ($ sigil , $ first ) = $ name ~~ /(\$ | \@| \% | \&| \ * )(.? ) /;
2689
2682
return self if $ first eq ' {' ;
2690
2683
my $ ok = 0 ;
2691
2684
$ ok ||= $ * IN_DECL ;
2692
2685
$ ok ||= $ first lt ' A' ;
2693
- $ ok ||= $ first eq ' ¢ ' ;
2686
+ $ ok ||= $ sigil eq ' * ' ;
2694
2687
$ ok ||= self . is_known($ name );
2695
- $ ok ||= $ name ~~ / . \:\: / && $ name ! ~~ / MY | UNIT | OUTER | SETTING | CORE / ;
2688
+ $ ok ||= ( $ * IN_SORT and $ name eq ' $a ' || $ name eq ' $b ' ) ;
2696
2689
if not $ ok {
2697
2690
my $ id = $ name ;
2698
2691
$ id ~~ s /^ \W\W ? // ;
0 commit comments