Arithmetic Exp AddExp AddExp AddExp+MulExpplus AddExp-MulExpminus MulExp MulExp MulExp*ExpExptimes MulExp/ExpExpdivide ExpExp ExpExp PriExp^ExpExppower PriExp PriExp (Exp)paren +PriExppos -PriExpneg identnumber /* The following rules have *descriptions*, which are optional parenthesized "comments" following the name of a rule in its declaration. rule descriptions are used to produce better error messages when the input is not recognized. E.g., if you try to match the input "123" with the `ident` rule below, Ohm will say that "an identifier" was expected. Without `ident`'s rule description, the error message would have said that "a letter" was expected -- which is true, but probably too low-level to be helpful. Note that `letter`, `alnum`, and `digit` are built-in rules with their own descriptions (you can see their declarations in src/built-in-rules.ohm). */ identan identifier letteralnum numbera number literal digit.digitfract digitwhole interpret e.interpret(); e.interpret(); x.interpret() + y.interpret(); x.interpret() - y.interpret(); e.interpret(); x.interpret() * y.interpret(); x.interpret() / y.interpret(); e.interpret(); Math.pow( x.interpret(), y.interpret() ); e.interpret(); e.interpret(); e.interpret(); -e.interpret(); constants[this.interval.contents] || 0; parseFloat(this.interval.contents);

your examples

relevant example pieces

some generated examples