Skip to content

Commit 9dd7eab

Browse files
committed
make the NFA work with () captures
1 parent ec2f2a8 commit 9dd7eab

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/QRegex/NFA.nqp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ class QRegex::NFA {
4444

4545
method regex_nfa($node, $from, $to) {
4646
my $method := ($node.rxtype // 'concat');
47-
nqp::say("got method $method");
4847
self.HOW.can(self, $method)
4948
?? self."$method"($node, $from, $to)
5049
!! self.fate($node, $from, $to);
@@ -124,7 +123,9 @@ class QRegex::NFA {
124123
?? ($node.negate
125124
?? self.fate($node, $from, $to)
126125
!! self.addedge($from, 0, $EDGE_SUBRULE, $node.name))
127-
!! self.addedge($from, $to, $EDGE_SUBRULE, $node[0][0]);
126+
!! $subtype eq 'capture' && $node[1]
127+
?? self.regex_nfa($node[1], $from, $to)
128+
!! self.addedge($from, $to, $EDGE_SUBRULE, $node[0][0]);
128129
}
129130

130131
method quant($node, $from, $to) {

src/QRegex/P6Regex/Actions.nqp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class QRegex::P6Regex::Actions is HLL::Actions {
121121

122122
method metachar:sym<( )>($/) {
123123
my $subpast := PAST::Node.new(buildsub($<nibbler>.ast));
124-
my $qast := QAST::Regex.new( $subpast, :rxtype('subrule'),
124+
my $qast := QAST::Regex.new( $subpast, $<nibbler>.ast, :rxtype('subrule'),
125125
:subtype('capture'), :node($/) );
126126
make $qast;
127127
}

0 commit comments

Comments
 (0)