TERM = [ INT | STRING | SYMBOL | LIST | ERROR | VARREF | FUNCALL ]
DEFUN =
- '<defun fname="' FNAME ? ">'
+ '<defun fname="' FNAME '">'
ARGS ?
TERM *
'</defun>'
DEFMACRO =
- '<defmacro fname="' FNAME ? ">'
+ '<defmacro fname="' FNAME '">'
ARGS ?
TERM *
'</defmacro>'
COND = '<cond>' LIST + '</cond>'
LOOP = '<loop>' TERM + '</loop>'
WHILE = '<while>' TERM + '</while>'
-FOREACH = '<foreach vname="' VNAME '">' TERM + '</foreach>'
+FOREACH = '<foreach vname="' VNAME '">' [STRTERM | LISTTERM] TERM + '</foreach>'
BREAK = '<break>' TERM ? '</break>'
RETURN = '<return>' TERM ? '</return>'
QUOTE = '<quote>' TERM '</quote>'