[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.1 and 1.3

version 1.1, 1999/10/29 08:06:42 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 $
   
 トークンの集合::  トークンの集合::
 トークンの定義は parse.h にある。  トークンは  (  )  , \n の4つか、あるいは「大文字で表された文法記号」である。
 T_ ではじまるマクロがトークンである。  「大文字で表された文法記号」の定義は parse.h の TOKEN(...) あるいは T_...
 それ以外のトークンは次の4つ: "(", ")",  ",",  "\n"  による。
   
 文法規則::  文法規則::
 省略記法を許すのはフラグが立っているときだけ。  省略記法を許すのはフラグが立っているときだけ。
 the start symbol は 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   -> '(' T_OX_COMMAND ',' T_SM_COMMAND ')'  ox
       | '(' T_OX_DATA ',' cmo ')'    -> ( OX_COMMAND , sm )
      | ( OX_DATA , cmo )
   
 cmo  -> '(' cmo_int32 ')'  sm
       | '(' cmo_string ')'    -> ( SM_COMMAND )
       | '(' cmo_list ')'  
   
 cmo_list -> T_CMO_LIST ',' T_INTEGER  cmo
           | T_CMO_LIST ',' T_INTEGER ',' list_of_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 )
   
 list_of_cmo -> cmo ',' list_of_cmo  cmo_null
              |                         /* 空リストも許す. */    -> CMO_NULL
   
 cmo_null -> T_CMO_NULL  cmo_int32
     -> CMO_INT32 , INTEGER
   
 cmo_int32 -> T_CMO_INT32  ',' T_INTEGER  cmo_string
 cmo_string  -> T_CMO_STRING ',' T_INTEGER ','  T_STRING    -> CMO_STRING , INTEGER , STRING
              | T_CMO_STRING ',' T_STRING            /* 省略記法 */     | CMO_STRING , STRING
           # 省略記法
   
 cmo_zz -> T_CMO_ZZ ',' T_INTEGER ',' list_of_int  cmo_mathcap
         | T_CMO_ZZ ',' T_INTEGER                    /* 省略記法 */    -> CMO_MATHCAP , cmo
   
 list_of_int -> T_INTEGER ',' list_of_int  cmo_list
              | T_INTEGER    -> 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 )
   

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

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