概要
XLの12種類のデータ型について解説する。
データの記述形式はBNFによるが以下のトークンを前提としている。
XLT_SEXP_lisp ::= XLT_NULL
| XLT_ERROR
| XLT_PAIR
| XLT_SYMBOL
| XLT_STRING
| XLT_INTEGER
| XLT_FLOAT
| XLT_FUNC
| XLT_DELAY
| XLT_PTR
| XLT_RAW
| XLT_ENV
;
また、
chars
は文字列。
digit_chars digit_chars_with_0
は、前者は頭に0のない数字、後者はあたまに0があってもかまわない数字の列をあらわす。
hex_digit_chars
は'0'〜'9'の他に、'a'〜'f' および'A' 〜'F'を組み合わせた16進文字列である。
sp
は、スペース、タブ、改行といった空白文字の列である。
最後にXML表現の中に、LISP表現を埋め込む方法とその逆を述べる。前者は、' ^ '文字または ( を認識てパーザはXML形式からLISP形式に解釈を変更する。つまり、
LISP_in_XML ::= '^' XLT_SEXP_lisp
| ^"'('" XLT_SEXP_lisp )
;
となる。一方、XMLへの認識の変更は、'<'の認識による。つまり、
XML_in_LISP ::= XLT_LIST_xml
である。
▲