I've changed the syntax so it has a constructor for relational expressions. Previously the cond part of if-then-else had 3 values for relational operator and left and right values, this was to stop instances like the following:
if 1 then true-stmts else false-stmts
Seemingly this is invalid Csound which apparently only supports genuine conditional expressions in the cond part, so the previous syntax enforced three part cond expressions. However it was difficult to work with this in practice and we should either be able to eliminated the conditional altogether by constant folding or translate it to a proper conditional during the final translation.
Note - constant folding has been disabled in order to get the current code to compile.