ArithmeticExpAddExpAddExpAddExp+MulExpplusAddExp-MulExpminusMulExpMulExpMulExp*ExpExptimesMulExp/ExpExpdivideExpExpExpExpPriExp^ExpExppowerPriExpPriExp(Exp)paren+PriExppos-PriExpnegidentnumber/*
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 identifierletteralnumnumbera number literaldigit.digitfractdigitwholeinterprete.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);