@Test public void orderOfOperations() { expect("A*B+C/D*E", call(PLUS, call(MUL, A, B), call(MUL, call(DIV, C, D), E))); // (+ (+ (+ A B) C) (* D E)) expect("A+B+C+D*E", call(PLUS, call(PLUS, call(PLUS, A, B), C), call(MUL, D, E))); expect("A < B == C >= D", call(EQ, call(LT, A, B), call(GE, C, D))); expect("A && B || C && D", call(OR, call(AND, A, B), call(AND, C, D))); }
@Test public void parseStringLiteral() { expect("A=='Foo'", call(EQ, symbol("A"), new ConstantNode("Foo"))); }