## $OpenXM: OpenXM/src/ox_math/documents/bnf,v 1.1 1999/10/29 08:06:42 ohara Exp $
トークンの集合::
トークンの定義は parse.h にある。
T_ ではじまるマクロがトークンである。
それ以外のトークンは次の4つ: "(", ")", ",", "\n"
文法規則::
省略記法を許すのはフラグが立っているときだけ。
the start symbol は line である。
The following BNFs define the grammer of Common Math Objects:
line -> ox '\n'
| cmo '\n'
| '\n'
ox -> '(' T_OX_COMMAND ',' T_SM_COMMAND ')'
| '(' T_OX_DATA ',' cmo ')'
cmo -> '(' cmo_int32 ')'
| '(' cmo_string ')'
| '(' cmo_list ')'
cmo_list -> T_CMO_LIST ',' T_INTEGER
| T_CMO_LIST ',' T_INTEGER ',' list_of_cmo /* 空リストも許す. */
list_of_cmo -> cmo ',' list_of_cmo
| /* 空リストも許す. */
cmo_null -> T_CMO_NULL
cmo_int32 -> T_CMO_INT32 ',' T_INTEGER
cmo_string -> T_CMO_STRING ',' T_INTEGER ',' T_STRING
| T_CMO_STRING ',' T_STRING /* 省略記法 */
cmo_zz -> T_CMO_ZZ ',' T_INTEGER ',' list_of_int
| T_CMO_ZZ ',' T_INTEGER /* 省略記法 */
list_of_int -> T_INTEGER ',' list_of_int
| T_INTEGER