doc-src/Ref/ref.rao
changeset 3213 4bbeb1f58a23
parent 3129 dd3666cbc764
child 4316 86ac9153e660
equal deleted inserted replaced
3212:567c093297e6 3213:4bbeb1f58a23
     1 % This file was generated by 'rail' from 'ref.rai'
     1 % This file was generated by 'rail' from 'ref.rai'
     2 \rail@t {lbrace}
     2 \rail@t {lbrace}
     3 \rail@t {rbrace}
     3 \rail@t {rbrace}
     4 \rail@i {1}{ \par theoryDef : id '=' (name + '+') ('+' extension | ()) ; \par name: id | string ; \par extension : (section +) 'end' ( () | ml ) ; \par section : classes | default | types | arities | consts | syntax | trans | defs | constdefs | rules | axclass | instance | oracle ; \par classes : 'classes' ( classDecl + ) ; \par classDecl : (id (() | '<' (id + ','))) ; \par default : 'default' sort ; \par sort : id | lbrace (id * ',') rbrace ; \par types : 'types' ( ( typeDecl ( () | '(' infix ')' ) ) + ) ; \par infix : ( 'infixr' | 'infixl' ) nat ; \par typeDecl : typevarlist name ( () | '=' ( string | type ) ); \par typevarlist : () | tid | '(' ( tid + ',' ) ')'; \par type : simpleType | '(' type ')' | type '=>' type | '[' ( type + "," ) ']' '=>' type; \par simpleType: id | ( tid ( () | '::' id ) ) | '(' ( type + "," ) ')' id | simpleType id ; \par arities : 'arities' ((name + ',') '::' arity +) ; \par arity : ( () | '(' (sort + ',') ')' ) sort ; \par consts : 'consts' ( mixfixConstDecl + ) ; \par syntax : 'syntax' (() | mode) ( mixfixConstDecl + ); \par mode : '(' name (() | 'output') ')' ; \par mixfixConstDecl : constDecl (() | ( '(' mixfix ')' )) ; \par constDecl : ( name + ',') '::' (string | type); \par mixfix : string ( () | ( () | ('[' (nat + ',') ']')) nat ) | ( 'infixr' | 'infixl' ) (() | string) nat | 'binder' string nat ; \par trans : 'translations' ( pat ( '==' | '=>' | '<=' ) pat + ) ; \par pat : ( () | ( '(' id ')' ) ) string; \par rules : 'rules' (( id string ) + ) ; \par defs : 'defs' (( id string ) + ) ; \par constdefs : 'constdefs' (id '::' (string | type) string +) ; \par axclass : 'axclass' classDecl (() | ( id string ) +) ; \par instance : 'instance' ( name '<' name | name '::' arity) witness ; \par witness : (() | '(' ((string | longident) + ',') ')') (() | verbatim) ; \par oracle : 'oracle' name ; \par ml : 'ML' text ; \par }
     4 \rail@i {1}{ \par theoryDef : id '=' (name + '+') ('+' extension | ()) ; \par name: id | string ; \par extension : (section +) 'end' ( () | ml ) ; \par section : classes | default | types | arities | consts | syntax | trans | defs | constdefs | rules | axclass | instance | oracle ; \par classes : 'classes' ( classDecl + ) ; \par classDecl : (id (() | '<' (id + ','))) ; \par default : 'default' sort ; \par sort : id | lbrace (id * ',') rbrace ; \par types : 'types' ( ( typeDecl ( () | '(' infix ')' ) ) + ) ; \par infix : ( 'infixr' | 'infixl' ) (() | string) nat ; \par typeDecl : typevarlist name ( () | '=' ( string | type ) ); \par typevarlist : () | tid | '(' ( tid + ',' ) ')'; \par type : simpleType | '(' type ')' | type '=>' type | '[' ( type + "," ) ']' '=>' type; \par simpleType: id | ( tid ( () | '::' id ) ) | '(' ( type + "," ) ')' id | simpleType id ; \par arities : 'arities' ((name + ',') '::' arity +) ; \par arity : ( () | '(' (sort + ',') ')' ) sort ; \par consts : 'consts' ( mixfixConstDecl + ) ; \par syntax : 'syntax' (() | mode) ( mixfixConstDecl + ); \par mode : '(' name (() | 'output') ')' ; \par mixfixConstDecl : constDecl (() | ( '(' mixfix ')' )) ; \par constDecl : ( name + ',') '::' (string | type); \par mixfix : string ( () | ( () | ('[' (nat + ',') ']')) nat ) | infix | 'binder' string nat ; \par trans : 'translations' ( pat ( '==' | '=>' | '<=' ) pat + ) ; \par pat : ( () | ( '(' id ')' ) ) string; \par rules : 'rules' (( id string ) + ) ; \par defs : 'defs' (( id string ) + ) ; \par constdefs : 'constdefs' (id '::' (string | type) string +) ; \par axclass : 'axclass' classDecl (() | ( id string ) +) ; \par instance : 'instance' ( name '<' name | name '::' arity) witness ; \par witness : (() | '(' ((string | longident) + ',') ')') (() | verbatim) ; \par oracle : 'oracle' name ; \par ml : 'ML' text ; \par }
     5 \rail@o {1}{
     5 \rail@o {1}{
     6 \rail@begin{2}{theoryDef}
     6 \rail@begin{2}{theoryDef}
     7 \rail@nont{id}[]
     7 \rail@nont{id}[]
     8 \rail@term{=}[]
     8 \rail@term{=}[]
     9 \rail@plus
     9 \rail@plus
   120 \rail@bar
   120 \rail@bar
   121 \rail@term{infixr}[]
   121 \rail@term{infixr}[]
   122 \rail@nextbar{1}
   122 \rail@nextbar{1}
   123 \rail@term{infixl}[]
   123 \rail@term{infixl}[]
   124 \rail@endbar
   124 \rail@endbar
       
   125 \rail@bar
       
   126 \rail@nextbar{1}
       
   127 \rail@nont{string}[]
       
   128 \rail@endbar
   125 \rail@nont{nat}[]
   129 \rail@nont{nat}[]
   126 \rail@end
   130 \rail@end
   127 \rail@begin{3}{typeDecl}
   131 \rail@begin{3}{typeDecl}
   128 \rail@nont{typevarlist}[]
   132 \rail@nont{typevarlist}[]
   129 \rail@nont{name}[]
   133 \rail@nont{name}[]
   271 \rail@nont{string}[]
   275 \rail@nont{string}[]
   272 \rail@nextbar{1}
   276 \rail@nextbar{1}
   273 \rail@nont{type}[]
   277 \rail@nont{type}[]
   274 \rail@endbar
   278 \rail@endbar
   275 \rail@end
   279 \rail@end
   276 \rail@begin{7}{mixfix}
   280 \rail@begin{6}{mixfix}
   277 \rail@bar
   281 \rail@bar
   278 \rail@nont{string}[]
   282 \rail@nont{string}[]
   279 \rail@bar
   283 \rail@bar
   280 \rail@nextbar{1}
   284 \rail@nextbar{1}
   281 \rail@bar
   285 \rail@bar
   289 \rail@term{]}[]
   293 \rail@term{]}[]
   290 \rail@endbar
   294 \rail@endbar
   291 \rail@nont{nat}[]
   295 \rail@nont{nat}[]
   292 \rail@endbar
   296 \rail@endbar
   293 \rail@nextbar{4}
   297 \rail@nextbar{4}
   294 \rail@bar
   298 \rail@nont{infix}[]
   295 \rail@term{infixr}[]
       
   296 \rail@nextbar{5}
   299 \rail@nextbar{5}
   297 \rail@term{infixl}[]
       
   298 \rail@endbar
       
   299 \rail@bar
       
   300 \rail@nextbar{5}
       
   301 \rail@nont{string}[]
       
   302 \rail@endbar
       
   303 \rail@nont{nat}[]
       
   304 \rail@nextbar{6}
       
   305 \rail@term{binder}[]
   300 \rail@term{binder}[]
   306 \rail@nont{string}[]
   301 \rail@nont{string}[]
   307 \rail@nont{nat}[]
   302 \rail@nont{nat}[]
   308 \rail@endbar
   303 \rail@endbar
   309 \rail@end
   304 \rail@end