Note! This site is about Perl 6.
If you are looking for a solution for Perl 5, please check out the Perl 5 tutorial.
tutorial/regex2/Add2.pm
grammar Add2 {
rule TOP { ^ <math> $ }
rule math {
<operand>
[ <operator> || {die "missing operator"} ]
[ <operand> || { die "Missing second operand" } ]
[ \S { die "Invalid value after the second operand" } ]?
}
token operand { \d+ }
token operator { <[\+\*]> || \D { die "Invalid operator" } }
}
tutorial/regex2/Add2.pm.out
2 + 3 OK
2 + 4 OK
2 + 3 x exception received: Invalid value after the second operand
2 + exception received: Missing second operand
2 3 exception received: missing operator
2 - 3 exception received: Invalid operator
The Perl 6 Tricks and Treats newsletter has been around for a while.
If you are interested to get special notification when there is new content
on this site, it is the best way to keep track:
This is a newsletter temporarily running on my personal site (szabgab.com) using Mailman,
till I implement an alternative system in Perl 6.
Written by Gabor Szabo