Annotation of OpenXM/src/ox_math/documents/bnf, Revision 1.2
1.1 ohara 1: ## $OpenXM$
2:
3: トークンの集合::
1.2 ! ohara 4: トークンは "(", ")", ",", "\n" の4つか、あるいはTOKEN(...) である。
! 5: TOKEN(...)の定義は parse.h にある。
1.1 ohara 6:
7: 文法規則::
8: 省略記法を許すのはフラグが立っているときだけ。
1.2 ! ohara 9: 開始記号は line である。
1.1 ohara 10:
11: The following BNFs define the grammer of Common Math Objects:
12:
13: line -> ox '\n'
14: | cmo '\n'
15: | '\n'
16:
1.2 ! ohara 17: ox -> '(' TOKEN(OX_COMMAND) ',' sm ')'
! 18: | '(' TOKEN(OX_DATA) ',' cmo ')'
! 19:
! 20: sm -> '(' TOKEN(SM_COMMAND) ')'
1.1 ohara 21:
22: cmo -> '(' cmo_int32 ')'
23: | '(' cmo_string ')'
24: | '(' cmo_list ')'
25:
1.2 ! ohara 26: cmo_null -> TOKEN(CMO_NULL)
! 27:
! 28: cmo_int32 -> TOKEN(CMO_INT32 ) ',' T_INTEGER
! 29:
! 30: cmo_string -> TOKEN(CMO_STRING) ',' T_INTEGER ',' T_STRING
! 31: | TOKEN(CMO_STRING) ',' T_STRING /* 省略記法 */
! 32:
! 33: cmo_mathcap -> TOKEN(CMO_MATHCAP) ',' cmo
! 34:
! 35: cmo_list -> TOKEN(CMO_LIST) ',' T_INTEGER /* 空リスト */
! 36: | TOKEN(CMO_LIST) ',' T_INTEGER ',' list_of_cmo
! 37: | list_of_cmo /* 省略記法 */
1.1 ohara 38:
39: list_of_cmo -> cmo ',' list_of_cmo
40: | /* 空リストも許す. */
41:
1.2 ! ohara 42: cmo_monomial32 -> TOKEN(CMO_MONOMIAL32) ',' T_INTEGER ',' list_of_int ',' cmo
1.1 ohara 43:
1.2 ! ohara 44: cmo_zz -> TOKEN(CMO_ZZ) ',' T_INTEGER ',' list_of_int
! 45: | TOKEN(CMO_ZZ) ',' T_INTEGER /* 省略記法 */
1.1 ohara 46:
47: list_of_int -> T_INTEGER ',' list_of_int
48: | T_INTEGER
49:
1.2 ! ohara 50: cmo_zero -> TOKEN(CMO_ZERO)
! 51:
! 52: cmo_dms_generic -> TOKEN(CMO_DMS_GENERIC)
! 53:
! 54: cmo_ring_by_name -> TOKEN(CMO_MATHCAP) ',' cmo /* ただし cmo_string でなければならない */
! 55:
! 56: cmo_error2 -> TOKEN(CMO_ERROR2) ',' cmo
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>