Skip to content

Commit 28ffe45

Browse files
committed
Turn some <?before ...> into simpler constructs.
In NQP::Grammar; saves 1000 Cursor allocations in NQP.nqp parse.
1 parent 0b5feb6 commit 28ffe45

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/NQP/Grammar.nqp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -789,9 +789,9 @@ grammar NQP::Grammar is HLL::Grammar {
789789

790790
token prefix:sym<return> { <sym> \s <O('%list_prefix')> { $*RETURN_USED := 1 } }
791791
token prefix:sym<make> { <sym> \s <O('%list_prefix')> }
792-
token term:sym<last> { <sym> <!before <identifier> > { $*CONTROL_USED := 1 } }
793-
token term:sym<next> { <sym> <!before <identifier> > { $*CONTROL_USED := 1 } }
794-
token term:sym<redo> { <sym> <!before <identifier> > { $*CONTROL_USED := 1 } }
792+
token term:sym<last> { <sym> <!identifier> { $*CONTROL_USED := 1 } }
793+
token term:sym<next> { <sym> <!identifier> { $*CONTROL_USED := 1 } }
794+
token term:sym<redo> { <sym> <!identifier> { $*CONTROL_USED := 1 } }
795795

796796
method smartmatch($/) {
797797
# swap rhs into invocant position
@@ -820,17 +820,17 @@ grammar NQP::Regex is QRegex::P6Regex::Grammar {
820820
<?[{]> <codeblock>
821821
}
822822

823-
token assertion:sym<?> { '?' [ <?before '>' > | <!before '{'> <assertion> ] }
824-
token assertion:sym<!> { '!' [ <?before '>' > | <!before '{'> <assertion> ] }
823+
token assertion:sym<?> { '?' [ <?[>]> | <![{]> <assertion> ] }
824+
token assertion:sym<!> { '!' [ <?[>]> | <![{]> <assertion> ] }
825825

826826
token assertion:sym<?{ }> {
827-
$<zw>=[ <[?!]> <?before '{'> ] <codeblock>
827+
$<zw>=[ <[?!]> <?[{]> ] <codeblock>
828828
}
829829

830830
token assertion:sym<name> {
831831
<longname=.identifier>
832832
[
833-
| <?before '>'>
833+
| <?[>]>
834834
| '=' <assertion>
835835
| ':' <arglist>
836836
| '(' <arglist=.LANG('MAIN','arglist')> ')'

0 commit comments

Comments
 (0)