System.out.println(Float.parseFloat("3.5") + Long.parseLong("4"));
System.out.println(getReversePolishNotation("3 + 3 * 5 / 2"));
System.out.println(getReversePolishNotation("3 + 3 * 5 / 2"));
System.out.println("================================================");
StatementExpression se = new StatementExpression();
System.out.println(se.parse("3L + 3L * 5L / 2L"));
System.out.println(se.parse("3 + 3 * 5 / 2"));
System.out.println(se.parse("3.0 + 3 * 5.0 / 2.0"));
System.out.println(se.parse("3 + 3f * 5 / 2f"));
System.out.println(se.parse("\"hello \" + \"firefly \""));
System.out.println(se.parse("'hello ' + 'firefly ' + '!'"));
System.out.println(se.parse("'hello ' + 'firefly ' + ${i} + '!'"));
// System.out.println(se.parse("${i} + ${j} + ${k}"));
System.out.println(se.parse("${i} + 3 + 5 + 2 / 1.0"));
System.out.println(se.parse("(3f + ${j}) / 2 + ${i} + 1.0"));
System.out.println(se.parse("1L +" + Integer.MAX_VALUE));
System.out.println(1 + Integer.MAX_VALUE);
System.out.println(se.parse("(3f + ${apple.price}) / 2 + ${i} + 1.0"));
System.out.println(se.parse("(3f + ${apple.price}) / 2 + ${i} + 1.0 >= 2"));
System.out.println(se.parse("!${i} || !${j} && ${k}"));
System.out.println(se.parse("1 | 2 & ${i}"));
System.out.println(se.parse("${i} & ${j}"));
// System.out.println(se.parse("${apple.price} + 1f >= 5 && ${apple.price} + 1f < 10"));
// System.out.println(se.parse("! ${user1.pass} == !true && ${user2.pass} == true "));
System.out.println(se.parse("!${user.pass}"));
// System.out.println(se.parse("(3f + ${j} --) / 2 + ${i}++ + 1.0"));
}