|
Expression e = token.equals("\u0001") ? list.get(index++) : new StringConstantExpression(token); |
I believe the bug is on this line. You've already consumed the parameter at index 0 up on line 70, but then you do list.get(index++). I believe this ought to be list.get(++index).
This results in incorrect output. A string-concat expression that ought to be a + ":" + b comes out as a + ":" + a.