-
-
Save alabamenhu/2908fa5820b55284c548bff49f32edb8 to your computer and use it in GitHub Desktop.
Slang test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sub EXPORT(|) { | |
my role SlangTest { | |
# This is a direct copy of the regular 'token' token | |
token regex_declarator:sym<footoken> { | |
<sym><.kok> | |
:my %*RX; | |
:my $*INTERPOLATE := 1; | |
:my $*METHODTYPE := 'token'; | |
:my $*IN_DECL := 'token'; | |
:my $*LINE_NO := HLL::Compiler.lineof(self.orig(), self.from(), :cache(1)); | |
{ | |
%*RX<r> := 1; | |
} | |
<regex_def> | |
} | |
# This is a quick check that the slang is exported correctly | |
token identifier { | |
<.ident> [ [ <.apostrophe> | <[₀₁₂₃₄₅₆₇₈₉]>+ ] <.ident> ]* <[₀₁₂₃₄₅₆₇₈₉]>* | |
} | |
} | |
my role SlangTestActions { | |
# this is a direct copy of the regular 'token' method | |
method regex_declarator:sym<footoken>($/, $key?) { | |
make $<regex_def>.ast; | |
} | |
} | |
$*LANG.define_slang: | |
'MAIN', | |
$*LANG.slang_grammar('MAIN').^mixin(SlangTest), | |
$*LANG.actions.^mixin(SlangTestActions); | |
{} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use lib '.'; | |
use Slang; | |
my $a₂; | |
grammar Bar { | |
footoken foo { 'foo' } | |
} | |
#`[ | |
| if changed to 'token', it compiles ok | |
| but with 'footoken' we get: | |
| Cannot find method 'package_at_key' on 'BOOTHash': no method cache and no .^find_method | |
] | |
Can you supply a full stacktrace with
--ll-exception
?
Cannot find method 'package_at_key' on 'BOOTHash': no method cache and no .^find_method
at [clipped]…/HOWtest.pm6 (HOWtest):3 ([clipped]…HOWtest/.precomp/62A85C75A73947A3F79696B3D572538E3D820789/40/404EFF7BC110EAC0EC9EB3189427F06585CC342D:regex_declarator:sym<footoken>)
from gen/moar/stage2/QRegex.nqp:1689 (/Applications/Rakudo/bin/../share/nqp/lib/QRegex.moarvm:!protoregex)
from <unknown>:1 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:regex_declarator)
from <unknown>:1 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:term:sym<regex_declarator>)
from gen/moar/stage2/QRegex.nqp:1689 (/Applications/Rakudo/bin/../share/nqp/lib/QRegex.moarvm:!protoregex)
from <unknown>:1 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:term)
from gen/moar/Grammar.nqp:3696 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:termish)
from gen/moar/stage2/NQPHLL.nqp:1208 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:EXPR)
from gen/moar/Grammar.nqp:3739 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:EXPR)
from gen/moar/Grammar.nqp:957 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:statement)
from gen/moar/Grammar.nqp:885 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:statementlist)
from gen/moar/Grammar.nqp:1068 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:blockoid)
from gen/moar/Grammar.nqp:2173 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:package_def)
from <unknown>:1 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:package_declarator:sym<grammar>)
from gen/moar/stage2/QRegex.nqp:1689 (/Applications/Rakudo/bin/../share/nqp/lib/QRegex.moarvm:!protoregex)
from <unknown>:1 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:package_declarator)
from <unknown>:1 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:term:sym<package_declarator>)
from gen/moar/stage2/QRegex.nqp:1689 (/Applications/Rakudo/bin/../share/nqp/lib/QRegex.moarvm:!protoregex)
from <unknown>:1 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:term)
from gen/moar/Grammar.nqp:3696 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:termish)
from gen/moar/stage2/NQPHLL.nqp:1208 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:EXPR)
from gen/moar/Grammar.nqp:3739 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:EXPR)
from gen/moar/Grammar.nqp:957 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:statement)
from gen/moar/Grammar.nqp:885 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:statementlist)
from gen/moar/stage2/NQPHLL.nqp:1430 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:LANG)
from gen/moar/Grammar.nqp:1323 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:FOREIGN_LANG)
from gen/moar/Grammar.nqp:833 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:comp_unit)
from gen/moar/Grammar.nqp:555 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Grammar.moarvm:TOP)
from gen/moar/stage2/QRegex.nqp:2254 (/Applications/Rakudo/bin/../share/nqp/lib/QRegex.moarvm:parse)
from gen/moar/stage2/NQPHLL.nqp:2262 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:parse)
from gen/moar/stage2/NQPHLL.nqp:2180 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:execute_stage)
from gen/moar/stage2/NQPHLL.nqp:2213 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:run)
from gen/moar/stage2/NQPHLL.nqp:2205 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:)
from gen/moar/stage2/NQPHLL.nqp:2200 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:compile)
from gen/moar/stage2/NQPHLL.nqp:1883 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:eval)
from gen/moar/stage2/NQPHLL.nqp:2118 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:evalfiles)
from gen/moar/stage2/NQPHLL.nqp:2078 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:command_eval)
from gen/moar/Compiler.nqp:55 (/Applications/Rakudo/bin/../share/perl6/lib/Perl6/Compiler.moarvm:command_eval)
from gen/moar/stage2/NQPHLL.nqp:2003 (/Applications/Rakudo/bin/../share/nqp/lib/NQPHLL.moarvm:command_line)
from gen/moar/rakudo.nqp:127 (/Applications/Rakudo/bin/../share/perl6/runtime/perl6.moarvm:MAIN)
from gen/moar/rakudo.nqp:92 (/Applications/Rakudo/bin/../share/perl6/runtime/perl6.moarvm:<mainline>)
from <unknown>:1 (/Applications/Rakudo/bin/../share/perl6/runtime/perl6.moarvm:<main>)
from <unknown>:1 (/Applications/Rakudo/bin/../share/perl6/runtime/perl6.moarvm:<entry>)
Just clipped out the initial directories in the user folder. Line 3 that it references is line 4 in the code I posted above (I added a comment when posting)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Can you supply a full stacktrace with
--ll-exception
?