| peg::parser math(R"(
EXPRESSION <- P0
P0 <- P1 (P1_OPERATOR P1)*
P1 <- P2 (P2_OPERATOR P2)*
P2 <- P3 (P3_OPERATOR P3)*
P3 <- NUMBER / FUNCTION / VARIABLE / '(' P0 ')'
P1_OPERATOR <- < [-+] >
P2_OPERATOR <- < [/*] >
P3_OPERATOR <- < '^' >
NUMBER <- < '-'? [0-9]+ >
NAME <- < [a-z][a-z0-9]* >
VARIABLE <- < [x] >
FUNCTION <- NAME '(' EXPRESSION ( [,\n] EXPRESSION )* ')'
%whitespace <- [ \t\r]*
)") |
( |
R"( EXPRESSION <- P0 P0 <- P1 (P1_OPERATOR P1)* P1 <- P2 (P2_OPERATOR P2)* P2 <- P3 (P3_OPERATOR P3)* P3 <- NUMBER / FUNCTION / VARIABLE / '(' P0 ')' P1_OPERATOR <- < [-+] > P2_OPERATOR <- < [/*] > P3_OPERATOR <- < '^' > NUMBER <- < '-'? [0-9]+ > NAME <- < [a-z][a-z0-9]* > VARIABLE <- < [x] > FUNCTION <- NAME '(' EXPRESSION ( [,\n] EXPRESSION )* ')' %whitespace <- [ \t\r]* )" | | ) |
|