[BACK]Return to bnf CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_math / documents

File: [local] / OpenXM / src / ox_math / documents / Attic / bnf (download)

Revision 1.3, Tue Nov 2 19:02:29 1999 UTC (24 years, 8 months ago) by ohara
Branch: MAIN
Changes since 1.2: +88 -47 lines

rewrite and add some rules.

$OpenXM: OpenXM/src/ox_math/documents/bnf,v 1.3 1999/11/02 19:02:29 ohara Exp $

トークンの集合::
トークンは  (  )  , \n の4つか、あるいは「大文字で表された文法記号」である。
「大文字で表された文法記号」の定義は parse.h の TOKEN(...) あるいは T_... 
による。

文法規則::
省略記法を許すのはフラグが立っているときだけ。
開始記号は line である。
トークンの境界は空白で分けてある。
-> | {}* は拡張BNFの記号である。

The following BNFs define the grammer of Common Math Objects:

line
  -> ox \n
   | cmo \n
   | \n

ox
  -> ( OX_COMMAND , sm )
   | ( OX_DATA , cmo )

sm
  -> ( SM_COMMAND )

cmo
  -> ( cmo_null )
   | ( cmo_int32 )
   | ( cmo_string )
   | ( cmo_mathcap )
   | ( cmo_list )
   | ( cmo_zero )
   | ( cmo_zz )
   | ( cmo_monomial32 )
   | ( cmo_dms_generic )
   | ( cmo_ring_by_name )
   | ( cmo_distributed_polynomial )
   | ( cmo_error2 )

cmo_null
  -> CMO_NULL

cmo_int32
  -> CMO_INT32 , INTEGER

cmo_string
  -> CMO_STRING , INTEGER , STRING
   | CMO_STRING , STRING
        # 省略記法

cmo_mathcap
  -> CMO_MATHCAP , cmo

cmo_list
  -> CMO_LIST , INTEGER  { , cmo }*
   | CMO_LIST { , cmo }*
        # 省略記法

cmo_monomial32
  -> CMO_MONOMIAL32 , INTEGER { , INTEGER }* , coef

cmo_zz
  -> CMO_ZZ , INTEGER { , INTEGER }*
   | CMO_ZZ , INTEGER
        # 省略記法

cmo_zero
  -> CMO_ZERO

cmo_dms_generic
  -> CMO_DMS_GENERIC

cmo_ring_by_name
  -> CMO_RING_BY_NAME , ( cmo_string )

cmo_distributed_polynomial
  -> CMO_DISTRIBUTED_POLYNOMIAL , INTEGER , ringdefinition { , monomial }*
        # リストの各要素は monomial である. 空リストの場合もOK? 
   | CMO_DISTRIBUTED_POLYNOMIAL , ringdefinition  { , monomial }*
        # 省略記法

cmo_error2
  -> CMO_ERROR2 , cmo

monomial
  -> ( cmo_zero )
   | ( cmo_monomial32 )

ringdefinition
  -> ( cmo_dms_generic )
   | ( cmo_ring_by_name )

coef
  -> ( cmo_zz )
   | ( cmo_int32 )