OK, so does anybody know the trick to taking a parse tree such as
(2*(5^2))+((8*6)^(x-1)))
and printing it out *without* several billion brackets?
Printing it with brackets as above, or with no brackets at all, is quite
trivial:
output expr = case expr of
Operator n x y = "(" ++ output x ++ n ++ output y ++ ")"
Variable n = n
Constant v = show v
...
But how do you "decide" when the brackets can or can't be omitted?
Post a reply to this message
|