Skip to content

Instantly share code, notes, and snippets.

@smls
Created May 28, 2015 17:11
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save smls/8a16296b48b4e4f6f011 to your computer and use it in GitHub Desktop.
#!/usr/bin/env perl6
use v6;
grammar G1 {
token TOP { \w { make (2, 4, 6, 8) } }
}
grammar G2 {
token TOP { \w { $/.make: (2, 4, 6, 8) } }
}
grammar G3 {
token TOP { \w }
}
class A1 {
method TOP ($/) { make (2, 4, 6, 8) }
}
class A2 {
method TOP ($/) { $/.make: (2, 4, 6, 8) }
}
class A3 {
method TOP ($m) { $m.make: (2, 4, 6, 8) }
}
say 'make in grammar: ', G1.parse("a").made.perl;
say '$/.make in grammar: ', G2.parse("a").made.perl;
say 'make in class: ', G3.parse("a", :actions(A1)).made.perl;
say '$/.make in class: ', G3.parse("a", :actions(A2)).made.perl;
say '$m.make in class: ', G3.parse("a", :actions(A3)).made.perl;
make in grammar: (2, 4, 6, 8)
$/.make in grammar: (2, 4, 6, 8)
make in class: (2, 4, 6, 8)
$/.make in class: $(2, 4, 6, 8)
$m.make in class: $(2, 4, 6, 8)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment