// Parser for the lambda calculus ometa LCParser <: Parser { digit = ^digit:d -> d.digitValue(), number = number:n digit:d -> (n * 10 + d) | digit, addExpr = addExpr:x "+" mulExpr:y -> ['add', x, y] | mulExpr, mulExpr = mulExpr:x "*" powExpr:y -> ['mul', x, y] | number } var p=LCParser.matchExpr("1 + 3", "addExpr") alert(p) undefined undefined undefined undefined undefined undefined