Syntax directed production of a postfix tree
--------------------------------------------

S := LOOP | EXPR ;

EXPR  := EXPR1 | EXPR1 op1 EXPR | op4 EXPR | (EXPR)
op1   := + | -
op4   := - | ~
EXPR1 := EXPR2 | EXPR2 op5 EXPR1 | (EXPR1)
op5   := % "|" & ^
EXPR2 := EXPR3 | EXPR3 op2 EXPR3 | (EXPR2)
op2   := * | /
EXPR3 := value | op3 value | value op3 | func
op3   := ++ | --
value := simpe variable, integer , real or string
func  := FUNCNAME ( EXPR [, EXPR]* )
