-'<set vname="' VNAME '">' ANYTERM '</set>'
-'<add>' INTTERM + '</add>'
-'<add vname="' VNAME '">' INTTERM + '</add>'
-'<sub>' INTTERM + '</sub>'
-'<sub vname="' VNAME '">' INTTERM + '</sub>'
-'<mul>' INTTERM + '</mul>'
-'<mul vname="' VNAME '">' INTTERM + '</mul>'
-'<div>' INTTERM + '</div>'
-'<div vname="' VNAME '">' INTTERM + '</div>'
-'<mod>' INTTERM INTTERM '</mod>'
-'<mod vname="' VNAME '">' INTTERM '</div>'
-'<logand> INTTERM + '</logand>'
-'<logand vname="' VNAME '">' INTTERM + '</logand>'
-'<logior> INTTERM + '</logior>'
-'<logior> vname="' VNAME '">' INTTERM + '</logior>'
-'<logxor> INTTERM + '</logxor>'
-'<logxor> vname="' VNAME '">' INTTERM + '</logxor>'
-'<lsh>' INTTERM INTTERM '</lsh>'
-'<lsh vname="' VNAME '">' INTTERM '</mul>'
-'<lt>' INTTERM INTTERM '</lt>'
-'<le>' INTTERM INTTERM '</le>'
-'<eq>' INTTERM INTTERM '</eq>'
-'<noteq>' INTTERM INTTERM '</noteq>'
-'<ge>' INTTERM INTTERM '</ge>'
-'<gt>' INTTERM INTTERM '</gt>'
-'<append>' ANYTERM + '</append>'
-'<concat>' [ INTTERM | STRTERM | LISTTERM ] + '</concat>'
-'<length>' [ STRTERM | LISTTERM ] '</length>'
-'<nth>' INTTERM [ STRTERM | LISTTERM ] '</nth>'
-'<copy>' LISTTERM '</nth>'
-'<ins vname="' VNAME '">' INTTERM [ STRTERM | LISTTERM ] '</ins>'
-'<del vname="' VNAME '">' INTTERM INTTERM '</ins>'
-'<and>' TERM + '</and>'
-'<or>' TERM + '</or>'
-'<not>' TERM '</not>'
-'<progn>' TERM * '</progn>'
-'<if>' TERM TERM TERM ? '</if>'
-'<when>' TERM TERM * '</when>'
-'<cond>' LIST + '</cond>'
-'<loop>' TERM + '</loop>'
-'<while>' TERM + '</while>'
-'<foreach vname="' VNAME '">' TERM + '</foreach>'
-'<break>' ANYTERM ? '</break>'
-'<return>' ANYTERM ? '</return>'
-'<quote>' TERM '</quote>'
-'<eval>' TERM '</eval>'
-'<type>' ANYTERM '</type>'
+SET = '<set vname="' VNAME '">' ANYTERM '</set>'
+ADD = '<add>' INTTERM + '</add>'
+ | '<add vname="' VNAME '">' INTTERM + '</add>'
+SUB = '<sub>' INTTERM + '</sub>'
+ | '<sub vname="' VNAME '">' INTTERM + '</sub>'
+MUL = '<mul>' INTTERM + '</mul>'
+ | '<mul vname="' VNAME '">' INTTERM + '</mul>'
+DIB = '<div>' INTTERM + '</div>'
+ | '<div vname="' VNAME '">' INTTERM + '</div>'
+MOD = '<mod>' INTTERM INTTERM '</mod>'
+ | '<mod vname="' VNAME '">' INTTERM '</div>'
+LOGAND = '<logand> INTTERM + '</logand>'
+ | '<logand vname="' VNAME '">' INTTERM + '</logand>'
+LOGIOR = '<logior> INTTERM + '</logior>'
+ | '<logior> vname="' VNAME '">' INTTERM + '</logior>'
+LOGXOR = '<logxor> INTTERM + '</logxor>'
+ | '<logxor> vname="' VNAME '">' INTTERM + '</logxor>'
+LSH = '<lsh>' INTTERM INTTERM '</lsh>'
+ | '<lsh vname="' VNAME '">' INTTERM '</mul>'
+LT = '<lt>' INTTERM INTTERM '</lt>'
+LE = '<le>' INTTERM INTTERM '</le>'
+EQ = '<eq>' INTTERM INTTERM '</eq>'
+NOTEQ = '<noteq>' INTTERM INTTERM '</noteq>'
+GE = '<ge>' INTTERM INTTERM '</ge>'
+GT ='<gt>' INTTERM INTTERM '</gt>'
+APPEND = '<append>' ANYTERM + '</append>'
+CONCAT = '<concat>' [ INTTERM | STRTERM | LISTTERM ] + '</concat>'
+LENGTH = '<length>' [ STRTERM | LISTTERM ] '</length>'
+NTH = '<nth>' INTTERM [ STRTERM | LISTTERM ] '</nth>'
+COPY = '<copy>' LISTTERM '</nth>'
+INS = '<ins vname="' VNAME '">' INTTERM [ STRTERM | LISTTERM ] '</ins>'
+DEL = '<del vname="' VNAME '">' INTTERM INTTERM '</ins>'
+AND = '<and>' TERM + '</and>'
+OR = '<or>' TERM + '</or>'
+NOT = '<not>' TERM '</not>'
+PROGN = '<progn>' TERM * '</progn>'
+IF = '<if>' TERM TERM TERM ? '</if>'
+WHEN = '<when>' TERM TERM * '</when>'
+COND = '<cond>' LIST + '</cond>'
+LOOP = '<loop>' TERM + '</loop>'
+WHILE = '<while>' TERM + '</while>'
+FOREACH = '<foreach vname="' VNAME '">' TERM + '</foreach>'
+BREAK = '<break>' ANYTERM ? '</break>'
+RETURN = '<return>' ANYTERM ? '</return>'
+QUOTE = '<quote>' TERM '</quote>'
+EVAL = '<eval>' TERM '</eval>'
+TYPE = '<type>' ANYTERM '</type>'