Skip to content

Instantly share code, notes, and snippets.

@MasterDuke17
Created November 3, 2019 17:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MasterDuke17/e3ad9a1aa995e2da53114957ca13e4b1 to your computer and use it in GitHub Desktop.
Save MasterDuke17/e3ad9a1aa995e2da53114957ca13e4b1 to your computer and use it in GitHub Desktop.
./perl6-m --ll-exception -e 'Q:qq:cc/\1/'
This representation (P6int) does not support positional access (for type BOOTInt)
at gen/moar/stage2/QRegex.nqp:684 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:run)
from gen/moar/stage2/QRegex.nqp:1622 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:!protoregex)
from <unknown>:1 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:escape)
from gen/moar/Grammar.nqp:5357 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:do_nibbling)
from <unknown>:1 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:nibbler)
from gen/moar/Grammar.nqp:259 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:nibble)
from gen/moar/Grammar.nqp:247 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:quibble)
from gen/moar/Grammar.nqp:3433 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:quote:sym<Q>)
from gen/moar/stage2/QRegex.nqp:1637 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:!protoregex)
from <unknown>:1 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:quote)
from <unknown>:1 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:value:sym<quote>)
from gen/moar/stage2/QRegex.nqp:1637 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:!protoregex)
from <unknown>:1 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:value)
from <unknown>:1 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:term:sym<value>)
from gen/moar/stage2/QRegex.nqp:1637 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:!protoregex)
from <unknown>:1 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:term)
from gen/moar/Grammar.nqp:3641 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:termish)
from gen/moar/stage2/NQPHLL.nqp:1207 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:EXPR)
from gen/moar/Grammar.nqp:3677 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:EXPR)
from gen/moar/Grammar.nqp:956 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:statement)
from gen/moar/Grammar.nqp:884 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:statementlist)
from gen/moar/stage2/NQPHLL.nqp:1429 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:LANG)
from gen/moar/Grammar.nqp:1322 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:FOREIGN_LANG)
from gen/moar/Grammar.nqp:832 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:comp_unit)
from gen/moar/Grammar.nqp:555 (/home/dan/Source/perl6/rakudo/blib/Perl6/Grammar.moarvm:TOP)
from gen/moar/stage2/QRegex.nqp:2204 (/home/dan/Source/perl6/install/share/nqp/lib/QRegex.moarvm:parse)
from gen/moar/stage2/NQPHLL.nqp:2260 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:parse)
from gen/moar/stage2/NQPHLL.nqp:2178 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:execute_stage)
from gen/moar/stage2/NQPHLL.nqp:2211 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:run)
from gen/moar/stage2/NQPHLL.nqp:2203 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:)
from gen/moar/stage2/NQPHLL.nqp:2198 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:compile)
from gen/moar/stage2/NQPHLL.nqp:1881 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:eval)
from gen/moar/stage2/NQPHLL.nqp:2021 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:)
from gen/moar/stage2/NQPHLL.nqp:2076 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
from gen/moar/Compiler.nqp:55 (/home/dan/Source/perl6/rakudo/blib/Perl6/Compiler.moarvm:command_eval)
from gen/moar/stage2/NQPHLL.nqp:2001 (/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_line)
from gen/moar/perl6.nqp:126 (/home/dan/Source/perl6/rakudo/perl6.moarvm:MAIN)
from gen/moar/perl6.nqp:91 (/home/dan/Source/perl6/rakudo/perl6.moarvm:<mainline>)
from <unknown>:1 (/home/dan/Source/perl6/rakudo/perl6.moarvm:<main>)
from <unknown>:1 (/home/dan/Source/perl6/rakudo/perl6.moarvm:<entry>)
diff --git a/src/QRegex/NFA.nqp b/src/QRegex/NFA.nqp
index f8b14564b..b63e35a1e 100644
--- a/src/QRegex/NFA.nqp
+++ b/src/QRegex/NFA.nqp
@@ -244,10 +244,8 @@ class QRegex::NFA {
!! $EDGE_CHARRANGE;
my @to_add;
if $node[0] eq 'ignorecase' || $node[0] eq 'ignorecase+ignoremark' {
- nqp::push(@to_add, nqp::ord(nqp::lc(nqp::chr($node[1].value))));
- nqp::push(@to_add, nqp::ord(nqp::lc(nqp::chr($node[2].value))));
- nqp::push(@to_add, nqp::ord(nqp::uc(nqp::chr($node[1].value))));
- nqp::push(@to_add, nqp::ord(nqp::uc(nqp::chr($node[2].value))));
+ nqp::push(@to_add, nqp::ord(nqp::fc(nqp::chr($node[1].value))));
+ nqp::push(@to_add, nqp::ord(nqp::fc(nqp::chr($node[2].value))));
}
else {
nqp::push(@to_add, $node[1].value);
@@ -284,15 +282,13 @@ class QRegex::NFA {
if $litlen >= 0 {
note("$indent literal $from -> $to {$node[0]}") if $nfadeb;
if $node.subtype eq 'ignorecase' {
- my str $litconst_lc := nqp::lc($node[0]);
- my str $litconst_uc := nqp::uc($node[0]);
+ my str $litconst_fc := nqp::fc($node[0]);
while $i < $litlen {
- $from := self.addedge($from, -1, $EDGE_CODEPOINT_I,
- [ord-or-str($litconst_lc, $i), ord-or-str($litconst_uc, $i)]);
+ $from := self.addedge($from, -1, $EDGE_CODEPOINT_I, ord-or-str($litconst_fc, $i));
$i := $i + 1;
}
dentout(self.addedge($from, $to, $!LITEND ?? $EDGE_CODEPOINT_I !! $EDGE_CODEPOINT_I_LL,
- [ord-or-str($litconst_lc, $i), ord-or-str($litconst_uc, $i)]));
+ ord-or-str($litconst_fc, $i)));
}
elsif $node.subtype eq 'ignoremark' {
my str $litconst := $node[0];
@@ -304,15 +300,12 @@ class QRegex::NFA {
# XXX $EDGE_CODEPOINT_M_LL ?
}
elsif $node.subtype eq 'ignorecase+ignoremark' {
- my str $litconst_lc := nqp::lc($node[0]);
- my str $litconst_uc := nqp::uc($node[0]);
+ my str $litconst_fc := nqp::fc($node[0]);
while $i < $litlen {
- $from := self.addedge($from, -1, $EDGE_CODEPOINT_IM,
- [nqp::ordbaseat($litconst_lc, $i), nqp::ordbaseat($litconst_uc, $i)]);
+ $from := self.addedge($from, -1, $EDGE_CODEPOINT_IM, nqp::ordbaseat($litconst_fc, $i));
$i := $i + 1;
}
- dentout(self.addedge($from, $to, $EDGE_CODEPOINT_IM,
- [nqp::ordbaseat($litconst_lc, $i), nqp::ordbaseat($litconst_uc, $i)]));
+ dentout(self.addedge($from, $to, $EDGE_CODEPOINT_IM, nqp::ordbaseat($litconst_fc, $i)));
# XXX $EDGE_CODEPOINT_IM_LL ?
}
else {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment