Grammar
Grammar that is easier to extend
Grammar with error handlingexamples/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" } }
}
examples/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 Copyright 2006, 2007, 2008, 2009, 2010 Gabor Szabo http://szabgab.com/ Index | TOC |
Follow me: