Exercise 11:

Parenthesized expressions over binary +, -, *, /, and ^
The set of tokens of the language is {+,-,*,/,^,NUMBER,(,)}. The token NUMBER represents unsigned integers, i.e., non-empty sequences of digits. Examples of correct expressions are “1”, “2+3^4/5”, “1^(0+3)/4-5”, “1/2^3”, whereas “1+”, “/2”, “1 2”, “^6”, “7/8*9+” are not. The generated AST must correspond to an interpretation of all operators as left-associative, except exponentiation, which is right-associative. The usual precedence of exponentiation over products and divisions and these over sums and subtractions applies. As an example, for input
the resulting AST must be
i.e., as if the implicit parenthesization was
Authors: Pau Fernández / Documentation:
To be able to submit you need to either log in, register, or become a guest.