Ignore:
Timestamp:
Nov 27, 2017, 1:09:38 PM (7 years ago)
Author:
chronos
Message:
  • Added: Rule can be set as optional or repetitive.
  • Added: Support for nested rule item sublist.
Location:
branches/generator
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/generator

    • Property svn:ignore
      •  

        old new  
        22generator.lps
        33lib
         4heaptrclog.trc
  • branches/generator/pascal.grm

    r116 r117  
    88        <RuleItem>
    99          <Type>0</Type>
     10          <Optional>0</Optional>
     11          <Repetitive>0</Repetitive>
    1012          <Terminal>begin</Terminal>
    1113        </RuleItem>
    1214        <RuleItem>
    1315          <Type>1</Type>
     16          <Optional>-1</Optional>
     17          <Repetitive>-1</Repetitive>
    1418          <NonTerminal>Statement</NonTerminal>
    1519        </RuleItem>
    1620        <RuleItem>
    1721          <Type>0</Type>
     22          <Optional>0</Optional>
     23          <Repetitive>0</Repetitive>
    1824          <Terminal>end</Terminal>
    1925        </RuleItem>
     
    2632        <RuleItem>
    2733          <Type>0</Type>
     34          <Optional>0</Optional>
     35          <Repetitive>0</Repetitive>
    2836          <Terminal>if</Terminal>
    2937        </RuleItem>
    3038        <RuleItem>
    3139          <Type>1</Type>
     40          <Optional>0</Optional>
     41          <Repetitive>0</Repetitive>
    3242          <NonTerminal>Expression</NonTerminal>
    3343        </RuleItem>
    3444        <RuleItem>
    3545          <Type>0</Type>
     46          <Optional>0</Optional>
     47          <Repetitive>0</Repetitive>
    3648          <Terminal>then</Terminal>
    3749        </RuleItem>
    3850        <RuleItem>
    3951          <Type>1</Type>
     52          <Optional>0</Optional>
     53          <Repetitive>0</Repetitive>
    4054          <NonTerminal>Statement</NonTerminal>
    4155        </RuleItem>
    4256        <RuleItem>
    43           <Type>0</Type>
    44           <Terminal>else</Terminal>
    45         </RuleItem>
    46         <RuleItem>
    47           <Type>1</Type>
     57          <Type>2</Type>
     58          <Optional>-1</Optional>
     59          <Repetitive>0</Repetitive>
     60          <SubItems>
     61            <Type>0</Type>
     62            <RuleItem>
     63              <Type>0</Type>
     64              <Optional>0</Optional>
     65              <Repetitive>0</Repetitive>
     66              <Terminal>else</Terminal>
     67            </RuleItem>
     68            <RuleItem>
     69              <Type>1</Type>
     70              <Optional>0</Optional>
     71              <Repetitive>0</Repetitive>
     72              <NonTerminal>Statement</NonTerminal>
     73            </RuleItem>
     74          </SubItems>
     75        </RuleItem>
     76      </RuleItems>
     77    </Rule>
     78    <Rule>
     79      <Name>WhileDo</Name>
     80      <RuleItems>
     81        <Type>0</Type>
     82        <RuleItem>
     83          <Type>0</Type>
     84          <Optional>0</Optional>
     85          <Repetitive>0</Repetitive>
     86          <Terminal>while</Terminal>
     87        </RuleItem>
     88        <RuleItem>
     89          <Type>1</Type>
     90          <Optional>0</Optional>
     91          <Repetitive>0</Repetitive>
     92          <NonTerminal>Expression</NonTerminal>
     93        </RuleItem>
     94        <RuleItem>
     95          <Type>0</Type>
     96          <Optional>0</Optional>
     97          <Repetitive>0</Repetitive>
     98          <Terminal>do</Terminal>
     99        </RuleItem>
     100        <RuleItem>
     101          <Type>1</Type>
     102          <Optional>0</Optional>
     103          <Repetitive>0</Repetitive>
    48104          <NonTerminal>Statement</NonTerminal>
    49105        </RuleItem>
    50         <RuleItem>
    51           <Type>0</Type>
     106      </RuleItems>
     107    </Rule>
     108    <Rule>
     109      <Name>RepeatUntil</Name>
     110      <RuleItems>
     111        <Type>0</Type>
     112        <RuleItem>
     113          <Type>0</Type>
     114          <Optional>0</Optional>
     115          <Repetitive>0</Repetitive>
     116          <Terminal>repeat</Terminal>
     117        </RuleItem>
     118        <RuleItem>
     119          <Type>1</Type>
     120          <Optional>0</Optional>
     121          <Repetitive>0</Repetitive>
     122          <NonTerminal>Statement</NonTerminal>
     123        </RuleItem>
     124        <RuleItem>
     125          <Type>0</Type>
     126          <Optional>0</Optional>
     127          <Repetitive>0</Repetitive>
     128          <Terminal>until</Terminal>
     129        </RuleItem>
     130        <RuleItem>
     131          <Type>1</Type>
     132          <Optional>0</Optional>
     133          <Repetitive>0</Repetitive>
     134          <NonTerminal>Expression</NonTerminal>
     135        </RuleItem>
     136      </RuleItems>
     137    </Rule>
     138    <Rule>
     139      <Name>ForToDo</Name>
     140      <RuleItems>
     141        <Type>0</Type>
     142        <RuleItem>
     143          <Type>0</Type>
     144          <Optional>0</Optional>
     145          <Repetitive>0</Repetitive>
     146          <Terminal>for</Terminal>
     147        </RuleItem>
     148        <RuleItem>
     149          <Type>1</Type>
     150          <Optional>0</Optional>
     151          <Repetitive>0</Repetitive>
     152          <NonTerminal>VariableRef</NonTerminal>
     153        </RuleItem>
     154        <RuleItem>
     155          <Type>0</Type>
     156          <Optional>0</Optional>
     157          <Repetitive>0</Repetitive>
     158          <Terminal>:=</Terminal>
     159        </RuleItem>
     160        <RuleItem>
     161          <Type>1</Type>
     162          <Optional>0</Optional>
     163          <Repetitive>0</Repetitive>
     164          <NonTerminal>Expression</NonTerminal>
     165        </RuleItem>
     166        <RuleItem>
     167          <Type>0</Type>
     168          <Optional>0</Optional>
     169          <Repetitive>0</Repetitive>
     170          <Terminal>to</Terminal>
     171        </RuleItem>
     172        <RuleItem>
     173          <Type>1</Type>
     174          <Optional>0</Optional>
     175          <Repetitive>0</Repetitive>
     176          <NonTerminal>Expression</NonTerminal>
     177        </RuleItem>
     178        <RuleItem>
     179          <Type>0</Type>
     180          <Optional>0</Optional>
     181          <Repetitive>0</Repetitive>
     182          <Terminal>do</Terminal>
     183        </RuleItem>
     184        <RuleItem>
     185          <Type>1</Type>
     186          <Optional>0</Optional>
     187          <Repetitive>0</Repetitive>
     188          <NonTerminal>Statement</NonTerminal>
     189        </RuleItem>
     190      </RuleItems>
     191    </Rule>
     192    <Rule>
     193      <Name>WithDo</Name>
     194      <RuleItems>
     195        <Type>0</Type>
     196        <RuleItem>
     197          <Type>0</Type>
     198          <Optional>0</Optional>
     199          <Repetitive>0</Repetitive>
     200          <Terminal>with</Terminal>
     201        </RuleItem>
     202        <RuleItem>
     203          <Type>1</Type>
     204          <Optional>0</Optional>
     205          <Repetitive>0</Repetitive>
     206          <NonTerminal>VariableRef</NonTerminal>
     207        </RuleItem>
     208        <RuleItem>
     209          <Type>0</Type>
     210          <Optional>0</Optional>
     211          <Repetitive>0</Repetitive>
     212          <Terminal>do</Terminal>
     213        </RuleItem>
     214        <RuleItem>
     215          <Type>1</Type>
     216          <Optional>0</Optional>
     217          <Repetitive>0</Repetitive>
     218          <NonTerminal>Statement</NonTerminal>
     219        </RuleItem>
     220      </RuleItems>
     221    </Rule>
     222    <Rule>
     223      <Name>CaseOf</Name>
     224      <RuleItems>
     225        <Type>0</Type>
     226        <RuleItem>
     227          <Type>0</Type>
     228          <Optional>0</Optional>
     229          <Repetitive>0</Repetitive>
     230          <Terminal>case</Terminal>
     231        </RuleItem>
     232        <RuleItem>
     233          <Type>1</Type>
     234          <Optional>0</Optional>
     235          <Repetitive>0</Repetitive>
     236          <NonTerminal>Expression</NonTerminal>
     237        </RuleItem>
     238        <RuleItem>
     239          <Type>0</Type>
     240          <Optional>0</Optional>
     241          <Repetitive>0</Repetitive>
     242          <Terminal>of</Terminal>
     243        </RuleItem>
     244        <RuleItem>
     245          <Type>0</Type>
     246          <Optional>0</Optional>
     247          <Repetitive>0</Repetitive>
    52248          <Terminal>end</Terminal>
    53249        </RuleItem>
     
    55251    </Rule>
    56252    <Rule>
    57       <Name>WhileDo</Name>
    58       <RuleItems>
    59         <Type>0</Type>
    60         <RuleItem>
    61           <Type>0</Type>
    62           <Terminal>while</Terminal>
    63         </RuleItem>
    64         <RuleItem>
    65           <Type>1</Type>
     253      <Name>Assignment</Name>
     254      <RuleItems>
     255        <Type>0</Type>
     256        <RuleItem>
     257          <Type>1</Type>
     258          <Optional>0</Optional>
     259          <Repetitive>0</Repetitive>
     260          <NonTerminal>VariableRef</NonTerminal>
     261        </RuleItem>
     262        <RuleItem>
     263          <Type>0</Type>
     264          <Optional>0</Optional>
     265          <Repetitive>0</Repetitive>
     266          <Terminal>:=</Terminal>
     267        </RuleItem>
     268        <RuleItem>
     269          <Type>1</Type>
     270          <Optional>0</Optional>
     271          <Repetitive>0</Repetitive>
    66272          <NonTerminal>Expression</NonTerminal>
    67273        </RuleItem>
    68         <RuleItem>
    69           <Type>0</Type>
     274      </RuleItems>
     275    </Rule>
     276    <Rule>
     277      <Name>Statement</Name>
     278      <RuleItems>
     279        <Type>0</Type>
     280        <RuleItem>
     281          <Type>1</Type>
     282          <Optional>0</Optional>
     283          <Repetitive>0</Repetitive>
     284          <NonTerminal>BeginEnd</NonTerminal>
     285        </RuleItem>
     286        <RuleItem>
     287          <Type>1</Type>
     288          <Optional>0</Optional>
     289          <Repetitive>0</Repetitive>
     290          <NonTerminal>IfThenElse</NonTerminal>
     291        </RuleItem>
     292        <RuleItem>
     293          <Type>1</Type>
     294          <Optional>0</Optional>
     295          <Repetitive>0</Repetitive>
     296          <NonTerminal>WhileDo</NonTerminal>
     297        </RuleItem>
     298        <RuleItem>
     299          <Type>1</Type>
     300          <Optional>0</Optional>
     301          <Repetitive>0</Repetitive>
     302          <NonTerminal>RepeatUntil</NonTerminal>
     303        </RuleItem>
     304        <RuleItem>
     305          <Type>1</Type>
     306          <Optional>0</Optional>
     307          <Repetitive>0</Repetitive>
     308          <NonTerminal>ForToDo</NonTerminal>
     309        </RuleItem>
     310        <RuleItem>
     311          <Type>1</Type>
     312          <Optional>0</Optional>
     313          <Repetitive>0</Repetitive>
     314          <NonTerminal>WithDo</NonTerminal>
     315        </RuleItem>
     316        <RuleItem>
     317          <Type>1</Type>
     318          <Optional>0</Optional>
     319          <Repetitive>0</Repetitive>
     320          <NonTerminal>CaseOf</NonTerminal>
     321        </RuleItem>
     322        <RuleItem>
     323          <Type>1</Type>
     324          <Optional>0</Optional>
     325          <Repetitive>0</Repetitive>
     326          <NonTerminal>Assignment</NonTerminal>
     327        </RuleItem>
     328      </RuleItems>
     329    </Rule>
     330    <Rule>
     331      <Name>Expression</Name>
     332      <RuleItems>
     333        <Type>0</Type>
     334      </RuleItems>
     335    </Rule>
     336    <Rule>
     337      <Name>VariableRef</Name>
     338      <RuleItems>
     339        <Type>0</Type>
     340      </RuleItems>
     341    </Rule>
     342    <Rule>
     343      <Name>Program</Name>
     344      <RuleItems>
     345        <Type>0</Type>
     346        <RuleItem>
     347          <Type>2</Type>
     348          <Optional>-1</Optional>
     349          <Repetitive>0</Repetitive>
     350          <SubItems>
     351            <Type>0</Type>
     352            <RuleItem>
     353              <Type>0</Type>
     354              <Optional>0</Optional>
     355              <Repetitive>0</Repetitive>
     356              <Terminal>program</Terminal>
     357            </RuleItem>
     358            <RuleItem>
     359              <Type>1</Type>
     360              <Optional>0</Optional>
     361              <Repetitive>0</Repetitive>
     362              <NonTerminal>ProgramName</NonTerminal>
     363            </RuleItem>
     364            <RuleItem>
     365              <Type>0</Type>
     366              <Optional>0</Optional>
     367              <Repetitive>0</Repetitive>
     368              <Terminal>;</Terminal>
     369            </RuleItem>
     370          </SubItems>
     371        </RuleItem>
     372        <RuleItem>
     373          <Type>1</Type>
     374          <Optional>0</Optional>
     375          <Repetitive>0</Repetitive>
     376          <NonTerminal>BeginEnd</NonTerminal>
     377        </RuleItem>
     378        <RuleItem>
     379          <Type>0</Type>
     380          <Optional>0</Optional>
     381          <Repetitive>0</Repetitive>
     382          <Terminal>.</Terminal>
     383        </RuleItem>
     384      </RuleItems>
     385    </Rule>
     386    <Rule>
     387      <Name>Uses</Name>
     388      <RuleItems>
     389        <Type>0</Type>
     390        <RuleItem>
     391          <Type>0</Type>
     392          <Optional>0</Optional>
     393          <Repetitive>0</Repetitive>
     394          <Terminal>uses</Terminal>
     395        </RuleItem>
     396        <RuleItem>
     397          <Type>1</Type>
     398          <Optional>0</Optional>
     399          <Repetitive>0</Repetitive>
     400          <NonTerminal>UnitReference</NonTerminal>
     401        </RuleItem>
     402        <RuleItem>
     403          <Type>0</Type>
     404          <Optional>0</Optional>
     405          <Repetitive>0</Repetitive>
     406          <Terminal>,</Terminal>
     407        </RuleItem>
     408      </RuleItems>
     409    </Rule>
     410    <Rule>
     411      <Name>UnitName</Name>
     412      <RuleItems>
     413        <Type>0</Type>
     414      </RuleItems>
     415    </Rule>
     416    <Rule>
     417      <Name>Function</Name>
     418      <RuleItems>
     419        <Type>0</Type>
     420        <RuleItem>
     421          <Type>0</Type>
     422          <Optional>0</Optional>
     423          <Repetitive>0</Repetitive>
     424          <Terminal>function</Terminal>
     425        </RuleItem>
     426        <RuleItem>
     427          <Type>1</Type>
     428          <Optional>0</Optional>
     429          <Repetitive>0</Repetitive>
     430          <NonTerminal>Identifier</NonTerminal>
     431        </RuleItem>
     432        <RuleItem>
     433          <Type>0</Type>
     434          <Optional>0</Optional>
     435          <Repetitive>0</Repetitive>
     436          <Terminal>;</Terminal>
     437        </RuleItem>
     438        <RuleItem>
     439          <Type>1</Type>
     440          <Optional>0</Optional>
     441          <Repetitive>0</Repetitive>
     442          <NonTerminal>BeginEnd</NonTerminal>
     443        </RuleItem>
     444        <RuleItem>
     445          <Type>0</Type>
     446          <Optional>0</Optional>
     447          <Repetitive>0</Repetitive>
     448          <Terminal>;</Terminal>
     449        </RuleItem>
     450        <RuleItem>
     451          <Type>1</Type>
     452          <Optional>0</Optional>
     453          <Repetitive>0</Repetitive>
     454          <NonTerminal>FunctionParameters</NonTerminal>
     455        </RuleItem>
     456      </RuleItems>
     457    </Rule>
     458    <Rule>
     459      <Name>Identifier</Name>
     460      <RuleItems>
     461        <Type>0</Type>
     462      </RuleItems>
     463    </Rule>
     464    <Rule>
     465      <Name>VarSection</Name>
     466      <RuleItems>
     467        <Type>0</Type>
     468        <RuleItem>
     469          <Type>0</Type>
     470          <Optional>0</Optional>
     471          <Repetitive>0</Repetitive>
     472          <Terminal>var</Terminal>
     473        </RuleItem>
     474        <RuleItem>
     475          <Type>1</Type>
     476          <Optional>0</Optional>
     477          <Repetitive>0</Repetitive>
     478          <NonTerminal>VariableDefinition</NonTerminal>
     479        </RuleItem>
     480      </RuleItems>
     481    </Rule>
     482    <Rule>
     483      <Name>FunctionParameters</Name>
     484      <RuleItems>
     485        <Type>0</Type>
     486        <RuleItem>
     487          <Type>0</Type>
     488          <Optional>0</Optional>
     489          <Repetitive>0</Repetitive>
     490          <Terminal>(</Terminal>
     491        </RuleItem>
     492        <RuleItem>
     493          <Type>1</Type>
     494          <Optional>0</Optional>
     495          <Repetitive>0</Repetitive>
     496          <NonTerminal>FunctionParameter</NonTerminal>
     497        </RuleItem>
     498        <RuleItem>
     499          <Type>2</Type>
     500          <Optional>-1</Optional>
     501          <Repetitive>-1</Repetitive>
     502          <SubItems>
     503            <Type>0</Type>
     504            <RuleItem>
     505              <Type>0</Type>
     506              <Optional>0</Optional>
     507              <Repetitive>0</Repetitive>
     508              <Terminal>,</Terminal>
     509            </RuleItem>
     510            <RuleItem>
     511              <Type>1</Type>
     512              <Optional>0</Optional>
     513              <Repetitive>0</Repetitive>
     514              <NonTerminal>FunctionParameter</NonTerminal>
     515            </RuleItem>
     516          </SubItems>
     517        </RuleItem>
     518        <RuleItem>
     519          <Type>0</Type>
     520          <Optional>0</Optional>
     521          <Repetitive>0</Repetitive>
     522          <Terminal>)</Terminal>
     523        </RuleItem>
     524      </RuleItems>
     525    </Rule>
     526    <Rule>
     527      <Name>FunctionParameter</Name>
     528      <RuleItems>
     529        <Type>0</Type>
     530      </RuleItems>
     531    </Rule>
     532    <Rule>
     533      <Name>VariableDefinition</Name>
     534      <RuleItems>
     535        <Type>0</Type>
     536        <RuleItem>
     537          <Type>1</Type>
     538          <Optional>0</Optional>
     539          <Repetitive>0</Repetitive>
     540          <NonTerminal>VariableName</NonTerminal>
     541        </RuleItem>
     542        <RuleItem>
     543          <Type>0</Type>
     544          <Optional>0</Optional>
     545          <Repetitive>0</Repetitive>
     546          <Terminal>:</Terminal>
     547        </RuleItem>
     548        <RuleItem>
     549          <Type>1</Type>
     550          <Optional>0</Optional>
     551          <Repetitive>0</Repetitive>
     552          <NonTerminal>TypeReference</NonTerminal>
     553        </RuleItem>
     554        <RuleItem>
     555          <Type>0</Type>
     556          <Optional>0</Optional>
     557          <Repetitive>0</Repetitive>
     558          <Terminal>;</Terminal>
     559        </RuleItem>
     560      </RuleItems>
     561    </Rule>
     562    <Rule>
     563      <Name>TypeReference</Name>
     564      <RuleItems>
     565        <Type>0</Type>
     566      </RuleItems>
     567    </Rule>
     568    <Rule>
     569      <Name>VariableName</Name>
     570      <RuleItems>
     571        <Type>0</Type>
     572      </RuleItems>
     573    </Rule>
     574    <Rule>
     575      <Name>Unit</Name>
     576      <RuleItems>
     577        <Type>0</Type>
     578        <RuleItem>
     579          <Type>0</Type>
     580          <Optional>0</Optional>
     581          <Repetitive>0</Repetitive>
     582          <Terminal>unit</Terminal>
     583        </RuleItem>
     584        <RuleItem>
     585          <Type>1</Type>
     586          <Optional>0</Optional>
     587          <Repetitive>0</Repetitive>
     588          <NonTerminal>UnitName</NonTerminal>
     589        </RuleItem>
     590        <RuleItem>
     591          <Type>0</Type>
     592          <Optional>0</Optional>
     593          <Repetitive>0</Repetitive>
     594          <Terminal>;</Terminal>
     595        </RuleItem>
     596      </RuleItems>
     597    </Rule>
     598    <Rule>
     599      <Name>UnitReference</Name>
     600      <RuleItems>
     601        <Type>0</Type>
     602      </RuleItems>
     603    </Rule>
     604    <Rule>
     605      <Name>ForInDo</Name>
     606      <RuleItems>
     607        <Type>0</Type>
     608        <RuleItem>
     609          <Type>0</Type>
     610          <Optional>0</Optional>
     611          <Repetitive>0</Repetitive>
     612          <Terminal>for</Terminal>
     613        </RuleItem>
     614        <RuleItem>
     615          <Type>1</Type>
     616          <Optional>0</Optional>
     617          <Repetitive>0</Repetitive>
     618          <NonTerminal>VariableRef</NonTerminal>
     619        </RuleItem>
     620        <RuleItem>
     621          <Type>0</Type>
     622          <Optional>0</Optional>
     623          <Repetitive>0</Repetitive>
     624          <Terminal>in</Terminal>
     625        </RuleItem>
     626        <RuleItem>
     627          <Type>1</Type>
     628          <Optional>0</Optional>
     629          <Repetitive>0</Repetitive>
     630          <NonTerminal>Expression</NonTerminal>
     631        </RuleItem>
     632        <RuleItem>
     633          <Type>0</Type>
     634          <Optional>0</Optional>
     635          <Repetitive>0</Repetitive>
    70636          <Terminal>do</Terminal>
    71637        </RuleItem>
    72638        <RuleItem>
    73639          <Type>1</Type>
     640          <Optional>0</Optional>
     641          <Repetitive>0</Repetitive>
    74642          <NonTerminal>Statement</NonTerminal>
    75643        </RuleItem>
     
    77645    </Rule>
    78646    <Rule>
    79       <Name>RepeatUntil</Name>
    80       <RuleItems>
    81         <Type>0</Type>
    82         <RuleItem>
    83           <Type>0</Type>
    84           <Terminal>repeat</Terminal>
    85         </RuleItem>
    86         <RuleItem>
    87           <Type>1</Type>
    88           <NonTerminal>Statement</NonTerminal>
    89         </RuleItem>
    90         <RuleItem>
    91           <Type>0</Type>
    92           <Terminal>until</Terminal>
    93         </RuleItem>
    94         <RuleItem>
    95           <Type>1</Type>
    96           <NonTerminal>Expression</NonTerminal>
    97         </RuleItem>
    98       </RuleItems>
    99     </Rule>
    100     <Rule>
    101       <Name>ForToDo</Name>
    102       <RuleItems>
    103         <Type>0</Type>
    104         <RuleItem>
    105           <Type>0</Type>
    106           <Terminal>for</Terminal>
    107         </RuleItem>
    108         <RuleItem>
    109           <Type>1</Type>
    110           <NonTerminal>VariableRef</NonTerminal>
    111         </RuleItem>
    112         <RuleItem>
    113           <Type>0</Type>
    114           <Terminal>:=</Terminal>
    115         </RuleItem>
    116         <RuleItem>
    117           <Type>1</Type>
    118           <NonTerminal>Expression</NonTerminal>
    119         </RuleItem>
    120         <RuleItem>
    121           <Type>0</Type>
    122           <Terminal>to</Terminal>
    123         </RuleItem>
    124         <RuleItem>
    125           <Type>1</Type>
    126           <NonTerminal>Expression</NonTerminal>
    127         </RuleItem>
    128         <RuleItem>
    129           <Type>0</Type>
    130           <Terminal>do</Terminal>
    131         </RuleItem>
    132         <RuleItem>
    133           <Type>1</Type>
    134           <NonTerminal>Statement</NonTerminal>
    135         </RuleItem>
    136       </RuleItems>
    137     </Rule>
    138     <Rule>
    139       <Name>WithDo</Name>
    140       <RuleItems>
    141         <Type>0</Type>
    142         <RuleItem>
    143           <Type>0</Type>
    144           <Terminal>with</Terminal>
    145         </RuleItem>
    146         <RuleItem>
    147           <Type>1</Type>
    148           <NonTerminal>VariableRef</NonTerminal>
    149         </RuleItem>
    150         <RuleItem>
    151           <Type>0</Type>
    152           <Terminal>do</Terminal>
    153         </RuleItem>
    154         <RuleItem>
    155           <Type>1</Type>
    156           <NonTerminal>Statement</NonTerminal>
    157         </RuleItem>
    158       </RuleItems>
    159     </Rule>
    160     <Rule>
    161       <Name>CaseOf</Name>
    162       <RuleItems>
    163         <Type>0</Type>
    164         <RuleItem>
    165           <Type>0</Type>
    166           <Terminal>case</Terminal>
    167         </RuleItem>
    168         <RuleItem>
    169           <Type>1</Type>
    170           <NonTerminal>Expression</NonTerminal>
    171         </RuleItem>
    172         <RuleItem>
    173           <Type>0</Type>
    174           <Terminal>of</Terminal>
    175         </RuleItem>
    176         <RuleItem>
    177           <Type>0</Type>
     647      <Name>TypeRecord</Name>
     648      <RuleItems>
     649        <Type>0</Type>
     650        <RuleItem>
     651          <Type>0</Type>
     652          <Optional>0</Optional>
     653          <Repetitive>0</Repetitive>
     654          <Terminal>record</Terminal>
     655        </RuleItem>
     656        <RuleItem>
     657          <Type>0</Type>
     658          <Optional>0</Optional>
     659          <Repetitive>0</Repetitive>
    178660          <Terminal>end</Terminal>
    179661        </RuleItem>
    180       </RuleItems>
    181     </Rule>
    182     <Rule>
    183       <Name>Assignment</Name>
    184       <RuleItems>
    185         <Type>0</Type>
    186         <RuleItem>
    187           <Type>1</Type>
    188           <NonTerminal>VariableRef</NonTerminal>
    189         </RuleItem>
    190         <RuleItem>
    191           <Type>0</Type>
    192           <Terminal>:=</Terminal>
    193         </RuleItem>
    194         <RuleItem>
    195           <Type>1</Type>
    196           <NonTerminal>Expression</NonTerminal>
    197         </RuleItem>
    198       </RuleItems>
    199     </Rule>
    200     <Rule>
    201       <Name>Statement</Name>
    202       <RuleItems>
    203         <Type>0</Type>
    204         <RuleItem>
    205           <Type>1</Type>
    206           <NonTerminal>BeginEnd</NonTerminal>
    207         </RuleItem>
    208         <RuleItem>
    209           <Type>1</Type>
    210           <NonTerminal>IfThenElse</NonTerminal>
    211         </RuleItem>
    212         <RuleItem>
    213           <Type>1</Type>
    214           <NonTerminal>WhileDo</NonTerminal>
    215         </RuleItem>
    216         <RuleItem>
    217           <Type>1</Type>
    218           <NonTerminal>RepeatUntil</NonTerminal>
    219         </RuleItem>
    220         <RuleItem>
    221           <Type>1</Type>
    222           <NonTerminal>ForToDo</NonTerminal>
    223         </RuleItem>
    224         <RuleItem>
    225           <Type>1</Type>
    226           <NonTerminal>WithDo</NonTerminal>
    227         </RuleItem>
    228         <RuleItem>
    229           <Type>1</Type>
    230           <NonTerminal>CaseOf</NonTerminal>
    231         </RuleItem>
    232         <RuleItem>
    233           <Type>1</Type>
    234           <NonTerminal>Assignment</NonTerminal>
    235         </RuleItem>
    236       </RuleItems>
    237     </Rule>
    238     <Rule>
    239       <Name>Expression</Name>
    240       <RuleItems>
    241         <Type>0</Type>
    242       </RuleItems>
    243     </Rule>
    244     <Rule>
    245       <Name>VariableRef</Name>
    246       <RuleItems>
    247         <Type>0</Type>
    248       </RuleItems>
    249     </Rule>
    250     <Rule>
    251       <Name>Program</Name>
    252       <RuleItems>
    253         <Type>0</Type>
    254         <RuleItem>
    255           <Type>1</Type>
    256           <NonTerminal>BeginEnd</NonTerminal>
    257         </RuleItem>
    258         <RuleItem>
    259           <Type>0</Type>
    260           <Terminal>.</Terminal>
    261         </RuleItem>
    262       </RuleItems>
    263     </Rule>
    264     <Rule>
    265       <Name>Uses</Name>
    266       <RuleItems>
    267         <Type>0</Type>
    268         <RuleItem>
    269           <Type>0</Type>
    270           <Terminal>uses</Terminal>
    271         </RuleItem>
    272         <RuleItem>
    273           <Type>1</Type>
    274           <NonTerminal>UnitReference</NonTerminal>
    275         </RuleItem>
    276         <RuleItem>
    277           <Type>0</Type>
    278           <Terminal>,</Terminal>
    279         </RuleItem>
    280       </RuleItems>
    281     </Rule>
    282     <Rule>
    283       <Name>UnitName</Name>
    284       <RuleItems>
    285         <Type>0</Type>
    286       </RuleItems>
    287     </Rule>
    288     <Rule>
    289       <Name>Function</Name>
    290       <RuleItems>
    291         <Type>0</Type>
    292         <RuleItem>
    293           <Type>0</Type>
    294           <Terminal>function</Terminal>
    295         </RuleItem>
    296         <RuleItem>
    297           <Type>1</Type>
    298           <NonTerminal>Identifier</NonTerminal>
    299         </RuleItem>
    300         <RuleItem>
    301           <Type>0</Type>
    302           <Terminal>;</Terminal>
    303         </RuleItem>
    304         <RuleItem>
    305           <Type>1</Type>
    306           <NonTerminal>BeginEnd</NonTerminal>
    307         </RuleItem>
    308         <RuleItem>
    309           <Type>0</Type>
    310           <Terminal>;</Terminal>
    311         </RuleItem>
    312       </RuleItems>
    313     </Rule>
    314     <Rule>
    315       <Name>Identifier</Name>
    316       <RuleItems>
    317         <Type>0</Type>
    318       </RuleItems>
    319     </Rule>
    320     <Rule>
    321       <Name>VarSection</Name>
    322       <RuleItems>
    323         <Type>0</Type>
    324         <RuleItem>
    325           <Type>0</Type>
    326           <Terminal>var</Terminal>
    327         </RuleItem>
    328         <RuleItem>
    329           <Type>1</Type>
    330           <NonTerminal>VariableDefinition</NonTerminal>
    331         </RuleItem>
    332       </RuleItems>
    333     </Rule>
    334     <Rule>
    335       <Name>FunctionParameters</Name>
    336       <RuleItems>
    337         <Type>0</Type>
    338         <RuleItem>
    339           <Type>0</Type>
    340           <Terminal>(</Terminal>
    341         </RuleItem>
    342         <RuleItem>
    343           <Type>1</Type>
    344           <NonTerminal>FunctionParameter</NonTerminal>
    345         </RuleItem>
    346         <RuleItem>
    347           <Type>0</Type>
    348           <Terminal>)</Terminal>
    349         </RuleItem>
    350       </RuleItems>
    351     </Rule>
    352     <Rule>
    353       <Name>FunctionParameter</Name>
    354       <RuleItems>
    355         <Type>0</Type>
    356       </RuleItems>
    357     </Rule>
    358     <Rule>
    359       <Name>VariableDefinition</Name>
    360       <RuleItems>
    361         <Type>0</Type>
    362         <RuleItem>
    363           <Type>1</Type>
    364           <NonTerminal>VariableName</NonTerminal>
    365         </RuleItem>
    366         <RuleItem>
    367           <Type>0</Type>
    368           <Terminal>:</Terminal>
    369         </RuleItem>
    370         <RuleItem>
    371           <Type>1</Type>
    372           <NonTerminal>TypeReference</NonTerminal>
    373         </RuleItem>
    374         <RuleItem>
    375           <Type>0</Type>
    376           <Terminal>;</Terminal>
    377         </RuleItem>
    378       </RuleItems>
    379     </Rule>
    380     <Rule>
    381       <Name>TypeReference</Name>
    382       <RuleItems>
    383         <Type>0</Type>
    384       </RuleItems>
    385     </Rule>
    386     <Rule>
    387       <Name>VariableName</Name>
    388       <RuleItems>
    389         <Type>0</Type>
    390       </RuleItems>
    391     </Rule>
    392     <Rule>
    393       <Name>Unit</Name>
    394       <RuleItems>
    395         <Type>0</Type>
    396         <RuleItem>
    397           <Type>0</Type>
    398           <Terminal>unit</Terminal>
    399         </RuleItem>
    400         <RuleItem>
    401           <Type>1</Type>
    402           <NonTerminal>UnitName</NonTerminal>
    403         </RuleItem>
    404         <RuleItem>
    405           <Type>0</Type>
    406           <Terminal>;</Terminal>
    407         </RuleItem>
    408       </RuleItems>
    409     </Rule>
    410     <Rule>
    411       <Name>UnitReference</Name>
     662        <RuleItem>
     663          <Type>2</Type>
     664          <Optional>-1</Optional>
     665          <Repetitive>-1</Repetitive>
     666          <SubItems>
     667            <Type>0</Type>
     668            <RuleItem>
     669              <Type>1</Type>
     670              <Optional>0</Optional>
     671              <Repetitive>0</Repetitive>
     672              <NonTerminal>VariableName</NonTerminal>
     673            </RuleItem>
     674            <RuleItem>
     675              <Type>0</Type>
     676              <Optional>0</Optional>
     677              <Repetitive>0</Repetitive>
     678              <Terminal>:</Terminal>
     679            </RuleItem>
     680            <RuleItem>
     681              <Type>1</Type>
     682              <Optional>0</Optional>
     683              <Repetitive>0</Repetitive>
     684              <NonTerminal>TypeReference</NonTerminal>
     685            </RuleItem>
     686            <RuleItem>
     687              <Type>0</Type>
     688              <Optional>0</Optional>
     689              <Repetitive>0</Repetitive>
     690              <Terminal>;</Terminal>
     691            </RuleItem>
     692          </SubItems>
     693        </RuleItem>
     694      </RuleItems>
     695    </Rule>
     696    <Rule>
     697      <Name>ProgramName</Name>
    412698      <RuleItems>
    413699        <Type>0</Type>
Note: See TracChangeset for help on using the changeset viewer.