Skip to content

Commit

Permalink
RakuAST: Support stubbing of packages
Browse files Browse the repository at this point in the history
  • Loading branch information
niner committed Nov 6, 2022
1 parent 3c85b96 commit e5578ad
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/Raku/Actions.nqp
Expand Up @@ -1195,9 +1195,21 @@ class Raku::Actions is HLL::Actions does Raku::CommonActions {
method package_declarator:sym<knowhow>($/) { self.attach: $/, $<package_def>.ast; }
method package_declarator:sym<native>($/) { self.attach: $/, $<package_def>.ast; }

sub is-yada($/) {
$<blockoid><statementlist>
&& nqp::elems($<blockoid><statementlist><statement>) == 1
&& ~$<blockoid><statementlist><statement>[0]
~~ /^ \s* ['...'|'???'|'!!!'|'…'] \s* $/;
}

method package_def($/) {
my $package := $*PACKAGE;
my $body := $<block> ?? $<block>.ast !! $<unit-block>.ast;

if is-yada($<block> || $<unit-block>) {
return self.attach: $/, $package;
}

if $*PKGDECL eq 'role' {
my $signature := $<signature> ?? $<signature>.ast !! self.r('Signature').new;
$signature.set-is-on-role-body(1);
Expand Down

0 comments on commit e5578ad

Please sign in to comment.