JEP - Java Math Expression Parser

- JavaDoc

# JEP

- Basic Usage
- Variables
- Data types
- Operators
- Functions
- Advanced Features
- Grammar
- FAQ
- Version History

# Extensions

- Overview
- XJep
- Differentiation
- Vectors and Matrices
- Groups
- Version History

# Grammar

This grammar was generated from the Parser.jj file using the jjdoc utility from JavaCC. Operators are ordered from lowest to highest precedence (from top to bottom).

Start | ::= | ( Expression ( <EOF> | <SEMI> ) | ( <EOF> | <SEMI> ) )
Expression | ::= | AssignExpression
| | | OrExpression
AssignExpression | ::= | ( Variable <ASSIGN> Expression )
OrExpression | ::= | AndExpression ( ( <OR> AndExpression ) )*
AndExpression | ::= | EqualExpression ( ( <AND> EqualExpression ) )*
EqualExpression | ::= | RelationalExpression ( ( <NE> RelationalExpression ) | ( <EQ> RelationalExpression ) )*
RelationalExpression | ::= | AdditiveExpression ( ( <LT> AdditiveExpression ) | ( <GT> AdditiveExpression ) | ( <LE> AdditiveExpression ) | ( <GE> AdditiveExpression ) )*
AdditiveExpression | ::= | MultiplicativeExpression ( ( <PLUS> MultiplicativeExpression ) | ( <MINUS> MultiplicativeExpression ) )*
MultiplicativeExpression | ::= | UnaryExpression ( ( PowerExpression ) | ( <MUL> UnaryExpression ) | ( <DOT> UnaryExpression ) | ( <CROSS> UnaryExpression ) | ( <DIV> UnaryExpression ) | ( <MOD> UnaryExpression ) )*
UnaryExpression | ::= | ( <PLUS> UnaryExpression )
| | | ( <MINUS> UnaryExpression )
| | | ( <NOT> UnaryExpression )
| | | PowerExpression
PowerExpression | ::= | UnaryExpressionNotPlusMinus ( ( <POWER> UnaryExpression ) )?
UnaryExpressionNotPlusMinus | ::= | AnyConstant
| | | ( Function | Variable )
| | | <LRND> Expression <RRND>
| | | ListExpression
ListExpression | ::= | ( <LSQ> Expression ( <COMMA> Expression )* <RSQ> )
Variable | ::= | ( Identifier )
Function | ::= | ( Identifier <LRND> ArgumentList <RRND> )
ArgumentList | ::= | ( Expression ( <COMMA> Expression )* )?
Identifier | ::= | ( <INDENTIFIER1> | <INDENTIFIER2> )
AnyConstant | ::= | ( <STRING_LITERAL> | RealConstant )
RealConstant | ::= | ( <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> )