| '<' PREDEFINED-FUNC-SYMBOL '>' TERM * '</' PREDEFINED-FUNC-SYMBOL '>'
PREDEFINED-FUNC-SYMBOL =
- 'set'
- | 'and' | 'or' | 'not'
- | 'lt' | 'le' | 'eq' | 'ge' | 'gt'
- | 'noteq'
- | 'add' | 'sub' | 'mul' | 'div' | 'mod'
- | 'add-set' | 'sub-set' | 'mul-set' | 'div-set' | 'mod-set'
- | 'logand' | 'logior' | 'logxor' | 'lsh'
- | 'logand-set' | 'logior-set' | 'logxor-set' | 'lsh-set'
- | 'append' | 'concat' | 'nth' | 'copy' | 'ins' | 'del'
- | 'progn' | 'if' | 'when' | 'cond'
- | 'while' | 'for' | 'foreach'
- | 'eval' | 'type'
+ SET
+ | AND | OR | NOT
+ | LT | LE | EQ | GE | GT
+ | NOTEQ
+ | ADD | SUB | MUL | DIV | MOD
+ | LOGAND | LOGIOR | LOGXOR | LSH
+ | APPEND | CONCAT | NTH | COPY | INS | DEL
+ | PROGN | IF | WHEN | COND
+ | WHILE | FOR | FOREACH
+ | EVAL | TYPE
PREDEFINED-FUNC-NAME =
PREDEFINED-FUNC-SYMBOL
;; LIST is evaluated to itself.
;; VAR is evaluated to TERM that is set to that variable.
;; FUNCALL is evaluated to TERM returned by that function.
+
+SET =
+ '<set vname="' VARNAME '">' TERM '</set>'
+;; Set the variable of name VARNAME to TERM.
+
+AND = ;; arguments unevalled
+ '<and> TERM ... </and>
+OR (unevalled-arg ...) =
+ '<or> TERM ... </or>
+NOT (arg) =
+ '<not> TERM </not>
+
+LT (arg ...) =
+ '<lt>' TERM ... '</lt>'
+
+ | 'and' | 'or' | 'not'
+ | 'lt' | 'le' | 'eq' | 'ge' | 'gt'
+ | 'noteq'
+ | 'add' | 'sub' | 'mul' | 'div' | 'mod'
+ | 'logand' | 'logior' | 'logxor' | 'lsh'
+ | 'append' | 'concat' | 'nth' | 'copy' | 'ins' | 'del'
+ | 'progn' | 'if' | 'when' | 'cond'
+ | 'while' | 'for' | 'foreach'
+ | 'eval' | 'type'