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

Diff for /OpenXM/src/ox_math/documents/Attic/bnf between version 1.2 and 1.3

version 1.2, 1999/11/02 06:12:00 version 1.3, 1999/11/02 19:02:29
Line 1 
Line 1 
 ## $OpenXM$  $OpenXM: OpenXM/src/ox_math/documents/bnf,v 1.2 1999/11/02 06:12:00 ohara Exp $
   
 トークンの集合::  トークンの集合::
 トークンは  "(", ")",  ",",  "\n" の4つか、あるいはTOKEN(...) である。  トークンは  (  )  , \n の4つか、あるいは「大文字で表された文法記号」である。
 TOKEN(...)の定義は parse.h にある。  「大文字で表された文法記号」の定義は parse.h の TOKEN(...) あるいは T_...
   による。
   
 文法規則::  文法規則::
 省略記法を許すのはフラグが立っているときだけ。  省略記法を許すのはフラグが立っているときだけ。
 開始記号は line である。  開始記号は line である。
   トークンの境界は空白で分けてある。
   -> | {}* は拡張BNFの記号である。
   
 The following BNFs define the grammer of Common Math Objects:  The following BNFs define the grammer of Common Math Objects:
   
 line -> ox '\n'  line
       | cmo '\n'    -> ox \n
       | '\n'     | cmo \n
      | \n
   
 ox   -> '(' TOKEN(OX_COMMAND) ',' sm ')'  ox
       | '(' TOKEN(OX_DATA) ',' cmo ')'    -> ( OX_COMMAND , sm )
      | ( OX_DATA , cmo )
   
 sm   -> '(' TOKEN(SM_COMMAND) ')'  sm
     -> ( SM_COMMAND )
   
 cmo  -> '(' cmo_int32 ')'  cmo
       | '(' cmo_string ')'    -> ( cmo_null )
       | '(' cmo_list ')'     | ( 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 -> TOKEN(CMO_NULL)  cmo_null
     -> CMO_NULL
   
 cmo_int32 -> TOKEN(CMO_INT32 ) ',' T_INTEGER  cmo_int32
     -> CMO_INT32 , INTEGER
   
 cmo_string  -> TOKEN(CMO_STRING) ',' T_INTEGER ','  T_STRING  cmo_string
              | TOKEN(CMO_STRING) ',' T_STRING            /* 省略記法 */    -> CMO_STRING , INTEGER , STRING
      | CMO_STRING , STRING
           # 省略記法
   
 cmo_mathcap -> TOKEN(CMO_MATHCAP) ',' cmo  cmo_mathcap
     -> CMO_MATHCAP , cmo
   
 cmo_list -> TOKEN(CMO_LIST) ',' T_INTEGER                /* 空リスト */  cmo_list
           | TOKEN(CMO_LIST) ',' T_INTEGER ',' list_of_cmo    -> CMO_LIST , INTEGER  { , cmo }*
           | list_of_cmo                             /* 省略記法 */     | CMO_LIST { , cmo }*
           # 省略記法
   
 list_of_cmo -> cmo ',' list_of_cmo  cmo_monomial32
              |                         /* 空リストも許す. */    -> CMO_MONOMIAL32 , INTEGER { , INTEGER }* , coef
   
 cmo_monomial32 -> TOKEN(CMO_MONOMIAL32) ',' T_INTEGER ',' list_of_int ',' cmo  cmo_zz
     -> CMO_ZZ , INTEGER { , INTEGER }*
      | CMO_ZZ , INTEGER
           # 省略記法
   
 cmo_zz -> TOKEN(CMO_ZZ) ',' T_INTEGER ',' list_of_int  cmo_zero
         | TOKEN(CMO_ZZ) ',' T_INTEGER                    /* 省略記法 */    -> CMO_ZERO
   
 list_of_int -> T_INTEGER ',' list_of_int  cmo_dms_generic
              | T_INTEGER    -> CMO_DMS_GENERIC
   
 cmo_zero -> TOKEN(CMO_ZERO)  cmo_ring_by_name
     -> CMO_RING_BY_NAME , ( cmo_string )
   
 cmo_dms_generic -> TOKEN(CMO_DMS_GENERIC)  cmo_distributed_polynomial
     -> CMO_DISTRIBUTED_POLYNOMIAL , INTEGER , ringdefinition { , monomial }*
           # リストの各要素は monomial である. 空リストの場合もOK?
      | CMO_DISTRIBUTED_POLYNOMIAL , ringdefinition  { , monomial }*
           # 省略記法
   
 cmo_ring_by_name -> TOKEN(CMO_MATHCAP) ',' cmo  /* ただし cmo_string でなければならない */  cmo_error2
     -> CMO_ERROR2 , cmo
   
 cmo_error2 -> TOKEN(CMO_ERROR2) ',' cmo  
   
   monomial
     -> ( cmo_zero )
      | ( cmo_monomial32 )
   
   ringdefinition
     -> ( cmo_dms_generic )
      | ( cmo_ring_by_name )
   
   coef
     -> ( cmo_zz )
      | ( cmo_int32 )
   

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>