TERM *
'</defun>'
-DEFMACRO =
- '<defmacro mname="' MACRONAME '">'
- ARGS ?
- TERM *
- '</defmacro>'
-
ARGS =
- '<args>' SYMBOL * '</args>' | '<args/>'
+ '<args>' [ SYMBOL | VAR ] * OPTIONAL ? REST ? '</args>'
+
+OPTIONAL =
+ '<optional/>' [ SYMBOL | VAR ] *
+
+REST =
+ '<rest/>' [ SYMBOL | VAR ]
DEFVAR = DEFVAR-INT DEFVAR-STR DEFVAR-BOOL
DIRECT = INT STR BOOL SYMBOL LIST
INT =
- '<const type="integer">' INTEGER '</const>'
+ '<integer>' INTEGER '</integer>'
STR =
- '<const type="string">' STRING '</const>'
+ '<string>' STRING '</string>'
BOOL =
- '<const type="boolean">' [ 'true' | 'false' ] </const>
+ '<boolean>' [ 'true' | 'false' ] </boolean>
SYMBOL =
- '<const type="symbol">' NAME '</const>'
+ '<symbol>' NAME '</symbol>'
LIST =
- '<const type="list">' DIRECT * '</const>' | <const type="list"/>
+ '<list>' DIRECT * '</list>' | <list/>
FUNCALL =
- '<funcall id="' [ FUNCNAME | MACRONAME ] '">' TERM * '</funcall>'
- | '<funcall fname="' PREDEFINED-FUNC-NAME '">' TERM * '</funcall>'
- | '<funcall mname="' PREDEFINED-MACRO-NAME '">' TERM * '</funcall>'
+ '<funcall fname="' PREDEFINED-FUNC-NAME '">' TERM * '</funcall>'
| '<' PREDEFINED-FUNC-SYMBOL '>' TERM * '</' PREDEFINED-FUNC-SYMBOL '>'
| '<' PREDEFINED-MACRO-SYMBOL '>' TERM * '</' PREDEFINED-MACRO-SYMBOL '>'