doc-src/Logics/logics.rao
changeset 6409 41643761bef2
parent 6407 ec60d821f3f6
equal deleted inserted replaced
6408:5b443d6331ed 6409:41643761bef2
     1 % This file was generated by 'rail' from 'logics.rai'
     1 % This file was generated by 'rail' from 'logics.rai'
     2 \rail@i {1}{ typedef : 'typedef' ( () | '(' name ')') type '=' set witness; \par type : typevarlist name ( () | '(' infix ')' ); set : string; witness : () | '(' id ')'; }
     2 \rail@i {1}{ typedef : 'typedef' ( () | '(' name ')') type '=' set witness; \par type : typevarlist name ( () | '(' infix ')' ); set : string; witness : () | '(' id ')'; }
     3 \rail@o {1}{
     3 \rail@o {1}{
     4 \rail@begin{2}{typedef}
     4 \rail@begin{2}{typedef}
     5 \rail@term{typedef}
     5 \rail@term{typedef}[]
     6 \rail@bar
     6 \rail@bar
     7 \rail@nextbar{1}
     7 \rail@nextbar{1}
     8 \rail@term{(}
     8 \rail@term{(}[]
     9 \rail@nont{name}
     9 \rail@nont{name}[]
    10 \rail@term{)}
    10 \rail@term{)}[]
    11 \rail@endbar
    11 \rail@endbar
    12 \rail@nont{type}
    12 \rail@nont{type}[]
    13 \rail@term{=}
    13 \rail@term{=}[]
    14 \rail@nont{set}
    14 \rail@nont{set}[]
    15 \rail@nont{witness}
    15 \rail@nont{witness}[]
    16 \rail@end
    16 \rail@end
    17 \rail@begin{2}{type}
    17 \rail@begin{2}{type}
    18 \rail@nont{typevarlist}
    18 \rail@nont{typevarlist}[]
    19 \rail@nont{name}
    19 \rail@nont{name}[]
    20 \rail@bar
    20 \rail@bar
    21 \rail@nextbar{1}
    21 \rail@nextbar{1}
    22 \rail@term{(}
    22 \rail@term{(}[]
    23 \rail@nont{infix}
    23 \rail@nont{infix}[]
    24 \rail@term{)}
    24 \rail@term{)}[]
    25 \rail@endbar
    25 \rail@endbar
    26 \rail@end
    26 \rail@end
    27 \rail@begin{1}{set}
    27 \rail@begin{1}{set}
    28 \rail@nont{string}
    28 \rail@nont{string}[]
    29 \rail@end
    29 \rail@end
    30 \rail@begin{2}{witness}
    30 \rail@begin{2}{witness}
    31 \rail@bar
    31 \rail@bar
    32 \rail@nextbar{1}
    32 \rail@nextbar{1}
    33 \rail@term{(}
    33 \rail@term{(}[]
    34 \rail@nont{id}
    34 \rail@nont{id}[]
    35 \rail@term{)}
    35 \rail@term{)}[]
    36 \rail@endbar
    36 \rail@endbar
    37 \rail@end
    37 \rail@end
    38 }
    38 }
    39 \rail@i {2}{ record : 'record' typevarlist name '=' parent (field +); \par parent : ( () | type '+'); field : name '::' type; }
    39 \rail@i {2}{ record : 'record' typevarlist name '=' parent (field +); \par parent : ( () | type '+'); field : name '::' type; }
    40 \rail@o {2}{
    40 \rail@o {2}{
    41 \rail@begin{2}{record}
    41 \rail@begin{2}{record}
    42 \rail@term{record}
    42 \rail@term{record}[]
    43 \rail@nont{typevarlist}
    43 \rail@nont{typevarlist}[]
    44 \rail@nont{name}
    44 \rail@nont{name}[]
    45 \rail@term{=}
    45 \rail@term{=}[]
    46 \rail@nont{parent}
    46 \rail@nont{parent}[]
    47 \rail@plus
    47 \rail@plus
    48 \rail@nont{field}
    48 \rail@nont{field}[]
    49 \rail@nextplus{1}
    49 \rail@nextplus{1}
    50 \rail@endplus
    50 \rail@endplus
    51 \rail@end
    51 \rail@end
    52 \rail@begin{2}{parent}
    52 \rail@begin{2}{parent}
    53 \rail@bar
    53 \rail@bar
    54 \rail@nextbar{1}
    54 \rail@nextbar{1}
    55 \rail@nont{type}
    55 \rail@nont{type}[]
    56 \rail@term{+}
    56 \rail@term{+}[]
    57 \rail@endbar
    57 \rail@endbar
    58 \rail@end
    58 \rail@end
    59 \rail@begin{1}{field}
    59 \rail@begin{1}{field}
    60 \rail@nont{name}
    60 \rail@nont{name}[]
    61 \rail@term{::}
    61 \rail@term{::}[]
    62 \rail@nont{type}
    62 \rail@nont{type}[]
    63 \rail@end
    63 \rail@end
    64 }
    64 }
    65 \rail@i {3}{ datatype : 'datatype' typedecls; \par typedecls: ( newtype '=' (cons + '|') ) + 'and' ; newtype : typevarlist id ( () | '(' infix ')' ) ; cons : name (argtype *) ( () | ( '(' mixfix ')' ) ) ; argtype : id | tid | ('(' typevarlist id ')') ; }
    65 \rail@i {3}{ datatype : 'datatype' typedecls; \par typedecls: ( newtype '=' (cons + '|') ) + 'and' ; newtype : typevarlist id ( () | '(' infix ')' ) ; cons : name (argtype *) ( () | ( '(' mixfix ')' ) ) ; argtype : id | tid | ('(' typevarlist id ')') ; }
    66 \rail@o {3}{
    66 \rail@o {3}{
    67 \rail@begin{1}{datatype}
    67 \rail@begin{1}{datatype}
    68 \rail@term{datatype}
    68 \rail@term{datatype}[]
    69 \rail@nont{typedecls}
    69 \rail@nont{typedecls}[]
    70 \rail@end
    70 \rail@end
    71 \rail@begin{3}{typedecls}
    71 \rail@begin{3}{typedecls}
    72 \rail@plus
    72 \rail@plus
    73 \rail@nont{newtype}
    73 \rail@nont{newtype}[]
    74 \rail@term{=}
    74 \rail@term{=}[]
    75 \rail@plus
    75 \rail@plus
    76 \rail@nont{cons}
    76 \rail@nont{cons}[]
    77 \rail@nextplus{1}
    77 \rail@nextplus{1}
    78 \rail@cterm{|}
    78 \rail@cterm{|}[]
    79 \rail@endplus
    79 \rail@endplus
    80 \rail@nextplus{2}
    80 \rail@nextplus{2}
    81 \rail@cterm{and}
    81 \rail@cterm{and}[]
    82 \rail@endplus
    82 \rail@endplus
    83 \rail@end
    83 \rail@end
    84 \rail@begin{2}{newtype}
    84 \rail@begin{2}{newtype}
    85 \rail@nont{typevarlist}
    85 \rail@nont{typevarlist}[]
    86 \rail@nont{id}
    86 \rail@nont{id}[]
    87 \rail@bar
    87 \rail@bar
    88 \rail@nextbar{1}
    88 \rail@nextbar{1}
    89 \rail@term{(}
    89 \rail@term{(}[]
    90 \rail@nont{infix}
    90 \rail@nont{infix}[]
    91 \rail@term{)}
    91 \rail@term{)}[]
    92 \rail@endbar
    92 \rail@endbar
    93 \rail@end
    93 \rail@end
    94 \rail@begin{3}{cons}
    94 \rail@begin{3}{cons}
    95 \rail@nont{name}
    95 \rail@nont{name}[]
    96 \rail@bar
    96 \rail@bar
    97 \rail@nextbar{1}
    97 \rail@nextbar{1}
    98 \rail@plus
    98 \rail@plus
    99 \rail@nont{argtype}
    99 \rail@nont{argtype}[]
   100 \rail@nextplus{2}
   100 \rail@nextplus{2}
   101 \rail@endplus
   101 \rail@endplus
   102 \rail@endbar
   102 \rail@endbar
   103 \rail@bar
   103 \rail@bar
   104 \rail@nextbar{1}
   104 \rail@nextbar{1}
   105 \rail@term{(}
   105 \rail@term{(}[]
   106 \rail@nont{mixfix}
   106 \rail@nont{mixfix}[]
   107 \rail@term{)}
   107 \rail@term{)}[]
   108 \rail@endbar
   108 \rail@endbar
   109 \rail@end
   109 \rail@end
   110 \rail@begin{3}{argtype}
   110 \rail@begin{3}{argtype}
   111 \rail@bar
   111 \rail@bar
   112 \rail@nont{id}
   112 \rail@nont{id}[]
   113 \rail@nextbar{1}
   113 \rail@nextbar{1}
   114 \rail@nont{tid}
   114 \rail@nont{tid}[]
   115 \rail@nextbar{2}
   115 \rail@nextbar{2}
   116 \rail@term{(}
   116 \rail@term{(}[]
   117 \rail@nont{typevarlist}
   117 \rail@nont{typevarlist}[]
   118 \rail@nont{id}
   118 \rail@nont{id}[]
   119 \rail@term{)}
   119 \rail@term{)}[]
   120 \rail@endbar
   120 \rail@endbar
   121 \rail@end
   121 \rail@end
   122 }
   122 }