Changeset 123


Ignore:
Timestamp:
Nov 29, 2017, 3:45:03 PM (7 years ago)
Author:
chronos
Message:
  • Added: New rule item option to match any character except given one.
  • Added: Show file name in main window title.
Location:
branches/generator
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/generator/Forms/UFormMain.pas

    r119 r123  
    5252  private
    5353    procedure ReloadMemo;
     54    procedure UpdateInterface;
    5455  public
    5556    { public declarations }
     
    8586  if SaveDialog1.Execute then begin
    8687    Core.Grammer.SaveToXmlFile(SaveDialog1.FileName);
     88    UpdateInterface;
    8789  end;
    8890end;
     
    9193begin
    9294  Core.Grammer.SaveToXmlFile(Core.Grammer.FileName);
     95  UpdateInterface;
    9396end;
    9497
     
    102105  Core.PersistentForm1.Load(Self, True);
    103106  ReloadMemo;
     107  UpdateInterface;
    104108end;
    105109
     
    107111begin
    108112  MemoBNF.Lines.Text := Core.Grammer.GetString;
     113end;
     114
     115procedure TFormMain.UpdateInterface;
     116begin
     117  Caption := Core.Grammer.FileName + ' - ' + Application.Title;
    109118end;
    110119
     
    118127  Core.Grammer.Rules.Clear;
    119128  ReloadMemo;
     129  UpdateInterface;
    120130end;
    121131
     
    131141    Core.Grammer.LoadFromXmlFile(OpenDialog1.FileName);
    132142    ReloadMemo;
     143    UpdateInterface;
    133144  end;
    134145end;
  • branches/generator/Forms/UFormRule.pas

    r120 r123  
    4343
    4444implementation
    45 
    46 uses
    47   UCore;
    4845
    4946{$R *.lfm}
  • branches/generator/Forms/UFormRuleItem.lfm

    r122 r123  
    159159  end
    160160  object CheckBoxRepetitive: TCheckBox
    161     Left = 336
     161    Left = 216
    162162    Height = 24
    163163    Top = 56
     
    166166    TabOrder = 5
    167167  end
     168  object CheckBoxAnyExcept: TCheckBox
     169    Left = 400
     170    Height = 24
     171    Top = 56
     172    Width = 97
     173    Caption = 'Any except'
     174    TabOrder = 6
     175  end
    168176end
  • branches/generator/Forms/UFormRuleItem.pas

    r122 r123  
    1616    ButtonCancel: TButton;
    1717    ButtonOk: TButton;
     18    CheckBoxAnyExcept: TCheckBox;
    1819    CheckBoxOptional: TCheckBox;
    1920    CheckBoxRepetitive: TCheckBox;
     
    134135  CheckBoxOptional.Checked := RuleItem.Optional;
    135136  CheckBoxRepetitive.Checked := RuleItem.Repetitive;
     137  CheckBoxAnyExcept.Checked := RuleItem.AnyExcept;
    136138  TFormRuleItems(FormRuleItems).LoadData(RuleItem.SubItems);
    137139  UpdateInterface;
     
    150152  RuleItem.Optional := CheckBoxOptional.Checked;
    151153  RuleItem.Repetitive := CheckBoxRepetitive.Checked;
     154  RuleItem.AnyExcept := CheckBoxAnyExcept.Checked;
    152155end;
    153156
  • branches/generator/URules.pas

    r122 r123  
    2727    Optional: Boolean;
    2828    Repetitive: Boolean;
     29    AnyExcept: Boolean;
    2930    RuleItemType: TRuleItemType;
    3031    Terminal: string;
     
    335336  WriteBoolean(Node, 'Optional', Optional);
    336337  WriteBoolean(Node, 'Repetitive', Repetitive);
     338  WriteBoolean(Node, 'AnyExcept', AnyExcept);
    337339
    338340  case RuleItemType of
     
    361363  if Optional then Result := '+' + Result;
    362364  if Repetitive then Result := '*' + Result;
     365  if AnyExcept then Result := '!' + Result;
    363366end;
    364367
     
    406409  Optional := ReadBoolean(Node, 'Optional', False);
    407410  Repetitive := ReadBoolean(Node, 'Repetitive', False);
     411  AnyExcept := ReadBoolean(Node, 'AnyExcept', False);
    408412  case RuleItemType of
    409413    ritTerminal: Terminal := ReadString(Node, 'Terminal', '');
  • branches/generator/pascal.grm

    r122 r123  
    1111          <Optional>0</Optional>
    1212          <Repetitive>0</Repetitive>
     13          <AnyExcept>0</AnyExcept>
    1314          <Terminal>begin</Terminal>
    1415        </RuleItem>
     
    1718          <Optional>-1</Optional>
    1819          <Repetitive>-1</Repetitive>
     20          <AnyExcept>0</AnyExcept>
    1921          <NonTerminal>Statement</NonTerminal>
    2022        </RuleItem>
     
    2325          <Optional>0</Optional>
    2426          <Repetitive>0</Repetitive>
     27          <AnyExcept>0</AnyExcept>
    2528          <Terminal>end</Terminal>
    2629        </RuleItem>
     
    3639          <Optional>0</Optional>
    3740          <Repetitive>0</Repetitive>
     41          <AnyExcept>0</AnyExcept>
    3842          <Terminal>if</Terminal>
    3943        </RuleItem>
     
    4246          <Optional>0</Optional>
    4347          <Repetitive>0</Repetitive>
     48          <AnyExcept>0</AnyExcept>
    4449          <NonTerminal>Expression</NonTerminal>
    4550        </RuleItem>
     
    4853          <Optional>0</Optional>
    4954          <Repetitive>0</Repetitive>
     55          <AnyExcept>0</AnyExcept>
    5056          <Terminal>then</Terminal>
    5157        </RuleItem>
     
    5460          <Optional>0</Optional>
    5561          <Repetitive>0</Repetitive>
     62          <AnyExcept>0</AnyExcept>
    5663          <NonTerminal>Statement</NonTerminal>
    5764        </RuleItem>
     
    6067          <Optional>-1</Optional>
    6168          <Repetitive>0</Repetitive>
     69          <AnyExcept>0</AnyExcept>
    6270          <SubItems>
    6371            <Type>0</Type>
     
    6674              <Optional>0</Optional>
    6775              <Repetitive>0</Repetitive>
     76              <AnyExcept>0</AnyExcept>
    6877              <Terminal>else</Terminal>
    6978            </RuleItem>
     
    7281              <Optional>0</Optional>
    7382              <Repetitive>0</Repetitive>
     83              <AnyExcept>0</AnyExcept>
    7484              <NonTerminal>Statement</NonTerminal>
    7585            </RuleItem>
     
    8797          <Optional>0</Optional>
    8898          <Repetitive>0</Repetitive>
     99          <AnyExcept>0</AnyExcept>
    89100          <Terminal>while</Terminal>
    90101        </RuleItem>
     
    93104          <Optional>0</Optional>
    94105          <Repetitive>0</Repetitive>
     106          <AnyExcept>0</AnyExcept>
    95107          <NonTerminal>Expression</NonTerminal>
    96108        </RuleItem>
     
    99111          <Optional>0</Optional>
    100112          <Repetitive>0</Repetitive>
     113          <AnyExcept>0</AnyExcept>
    101114          <Terminal>do</Terminal>
    102115        </RuleItem>
     
    105118          <Optional>0</Optional>
    106119          <Repetitive>0</Repetitive>
     120          <AnyExcept>0</AnyExcept>
    107121          <NonTerminal>Statement</NonTerminal>
    108122        </RuleItem>
     
    118132          <Optional>0</Optional>
    119133          <Repetitive>0</Repetitive>
     134          <AnyExcept>0</AnyExcept>
    120135          <Terminal>repeat</Terminal>
    121136        </RuleItem>
     
    124139          <Optional>0</Optional>
    125140          <Repetitive>0</Repetitive>
     141          <AnyExcept>0</AnyExcept>
    126142          <NonTerminal>Statement</NonTerminal>
    127143        </RuleItem>
     
    130146          <Optional>0</Optional>
    131147          <Repetitive>0</Repetitive>
     148          <AnyExcept>0</AnyExcept>
    132149          <Terminal>until</Terminal>
    133150        </RuleItem>
     
    136153          <Optional>0</Optional>
    137154          <Repetitive>0</Repetitive>
     155          <AnyExcept>0</AnyExcept>
    138156          <NonTerminal>Expression</NonTerminal>
    139157        </RuleItem>
     
    149167          <Optional>0</Optional>
    150168          <Repetitive>0</Repetitive>
     169          <AnyExcept>0</AnyExcept>
    151170          <Terminal>for</Terminal>
    152171        </RuleItem>
     
    155174          <Optional>0</Optional>
    156175          <Repetitive>0</Repetitive>
     176          <AnyExcept>0</AnyExcept>
    157177          <NonTerminal>VariableReference</NonTerminal>
    158178        </RuleItem>
     
    161181          <Optional>0</Optional>
    162182          <Repetitive>0</Repetitive>
     183          <AnyExcept>0</AnyExcept>
    163184          <Terminal>:=</Terminal>
    164185        </RuleItem>
     
    167188          <Optional>0</Optional>
    168189          <Repetitive>0</Repetitive>
     190          <AnyExcept>0</AnyExcept>
    169191          <NonTerminal>Expression</NonTerminal>
    170192        </RuleItem>
     
    173195          <Optional>0</Optional>
    174196          <Repetitive>0</Repetitive>
     197          <AnyExcept>0</AnyExcept>
    175198          <Terminal>to</Terminal>
    176199        </RuleItem>
     
    179202          <Optional>0</Optional>
    180203          <Repetitive>0</Repetitive>
     204          <AnyExcept>0</AnyExcept>
    181205          <NonTerminal>Expression</NonTerminal>
    182206        </RuleItem>
     
    185209          <Optional>0</Optional>
    186210          <Repetitive>0</Repetitive>
     211          <AnyExcept>0</AnyExcept>
    187212          <Terminal>do</Terminal>
    188213        </RuleItem>
     
    191216          <Optional>0</Optional>
    192217          <Repetitive>0</Repetitive>
     218          <AnyExcept>0</AnyExcept>
    193219          <NonTerminal>Statement</NonTerminal>
    194220        </RuleItem>
     
    204230          <Optional>0</Optional>
    205231          <Repetitive>0</Repetitive>
     232          <AnyExcept>0</AnyExcept>
    206233          <Terminal>with</Terminal>
    207234        </RuleItem>
     
    210237          <Optional>0</Optional>
    211238          <Repetitive>0</Repetitive>
     239          <AnyExcept>0</AnyExcept>
    212240          <NonTerminal>VariableReference</NonTerminal>
    213241        </RuleItem>
     
    216244          <Optional>0</Optional>
    217245          <Repetitive>0</Repetitive>
     246          <AnyExcept>0</AnyExcept>
    218247          <Terminal>do</Terminal>
    219248        </RuleItem>
     
    222251          <Optional>0</Optional>
    223252          <Repetitive>0</Repetitive>
     253          <AnyExcept>0</AnyExcept>
    224254          <NonTerminal>Statement</NonTerminal>
    225255        </RuleItem>
     
    235265          <Optional>0</Optional>
    236266          <Repetitive>0</Repetitive>
     267          <AnyExcept>0</AnyExcept>
    237268          <Terminal>case</Terminal>
    238269        </RuleItem>
     
    241272          <Optional>0</Optional>
    242273          <Repetitive>0</Repetitive>
     274          <AnyExcept>0</AnyExcept>
    243275          <NonTerminal>Expression</NonTerminal>
    244276        </RuleItem>
     
    247279          <Optional>0</Optional>
    248280          <Repetitive>0</Repetitive>
     281          <AnyExcept>0</AnyExcept>
    249282          <Terminal>of</Terminal>
    250283        </RuleItem>
     
    253286          <Optional>0</Optional>
    254287          <Repetitive>0</Repetitive>
     288          <AnyExcept>0</AnyExcept>
    255289          <Terminal>end</Terminal>
    256290        </RuleItem>
     
    266300          <Optional>0</Optional>
    267301          <Repetitive>0</Repetitive>
     302          <AnyExcept>0</AnyExcept>
    268303          <NonTerminal>VariableReference</NonTerminal>
    269304        </RuleItem>
     
    272307          <Optional>0</Optional>
    273308          <Repetitive>0</Repetitive>
     309          <AnyExcept>0</AnyExcept>
    274310          <Terminal>:=</Terminal>
    275311        </RuleItem>
     
    278314          <Optional>0</Optional>
    279315          <Repetitive>0</Repetitive>
     316          <AnyExcept>0</AnyExcept>
    280317          <NonTerminal>Expression</NonTerminal>
    281318        </RuleItem>
     
    291328          <Optional>0</Optional>
    292329          <Repetitive>0</Repetitive>
     330          <AnyExcept>0</AnyExcept>
    293331          <NonTerminal>BeginEnd</NonTerminal>
    294332        </RuleItem>
     
    297335          <Optional>0</Optional>
    298336          <Repetitive>0</Repetitive>
     337          <AnyExcept>0</AnyExcept>
    299338          <NonTerminal>IfThenElse</NonTerminal>
    300339        </RuleItem>
     
    303342          <Optional>0</Optional>
    304343          <Repetitive>0</Repetitive>
     344          <AnyExcept>0</AnyExcept>
    305345          <NonTerminal>WhileDo</NonTerminal>
    306346        </RuleItem>
     
    309349          <Optional>0</Optional>
    310350          <Repetitive>0</Repetitive>
     351          <AnyExcept>0</AnyExcept>
    311352          <NonTerminal>RepeatUntil</NonTerminal>
    312353        </RuleItem>
     
    315356          <Optional>0</Optional>
    316357          <Repetitive>0</Repetitive>
     358          <AnyExcept>0</AnyExcept>
    317359          <NonTerminal>ForToDo</NonTerminal>
    318360        </RuleItem>
     
    321363          <Optional>0</Optional>
    322364          <Repetitive>0</Repetitive>
     365          <AnyExcept>0</AnyExcept>
    323366          <NonTerminal>WithDo</NonTerminal>
    324367        </RuleItem>
     
    327370          <Optional>0</Optional>
    328371          <Repetitive>0</Repetitive>
     372          <AnyExcept>0</AnyExcept>
    329373          <NonTerminal>CaseOf</NonTerminal>
    330374        </RuleItem>
     
    333377          <Optional>0</Optional>
    334378          <Repetitive>0</Repetitive>
     379          <AnyExcept>0</AnyExcept>
    335380          <NonTerminal>Assignment</NonTerminal>
    336381        </RuleItem>
     
    346391          <Optional>0</Optional>
    347392          <Repetitive>0</Repetitive>
     393          <AnyExcept>0</AnyExcept>
    348394          <NonTerminal>Term</NonTerminal>
    349395        </RuleItem>
     
    359405          <Optional>0</Optional>
    360406          <Repetitive>0</Repetitive>
     407          <AnyExcept>0</AnyExcept>
    361408          <NonTerminal>Identifier</NonTerminal>
    362409        </RuleItem>
     
    372419          <Optional>-1</Optional>
    373420          <Repetitive>0</Repetitive>
     421          <AnyExcept>0</AnyExcept>
    374422          <SubItems>
    375423            <Type>0</Type>
     
    378426              <Optional>0</Optional>
    379427              <Repetitive>0</Repetitive>
     428              <AnyExcept>0</AnyExcept>
    380429              <Terminal>program</Terminal>
    381430            </RuleItem>
     
    384433              <Optional>0</Optional>
    385434              <Repetitive>0</Repetitive>
     435              <AnyExcept>0</AnyExcept>
    386436              <NonTerminal>ProgramName</NonTerminal>
    387437            </RuleItem>
     
    390440              <Optional>0</Optional>
    391441              <Repetitive>0</Repetitive>
     442              <AnyExcept>0</AnyExcept>
    392443              <Terminal>;</Terminal>
    393444            </RuleItem>
     
    398449          <Optional>-1</Optional>
    399450          <Repetitive>0</Repetitive>
     451          <AnyExcept>0</AnyExcept>
    400452          <NonTerminal>Uses</NonTerminal>
    401453        </RuleItem>
     
    404456          <Optional>0</Optional>
    405457          <Repetitive>0</Repetitive>
     458          <AnyExcept>0</AnyExcept>
    406459          <NonTerminal>DeclarationBlock</NonTerminal>
    407460        </RuleItem>
     
    410463          <Optional>0</Optional>
    411464          <Repetitive>0</Repetitive>
     465          <AnyExcept>0</AnyExcept>
    412466          <Terminal>.</Terminal>
    413467        </RuleItem>
     
    423477          <Optional>0</Optional>
    424478          <Repetitive>0</Repetitive>
     479          <AnyExcept>0</AnyExcept>
    425480          <Terminal>uses</Terminal>
    426481        </RuleItem>
     
    429484          <Optional>0</Optional>
    430485          <Repetitive>0</Repetitive>
     486          <AnyExcept>0</AnyExcept>
    431487          <NonTerminal>UnitReference</NonTerminal>
    432488        </RuleItem>
     
    435491          <Optional>0</Optional>
    436492          <Repetitive>0</Repetitive>
     493          <AnyExcept>0</AnyExcept>
    437494          <Terminal>,</Terminal>
    438495        </RuleItem>
     
    448505          <Optional>0</Optional>
    449506          <Repetitive>0</Repetitive>
     507          <AnyExcept>0</AnyExcept>
    450508          <NonTerminal>Identifier</NonTerminal>
    451509        </RuleItem>
     
    461519          <Optional>0</Optional>
    462520          <Repetitive>0</Repetitive>
     521          <AnyExcept>0</AnyExcept>
    463522          <Terminal>function</Terminal>
    464523        </RuleItem>
     
    467526          <Optional>0</Optional>
    468527          <Repetitive>0</Repetitive>
     528          <AnyExcept>0</AnyExcept>
    469529          <NonTerminal>FunctionName</NonTerminal>
    470530        </RuleItem>
     
    473533          <Optional>-1</Optional>
    474534          <Repetitive>0</Repetitive>
     535          <AnyExcept>0</AnyExcept>
    475536          <NonTerminal>FunctionParameters</NonTerminal>
    476537        </RuleItem>
     
    479540          <Optional>0</Optional>
    480541          <Repetitive>0</Repetitive>
     542          <AnyExcept>0</AnyExcept>
    481543          <Terminal>:</Terminal>
    482544        </RuleItem>
     
    485547          <Optional>0</Optional>
    486548          <Repetitive>0</Repetitive>
     549          <AnyExcept>0</AnyExcept>
    487550          <NonTerminal>TypeReference</NonTerminal>
    488551        </RuleItem>
     
    491554          <Optional>0</Optional>
    492555          <Repetitive>0</Repetitive>
     556          <AnyExcept>0</AnyExcept>
    493557          <Terminal>;</Terminal>
    494558        </RuleItem>
     
    497561          <Optional>0</Optional>
    498562          <Repetitive>0</Repetitive>
     563          <AnyExcept>0</AnyExcept>
    499564          <NonTerminal>BeginEnd</NonTerminal>
    500565        </RuleItem>
     
    503568          <Optional>0</Optional>
    504569          <Repetitive>0</Repetitive>
     570          <AnyExcept>0</AnyExcept>
    505571          <Terminal>;</Terminal>
    506572        </RuleItem>
     
    516582          <Optional>0</Optional>
    517583          <Repetitive>0</Repetitive>
     584          <AnyExcept>0</AnyExcept>
    518585          <NonTerminal>Letter</NonTerminal>
    519586        </RuleItem>
     
    522589          <Optional>-1</Optional>
    523590          <Repetitive>-1</Repetitive>
     591          <AnyExcept>0</AnyExcept>
    524592          <SubItems>
    525593            <Type>1</Type>
     
    528596              <Optional>0</Optional>
    529597              <Repetitive>0</Repetitive>
     598              <AnyExcept>0</AnyExcept>
    530599              <NonTerminal>Letter</NonTerminal>
    531600            </RuleItem>
     
    534603              <Optional>0</Optional>
    535604              <Repetitive>0</Repetitive>
     605              <AnyExcept>0</AnyExcept>
    536606              <NonTerminal>Digit</NonTerminal>
    537607            </RuleItem>
     
    540610              <Optional>0</Optional>
    541611              <Repetitive>0</Repetitive>
     612              <AnyExcept>0</AnyExcept>
    542613              <Terminal>_</Terminal>
    543614            </RuleItem>
     
    547618    </Rule>
    548619    <Rule>
    549       <Name>VarSection</Name>
    550       <CreateSourceNode>0</CreateSourceNode>
    551       <RuleItems>
    552         <Type>0</Type>
    553         <RuleItem>
    554           <Type>0</Type>
    555           <Optional>0</Optional>
    556           <Repetitive>0</Repetitive>
     620      <Name>VariableSection</Name>
     621      <CreateSourceNode>0</CreateSourceNode>
     622      <RuleItems>
     623        <Type>0</Type>
     624        <RuleItem>
     625          <Type>0</Type>
     626          <Optional>0</Optional>
     627          <Repetitive>0</Repetitive>
     628          <AnyExcept>0</AnyExcept>
    557629          <Terminal>var</Terminal>
    558630        </RuleItem>
    559631        <RuleItem>
    560632          <Type>1</Type>
    561           <Optional>0</Optional>
    562           <Repetitive>0</Repetitive>
     633          <Optional>-1</Optional>
     634          <Repetitive>-1</Repetitive>
     635          <AnyExcept>0</AnyExcept>
    563636          <NonTerminal>VariableDefinition</NonTerminal>
    564637        </RuleItem>
     
    574647          <Optional>0</Optional>
    575648          <Repetitive>0</Repetitive>
     649          <AnyExcept>0</AnyExcept>
    576650          <Terminal>(</Terminal>
    577651        </RuleItem>
     
    580654          <Optional>0</Optional>
    581655          <Repetitive>0</Repetitive>
     656          <AnyExcept>0</AnyExcept>
    582657          <NonTerminal>FunctionParameter</NonTerminal>
    583658        </RuleItem>
     
    586661          <Optional>-1</Optional>
    587662          <Repetitive>-1</Repetitive>
     663          <AnyExcept>0</AnyExcept>
    588664          <SubItems>
    589665            <Type>0</Type>
     
    592668              <Optional>0</Optional>
    593669              <Repetitive>0</Repetitive>
     670              <AnyExcept>0</AnyExcept>
    594671              <Terminal>;</Terminal>
    595672            </RuleItem>
     
    598675              <Optional>0</Optional>
    599676              <Repetitive>0</Repetitive>
     677              <AnyExcept>0</AnyExcept>
    600678              <NonTerminal>FunctionParameter</NonTerminal>
    601679            </RuleItem>
     
    606684          <Optional>0</Optional>
    607685          <Repetitive>0</Repetitive>
     686          <AnyExcept>0</AnyExcept>
    608687          <Terminal>)</Terminal>
    609688        </RuleItem>
     
    619698          <Optional>0</Optional>
    620699          <Repetitive>0</Repetitive>
     700          <AnyExcept>0</AnyExcept>
    621701          <NonTerminal>ParameterName</NonTerminal>
    622702        </RuleItem>
     
    625705          <Optional>0</Optional>
    626706          <Repetitive>0</Repetitive>
     707          <AnyExcept>0</AnyExcept>
    627708          <Terminal>:</Terminal>
    628709        </RuleItem>
     
    631712          <Optional>0</Optional>
    632713          <Repetitive>0</Repetitive>
     714          <AnyExcept>0</AnyExcept>
    633715          <NonTerminal>TypeReference</NonTerminal>
    634716        </RuleItem>
     
    644726          <Optional>0</Optional>
    645727          <Repetitive>0</Repetitive>
     728          <AnyExcept>0</AnyExcept>
    646729          <NonTerminal>VariableName</NonTerminal>
    647730        </RuleItem>
     
    650733          <Optional>0</Optional>
    651734          <Repetitive>0</Repetitive>
     735          <AnyExcept>0</AnyExcept>
    652736          <Terminal>:</Terminal>
    653737        </RuleItem>
     
    656740          <Optional>0</Optional>
    657741          <Repetitive>0</Repetitive>
     742          <AnyExcept>0</AnyExcept>
    658743          <NonTerminal>TypeReference</NonTerminal>
    659744        </RuleItem>
     
    662747          <Optional>0</Optional>
    663748          <Repetitive>0</Repetitive>
     749          <AnyExcept>0</AnyExcept>
    664750          <Terminal>;</Terminal>
    665751        </RuleItem>
     
    675761          <Optional>0</Optional>
    676762          <Repetitive>0</Repetitive>
     763          <AnyExcept>0</AnyExcept>
    677764          <NonTerminal>Identifier</NonTerminal>
    678765        </RuleItem>
     
    688775          <Optional>0</Optional>
    689776          <Repetitive>0</Repetitive>
     777          <AnyExcept>0</AnyExcept>
    690778          <NonTerminal>Identifier</NonTerminal>
    691779        </RuleItem>
     
    701789          <Optional>0</Optional>
    702790          <Repetitive>0</Repetitive>
     791          <AnyExcept>0</AnyExcept>
    703792          <Terminal>unit</Terminal>
    704793        </RuleItem>
     
    707796          <Optional>0</Optional>
    708797          <Repetitive>0</Repetitive>
     798          <AnyExcept>0</AnyExcept>
    709799          <NonTerminal>UnitName</NonTerminal>
    710800        </RuleItem>
     
    713803          <Optional>0</Optional>
    714804          <Repetitive>0</Repetitive>
     805          <AnyExcept>0</AnyExcept>
    715806          <Terminal>;</Terminal>
    716807        </RuleItem>
    717808        <RuleItem>
    718           <Type>1</Type>
    719           <Optional>-1</Optional>
    720           <Repetitive>0</Repetitive>
     809          <Type>0</Type>
     810          <Optional>0</Optional>
     811          <Repetitive>0</Repetitive>
     812          <AnyExcept>0</AnyExcept>
     813          <Terminal>interface</Terminal>
     814        </RuleItem>
     815        <RuleItem>
     816          <Type>1</Type>
     817          <Optional>-1</Optional>
     818          <Repetitive>0</Repetitive>
     819          <AnyExcept>0</AnyExcept>
    721820          <NonTerminal>Uses</NonTerminal>
    722821        </RuleItem>
     822        <RuleItem>
     823          <Type>0</Type>
     824          <Optional>0</Optional>
     825          <Repetitive>0</Repetitive>
     826          <AnyExcept>0</AnyExcept>
     827          <Terminal>implementation</Terminal>
     828        </RuleItem>
     829        <RuleItem>
     830          <Type>1</Type>
     831          <Optional>0</Optional>
     832          <Repetitive>0</Repetitive>
     833          <AnyExcept>0</AnyExcept>
     834          <NonTerminal>UnitInitialization</NonTerminal>
     835        </RuleItem>
     836        <RuleItem>
     837          <Type>1</Type>
     838          <Optional>0</Optional>
     839          <Repetitive>0</Repetitive>
     840          <AnyExcept>0</AnyExcept>
     841          <NonTerminal>UnitFinalization</NonTerminal>
     842        </RuleItem>
     843        <RuleItem>
     844          <Type>0</Type>
     845          <Optional>0</Optional>
     846          <Repetitive>0</Repetitive>
     847          <AnyExcept>0</AnyExcept>
     848          <Terminal>end.</Terminal>
     849        </RuleItem>
    723850      </RuleItems>
    724851    </Rule>
     
    732859          <Optional>0</Optional>
    733860          <Repetitive>0</Repetitive>
     861          <AnyExcept>0</AnyExcept>
    734862          <NonTerminal>Identifier</NonTerminal>
    735863        </RuleItem>
     
    745873          <Optional>0</Optional>
    746874          <Repetitive>0</Repetitive>
     875          <AnyExcept>0</AnyExcept>
    747876          <Terminal>for</Terminal>
    748877        </RuleItem>
     
    751880          <Optional>0</Optional>
    752881          <Repetitive>0</Repetitive>
     882          <AnyExcept>0</AnyExcept>
    753883          <NonTerminal>VariableReference</NonTerminal>
    754884        </RuleItem>
     
    757887          <Optional>0</Optional>
    758888          <Repetitive>0</Repetitive>
     889          <AnyExcept>0</AnyExcept>
    759890          <Terminal>in</Terminal>
    760891        </RuleItem>
     
    763894          <Optional>0</Optional>
    764895          <Repetitive>0</Repetitive>
     896          <AnyExcept>0</AnyExcept>
    765897          <NonTerminal>Expression</NonTerminal>
    766898        </RuleItem>
     
    769901          <Optional>0</Optional>
    770902          <Repetitive>0</Repetitive>
     903          <AnyExcept>0</AnyExcept>
    771904          <Terminal>do</Terminal>
    772905        </RuleItem>
     
    775908          <Optional>0</Optional>
    776909          <Repetitive>0</Repetitive>
     910          <AnyExcept>0</AnyExcept>
    777911          <NonTerminal>Statement</NonTerminal>
    778912        </RuleItem>
     
    788922          <Optional>0</Optional>
    789923          <Repetitive>0</Repetitive>
     924          <AnyExcept>0</AnyExcept>
    790925          <Terminal>record</Terminal>
    791926        </RuleItem>
     
    794929          <Optional>0</Optional>
    795930          <Repetitive>0</Repetitive>
     931          <AnyExcept>0</AnyExcept>
    796932          <Terminal>end</Terminal>
    797933        </RuleItem>
     
    800936          <Optional>-1</Optional>
    801937          <Repetitive>-1</Repetitive>
     938          <AnyExcept>0</AnyExcept>
    802939          <SubItems>
    803940            <Type>0</Type>
     
    806943              <Optional>0</Optional>
    807944              <Repetitive>0</Repetitive>
     945              <AnyExcept>0</AnyExcept>
    808946              <NonTerminal>VariableName</NonTerminal>
    809947            </RuleItem>
     
    812950              <Optional>0</Optional>
    813951              <Repetitive>0</Repetitive>
     952              <AnyExcept>0</AnyExcept>
    814953              <Terminal>:</Terminal>
    815954            </RuleItem>
     
    818957              <Optional>0</Optional>
    819958              <Repetitive>0</Repetitive>
     959              <AnyExcept>0</AnyExcept>
    820960              <NonTerminal>TypeReference</NonTerminal>
    821961            </RuleItem>
     
    824964              <Optional>0</Optional>
    825965              <Repetitive>0</Repetitive>
     966              <AnyExcept>0</AnyExcept>
    826967              <Terminal>;</Terminal>
    827968            </RuleItem>
     
    839980          <Optional>0</Optional>
    840981          <Repetitive>0</Repetitive>
     982          <AnyExcept>0</AnyExcept>
    841983          <NonTerminal>Identifier</NonTerminal>
    842984        </RuleItem>
     
    852994          <Optional>0</Optional>
    853995          <Repetitive>0</Repetitive>
     996          <AnyExcept>0</AnyExcept>
    854997          <NonTerminal>Identifier</NonTerminal>
    855998        </RuleItem>
     
    8651008          <Optional>0</Optional>
    8661009          <Repetitive>0</Repetitive>
     1010          <AnyExcept>0</AnyExcept>
    8671011          <TerminalFrom>0</TerminalFrom>
    8681012          <TerminalTo>9</TerminalTo>
     
    8791023          <Optional>0</Optional>
    8801024          <Repetitive>0</Repetitive>
     1025          <AnyExcept>0</AnyExcept>
    8811026          <Terminal>+</Terminal>
    8821027        </RuleItem>
     
    8851030          <Optional>0</Optional>
    8861031          <Repetitive>0</Repetitive>
     1032          <AnyExcept>0</AnyExcept>
    8871033          <Terminal>-</Terminal>
    8881034        </RuleItem>
     
    8981044          <Optional>0</Optional>
    8991045          <Repetitive>0</Repetitive>
     1046          <AnyExcept>0</AnyExcept>
    9001047          <NonTerminal>Digit</NonTerminal>
    9011048        </RuleItem>
     
    9041051          <Optional>-1</Optional>
    9051052          <Repetitive>-1</Repetitive>
     1053          <AnyExcept>0</AnyExcept>
    9061054          <NonTerminal>Digit</NonTerminal>
    9071055        </RuleItem>
     
    9171065          <Optional>-1</Optional>
    9181066          <Repetitive>0</Repetitive>
     1067          <AnyExcept>0</AnyExcept>
    9191068          <NonTerminal>Sign</NonTerminal>
    9201069        </RuleItem>
     
    9231072          <Optional>0</Optional>
    9241073          <Repetitive>0</Repetitive>
     1074          <AnyExcept>0</AnyExcept>
    9251075          <NonTerminal>UnsignedDigitSequence</NonTerminal>
    9261076        </RuleItem>
     
    9361086          <Optional>0</Optional>
    9371087          <Repetitive>0</Repetitive>
     1088          <AnyExcept>0</AnyExcept>
    9381089          <NonTerminal>DigitSequence</NonTerminal>
    9391090        </RuleItem>
     
    9421093          <Optional>0</Optional>
    9431094          <Repetitive>0</Repetitive>
     1095          <AnyExcept>0</AnyExcept>
    9441096          <Terminal>.</Terminal>
    9451097        </RuleItem>
     
    9481100          <Optional>0</Optional>
    9491101          <Repetitive>0</Repetitive>
     1102          <AnyExcept>0</AnyExcept>
    9501103          <NonTerminal>UnsignedDigitSequence</NonTerminal>
    9511104        </RuleItem>
     
    9611114          <Optional>0</Optional>
    9621115          <Repetitive>0</Repetitive>
     1116          <AnyExcept>0</AnyExcept>
    9631117          <NonTerminal>DigitSequence</NonTerminal>
    9641118        </RuleItem>
     
    9741128          <Optional>0</Optional>
    9751129          <Repetitive>0</Repetitive>
     1130          <AnyExcept>0</AnyExcept>
    9761131          <NonTerminal>IntegerNumber</NonTerminal>
    9771132        </RuleItem>
     
    9801135          <Optional>0</Optional>
    9811136          <Repetitive>0</Repetitive>
     1137          <AnyExcept>0</AnyExcept>
    9821138          <NonTerminal>RealNumber</NonTerminal>
    9831139        </RuleItem>
     
    9931149          <Optional>0</Optional>
    9941150          <Repetitive>0</Repetitive>
     1151          <AnyExcept>0</AnyExcept>
    9951152          <TerminalFrom>a</TerminalFrom>
    9961153          <TerminalTo>z</TerminalTo>
     
    10001157          <Optional>0</Optional>
    10011158          <Repetitive>0</Repetitive>
     1159          <AnyExcept>0</AnyExcept>
    10021160          <TerminalFrom>A</TerminalFrom>
    10031161          <TerminalTo>Z</TerminalTo>
     
    10061164    </Rule>
    10071165    <Rule>
    1008       <Name>ConstSection</Name>
    1009       <CreateSourceNode>0</CreateSourceNode>
    1010       <RuleItems>
    1011         <Type>0</Type>
    1012         <RuleItem>
    1013           <Type>0</Type>
    1014           <Optional>0</Optional>
    1015           <Repetitive>0</Repetitive>
     1166      <Name>ConstantSection</Name>
     1167      <CreateSourceNode>0</CreateSourceNode>
     1168      <RuleItems>
     1169        <Type>0</Type>
     1170        <RuleItem>
     1171          <Type>0</Type>
     1172          <Optional>0</Optional>
     1173          <Repetitive>0</Repetitive>
     1174          <AnyExcept>0</AnyExcept>
    10161175          <Terminal>const</Terminal>
    10171176        </RuleItem>
     1177        <RuleItem>
     1178          <Type>1</Type>
     1179          <Optional>-1</Optional>
     1180          <Repetitive>-1</Repetitive>
     1181          <AnyExcept>0</AnyExcept>
     1182          <NonTerminal>ConstantDefinition</NonTerminal>
     1183        </RuleItem>
    10181184      </RuleItems>
    10191185    </Rule>
     
    10271193          <Optional>0</Optional>
    10281194          <Repetitive>0</Repetitive>
    1029           <NonTerminal>VarSection</NonTerminal>
    1030         </RuleItem>
    1031         <RuleItem>
    1032           <Type>1</Type>
    1033           <Optional>0</Optional>
    1034           <Repetitive>0</Repetitive>
    1035           <NonTerminal>ConstSection</NonTerminal>
    1036         </RuleItem>
    1037         <RuleItem>
    1038           <Type>1</Type>
    1039           <Optional>0</Optional>
    1040           <Repetitive>0</Repetitive>
     1195          <AnyExcept>0</AnyExcept>
     1196          <NonTerminal>VariableSection</NonTerminal>
     1197        </RuleItem>
     1198        <RuleItem>
     1199          <Type>1</Type>
     1200          <Optional>0</Optional>
     1201          <Repetitive>0</Repetitive>
     1202          <AnyExcept>0</AnyExcept>
     1203          <NonTerminal>ConstantSection</NonTerminal>
     1204        </RuleItem>
     1205        <RuleItem>
     1206          <Type>1</Type>
     1207          <Optional>0</Optional>
     1208          <Repetitive>0</Repetitive>
     1209          <AnyExcept>0</AnyExcept>
    10411210          <NonTerminal>TypeSection</NonTerminal>
    10421211        </RuleItem>
     
    10521221          <Optional>0</Optional>
    10531222          <Repetitive>0</Repetitive>
     1223          <AnyExcept>0</AnyExcept>
    10541224          <Terminal>type</Terminal>
    10551225        </RuleItem>
     1226        <RuleItem>
     1227          <Type>1</Type>
     1228          <Optional>-1</Optional>
     1229          <Repetitive>-1</Repetitive>
     1230          <AnyExcept>0</AnyExcept>
     1231          <NonTerminal>TypeDefinition</NonTerminal>
     1232        </RuleItem>
    10561233      </RuleItems>
    10571234    </Rule>
     
    10651242          <Optional>-1</Optional>
    10661243          <Repetitive>-1</Repetitive>
     1244          <AnyExcept>0</AnyExcept>
    10671245          <NonTerminal>Declaration</NonTerminal>
    10681246        </RuleItem>
     
    10711249          <Optional>0</Optional>
    10721250          <Repetitive>0</Repetitive>
     1251          <AnyExcept>0</AnyExcept>
    10731252          <NonTerminal>BeginEnd</NonTerminal>
    10741253        </RuleItem>
     
    10761255    </Rule>
    10771256    <Rule>
    1078       <Name>ConstDefinition</Name>
    1079       <CreateSourceNode>0</CreateSourceNode>
    1080       <RuleItems>
    1081         <Type>0</Type>
    1082         <RuleItem>
    1083           <Type>1</Type>
    1084           <Optional>0</Optional>
    1085           <Repetitive>0</Repetitive>
    1086           <NonTerminal>ConstName</NonTerminal>
    1087         </RuleItem>
    1088         <RuleItem>
    1089           <Type>0</Type>
    1090           <Optional>0</Optional>
    1091           <Repetitive>0</Repetitive>
    1092           <Terminal>:</Terminal>
    1093         </RuleItem>
    1094         <RuleItem>
    1095           <Type>1</Type>
    1096           <Optional>0</Optional>
    1097           <Repetitive>0</Repetitive>
    1098           <NonTerminal>TypeReference</NonTerminal>
    1099         </RuleItem>
    1100         <RuleItem>
    1101           <Type>0</Type>
    1102           <Optional>0</Optional>
    1103           <Repetitive>0</Repetitive>
    1104           <Terminal>=</Terminal>
    1105         </RuleItem>
    1106         <RuleItem>
    1107           <Type>0</Type>
    1108           <Optional>0</Optional>
    1109           <Repetitive>0</Repetitive>
    1110           <Terminal>;</Terminal>
    1111         </RuleItem>
    1112       </RuleItems>
    1113     </Rule>
    1114     <Rule>
    1115       <Name>ConstName</Name>
    1116       <CreateSourceNode>0</CreateSourceNode>
    1117       <RuleItems>
    1118         <Type>0</Type>
     1257      <Name>ConstantName</Name>
     1258      <CreateSourceNode>0</CreateSourceNode>
     1259      <RuleItems>
     1260        <Type>0</Type>
     1261        <RuleItem>
     1262          <Type>1</Type>
     1263          <Optional>0</Optional>
     1264          <Repetitive>0</Repetitive>
     1265          <AnyExcept>0</AnyExcept>
     1266          <NonTerminal>Identifier</NonTerminal>
     1267        </RuleItem>
    11191268      </RuleItems>
    11201269    </Rule>
     
    11281277          <Optional>0</Optional>
    11291278          <Repetitive>0</Repetitive>
     1279          <AnyExcept>0</AnyExcept>
    11301280          <NonTerminal>Factor</NonTerminal>
    11311281        </RuleItem>
     
    11341284          <Optional>-1</Optional>
    11351285          <Repetitive>-1</Repetitive>
     1286          <AnyExcept>0</AnyExcept>
    11361287          <SubItems>
    11371288            <Type>0</Type>
     
    11401291              <Optional>0</Optional>
    11411292              <Repetitive>0</Repetitive>
     1293              <AnyExcept>0</AnyExcept>
    11421294              <NonTerminal>Factor</NonTerminal>
    11431295            </RuleItem>
     
    11461298              <Optional>0</Optional>
    11471299              <Repetitive>0</Repetitive>
     1300              <AnyExcept>0</AnyExcept>
    11481301              <NonTerminal>Operator</NonTerminal>
    11491302            </RuleItem>
     
    11611314          <Optional>0</Optional>
    11621315          <Repetitive>0</Repetitive>
     1316          <AnyExcept>0</AnyExcept>
    11631317          <NonTerminal>VariableReference</NonTerminal>
    11641318        </RuleItem>
     
    11671321          <Optional>0</Optional>
    11681322          <Repetitive>0</Repetitive>
    1169           <NonTerminal>ConstReference</NonTerminal>
     1323          <AnyExcept>0</AnyExcept>
     1324          <NonTerminal>ConstantReference</NonTerminal>
    11701325        </RuleItem>
    11711326        <RuleItem>
     
    11731328          <Optional>0</Optional>
    11741329          <Repetitive>0</Repetitive>
     1330          <AnyExcept>0</AnyExcept>
    11751331          <SubItems>
    11761332            <Type>0</Type>
     
    11791335              <Optional>0</Optional>
    11801336              <Repetitive>0</Repetitive>
     1337              <AnyExcept>0</AnyExcept>
    11811338              <Terminal>(</Terminal>
    11821339            </RuleItem>
     
    11851342              <Optional>0</Optional>
    11861343              <Repetitive>0</Repetitive>
     1344              <AnyExcept>0</AnyExcept>
    11871345              <NonTerminal>Expression</NonTerminal>
    11881346            </RuleItem>
     
    11911349              <Optional>0</Optional>
    11921350              <Repetitive>0</Repetitive>
     1351              <AnyExcept>0</AnyExcept>
    11931352              <Terminal>)</Terminal>
    11941353            </RuleItem>
     
    11991358          <Optional>0</Optional>
    12001359          <Repetitive>0</Repetitive>
     1360          <AnyExcept>0</AnyExcept>
    12011361          <NonTerminal>Number</NonTerminal>
    12021362        </RuleItem>
     
    12051365          <Optional>0</Optional>
    12061366          <Repetitive>0</Repetitive>
     1367          <AnyExcept>0</AnyExcept>
    12071368          <NonTerminal>String</NonTerminal>
    12081369        </RuleItem>
     
    12181379          <Optional>0</Optional>
    12191380          <Repetitive>0</Repetitive>
     1381          <AnyExcept>0</AnyExcept>
    12201382          <Terminal>&lt;</Terminal>
    12211383        </RuleItem>
     
    12241386          <Optional>0</Optional>
    12251387          <Repetitive>0</Repetitive>
     1388          <AnyExcept>0</AnyExcept>
    12261389          <Terminal>&gt;</Terminal>
    12271390        </RuleItem>
     
    12301393          <Optional>0</Optional>
    12311394          <Repetitive>0</Repetitive>
     1395          <AnyExcept>0</AnyExcept>
    12321396          <Terminal>&lt;=</Terminal>
    12331397        </RuleItem>
     
    12361400          <Optional>0</Optional>
    12371401          <Repetitive>0</Repetitive>
     1402          <AnyExcept>0</AnyExcept>
    12381403          <Terminal>&gt;=</Terminal>
    12391404        </RuleItem>
     
    12421407          <Optional>0</Optional>
    12431408          <Repetitive>0</Repetitive>
     1409          <AnyExcept>0</AnyExcept>
    12441410          <Terminal>=</Terminal>
    12451411        </RuleItem>
     
    12481414          <Optional>0</Optional>
    12491415          <Repetitive>0</Repetitive>
     1416          <AnyExcept>0</AnyExcept>
    12501417          <Terminal>&lt;&gt;</Terminal>
    12511418        </RuleItem>
     
    12541421          <Optional>0</Optional>
    12551422          <Repetitive>0</Repetitive>
     1423          <AnyExcept>0</AnyExcept>
    12561424          <Terminal>+</Terminal>
    12571425        </RuleItem>
     
    12601428          <Optional>0</Optional>
    12611429          <Repetitive>0</Repetitive>
     1430          <AnyExcept>0</AnyExcept>
    12621431          <Terminal>-</Terminal>
    12631432        </RuleItem>
     
    12661435          <Optional>0</Optional>
    12671436          <Repetitive>0</Repetitive>
     1437          <AnyExcept>0</AnyExcept>
    12681438          <Terminal>/</Terminal>
    12691439        </RuleItem>
     
    12721442          <Optional>0</Optional>
    12731443          <Repetitive>0</Repetitive>
     1444          <AnyExcept>0</AnyExcept>
    12741445          <Terminal>*</Terminal>
    12751446        </RuleItem>
     
    12781449          <Optional>0</Optional>
    12791450          <Repetitive>0</Repetitive>
     1451          <AnyExcept>0</AnyExcept>
    12801452          <Terminal>div</Terminal>
    12811453        </RuleItem>
     
    12841456          <Optional>0</Optional>
    12851457          <Repetitive>0</Repetitive>
     1458          <AnyExcept>0</AnyExcept>
    12861459          <Terminal>+</Terminal>
    12871460        </RuleItem>
     
    12901463          <Optional>0</Optional>
    12911464          <Repetitive>0</Repetitive>
     1465          <AnyExcept>0</AnyExcept>
    12921466          <Terminal>-</Terminal>
    12931467        </RuleItem>
     
    12951469    </Rule>
    12961470    <Rule>
    1297       <Name>ConstReference</Name>
    1298       <CreateSourceNode>0</CreateSourceNode>
    1299       <RuleItems>
    1300         <Type>0</Type>
    1301         <RuleItem>
    1302           <Type>1</Type>
    1303           <Optional>0</Optional>
    1304           <Repetitive>0</Repetitive>
     1471      <Name>ConstantReference</Name>
     1472      <CreateSourceNode>0</CreateSourceNode>
     1473      <RuleItems>
     1474        <Type>0</Type>
     1475        <RuleItem>
     1476          <Type>1</Type>
     1477          <Optional>0</Optional>
     1478          <Repetitive>0</Repetitive>
     1479          <AnyExcept>0</AnyExcept>
    13051480          <NonTerminal>Identifier</NonTerminal>
    13061481        </RuleItem>
     
    13161491          <Optional>0</Optional>
    13171492          <Repetitive>0</Repetitive>
     1493          <AnyExcept>0</AnyExcept>
    13181494          <Terminal>'</Terminal>
    13191495        </RuleItem>
     
    13221498          <Optional>-1</Optional>
    13231499          <Repetitive>-1</Repetitive>
     1500          <AnyExcept>0</AnyExcept>
    13241501          <NonTerminal>StringCharacter</NonTerminal>
    13251502        </RuleItem>
     
    13281505          <Optional>0</Optional>
    13291506          <Repetitive>0</Repetitive>
     1507          <AnyExcept>0</AnyExcept>
    13301508          <Terminal>'</Terminal>
    13311509        </RuleItem>
     
    13361514      <CreateSourceNode>0</CreateSourceNode>
    13371515      <RuleItems>
    1338         <Type>0</Type>
     1516        <Type>1</Type>
     1517        <RuleItem>
     1518          <Type>0</Type>
     1519          <Optional>0</Optional>
     1520          <Repetitive>0</Repetitive>
     1521          <AnyExcept>-1</AnyExcept>
     1522          <Terminal>'</Terminal>
     1523        </RuleItem>
     1524        <RuleItem>
     1525          <Type>0</Type>
     1526          <Optional>0</Optional>
     1527          <Repetitive>0</Repetitive>
     1528          <AnyExcept>0</AnyExcept>
     1529          <Terminal>''</Terminal>
     1530        </RuleItem>
    13391531      </RuleItems>
    13401532    </Rule>
     
    13481540          <Optional>0</Optional>
    13491541          <Repetitive>0</Repetitive>
     1542          <AnyExcept>0</AnyExcept>
    13501543          <NonTerminal>Identifier</NonTerminal>
     1544        </RuleItem>
     1545      </RuleItems>
     1546    </Rule>
     1547    <Rule>
     1548      <Name>Comment1</Name>
     1549      <CreateSourceNode>0</CreateSourceNode>
     1550      <RuleItems>
     1551        <Type>0</Type>
     1552        <RuleItem>
     1553          <Type>0</Type>
     1554          <Optional>0</Optional>
     1555          <Repetitive>0</Repetitive>
     1556          <AnyExcept>0</AnyExcept>
     1557          <Terminal>{</Terminal>
     1558        </RuleItem>
     1559        <RuleItem>
     1560          <Type>0</Type>
     1561          <Optional>-1</Optional>
     1562          <Repetitive>-1</Repetitive>
     1563          <AnyExcept>-1</AnyExcept>
     1564          <Terminal>}</Terminal>
     1565        </RuleItem>
     1566        <RuleItem>
     1567          <Type>0</Type>
     1568          <Optional>0</Optional>
     1569          <Repetitive>0</Repetitive>
     1570          <AnyExcept>0</AnyExcept>
     1571          <Terminal>}</Terminal>
     1572        </RuleItem>
     1573      </RuleItems>
     1574    </Rule>
     1575    <Rule>
     1576      <Name>Comment2</Name>
     1577      <CreateSourceNode>0</CreateSourceNode>
     1578      <RuleItems>
     1579        <Type>0</Type>
     1580        <RuleItem>
     1581          <Type>0</Type>
     1582          <Optional>0</Optional>
     1583          <Repetitive>0</Repetitive>
     1584          <AnyExcept>0</AnyExcept>
     1585          <Terminal>(*</Terminal>
     1586        </RuleItem>
     1587        <RuleItem>
     1588          <Type>0</Type>
     1589          <Optional>-1</Optional>
     1590          <Repetitive>-1</Repetitive>
     1591          <AnyExcept>-1</AnyExcept>
     1592          <Terminal>*)</Terminal>
     1593        </RuleItem>
     1594        <RuleItem>
     1595          <Type>0</Type>
     1596          <Optional>0</Optional>
     1597          <Repetitive>0</Repetitive>
     1598          <AnyExcept>0</AnyExcept>
     1599          <Terminal>*)</Terminal>
     1600        </RuleItem>
     1601      </RuleItems>
     1602    </Rule>
     1603    <Rule>
     1604      <Name>CommentLine</Name>
     1605      <CreateSourceNode>0</CreateSourceNode>
     1606      <RuleItems>
     1607        <Type>0</Type>
     1608        <RuleItem>
     1609          <Type>0</Type>
     1610          <Optional>0</Optional>
     1611          <Repetitive>0</Repetitive>
     1612          <AnyExcept>0</AnyExcept>
     1613          <Terminal>//</Terminal>
     1614        </RuleItem>
     1615        <RuleItem>
     1616          <Type>0</Type>
     1617          <Optional>-1</Optional>
     1618          <Repetitive>-1</Repetitive>
     1619          <AnyExcept>-1</AnyExcept>
     1620          <Terminal>\r\n</Terminal>
     1621        </RuleItem>
     1622      </RuleItems>
     1623    </Rule>
     1624    <Rule>
     1625      <Name>CompilerDirective</Name>
     1626      <CreateSourceNode>0</CreateSourceNode>
     1627      <RuleItems>
     1628        <Type>0</Type>
     1629        <RuleItem>
     1630          <Type>0</Type>
     1631          <Optional>0</Optional>
     1632          <Repetitive>0</Repetitive>
     1633          <AnyExcept>0</AnyExcept>
     1634          <Terminal>{$</Terminal>
     1635        </RuleItem>
     1636        <RuleItem>
     1637          <Type>1</Type>
     1638          <Optional>0</Optional>
     1639          <Repetitive>0</Repetitive>
     1640          <AnyExcept>0</AnyExcept>
     1641          <NonTerminal>Identifier</NonTerminal>
     1642        </RuleItem>
     1643        <RuleItem>
     1644          <Type>0</Type>
     1645          <Optional>0</Optional>
     1646          <Repetitive>0</Repetitive>
     1647          <AnyExcept>0</AnyExcept>
     1648          <Terminal>}</Terminal>
     1649        </RuleItem>
     1650      </RuleItems>
     1651    </Rule>
     1652    <Rule>
     1653      <Name>UnitInitialization</Name>
     1654      <CreateSourceNode>0</CreateSourceNode>
     1655      <RuleItems>
     1656        <Type>0</Type>
     1657        <RuleItem>
     1658          <Type>0</Type>
     1659          <Optional>0</Optional>
     1660          <Repetitive>0</Repetitive>
     1661          <AnyExcept>0</AnyExcept>
     1662          <Terminal>initialization</Terminal>
     1663        </RuleItem>
     1664      </RuleItems>
     1665    </Rule>
     1666    <Rule>
     1667      <Name>UnitFinalization</Name>
     1668      <CreateSourceNode>0</CreateSourceNode>
     1669      <RuleItems>
     1670        <Type>0</Type>
     1671        <RuleItem>
     1672          <Type>0</Type>
     1673          <Optional>0</Optional>
     1674          <Repetitive>0</Repetitive>
     1675          <AnyExcept>0</AnyExcept>
     1676          <Terminal>finalization</Terminal>
     1677        </RuleItem>
     1678      </RuleItems>
     1679    </Rule>
     1680    <Rule>
     1681      <Name>TypeDefinition</Name>
     1682      <CreateSourceNode>0</CreateSourceNode>
     1683      <RuleItems>
     1684        <Type>0</Type>
     1685        <RuleItem>
     1686          <Type>1</Type>
     1687          <Optional>0</Optional>
     1688          <Repetitive>0</Repetitive>
     1689          <AnyExcept>0</AnyExcept>
     1690          <NonTerminal>Identifier</NonTerminal>
     1691        </RuleItem>
     1692        <RuleItem>
     1693          <Type>0</Type>
     1694          <Optional>0</Optional>
     1695          <Repetitive>0</Repetitive>
     1696          <AnyExcept>0</AnyExcept>
     1697          <Terminal>=</Terminal>
     1698        </RuleItem>
     1699        <RuleItem>
     1700          <Type>1</Type>
     1701          <Optional>0</Optional>
     1702          <Repetitive>0</Repetitive>
     1703          <AnyExcept>0</AnyExcept>
     1704          <NonTerminal>TypeReference</NonTerminal>
     1705        </RuleItem>
     1706        <RuleItem>
     1707          <Type>0</Type>
     1708          <Optional>0</Optional>
     1709          <Repetitive>0</Repetitive>
     1710          <AnyExcept>0</AnyExcept>
     1711          <Terminal>;</Terminal>
     1712        </RuleItem>
     1713      </RuleItems>
     1714    </Rule>
     1715    <Rule>
     1716      <Name>ConstantDefinition</Name>
     1717      <CreateSourceNode>0</CreateSourceNode>
     1718      <RuleItems>
     1719        <Type>0</Type>
     1720        <RuleItem>
     1721          <Type>1</Type>
     1722          <Optional>0</Optional>
     1723          <Repetitive>0</Repetitive>
     1724          <AnyExcept>0</AnyExcept>
     1725          <NonTerminal>ConstantName</NonTerminal>
     1726        </RuleItem>
     1727        <RuleItem>
     1728          <Type>0</Type>
     1729          <Optional>0</Optional>
     1730          <Repetitive>0</Repetitive>
     1731          <AnyExcept>0</AnyExcept>
     1732          <Terminal>:</Terminal>
     1733        </RuleItem>
     1734        <RuleItem>
     1735          <Type>1</Type>
     1736          <Optional>0</Optional>
     1737          <Repetitive>0</Repetitive>
     1738          <AnyExcept>0</AnyExcept>
     1739          <NonTerminal>TypeReference</NonTerminal>
     1740        </RuleItem>
     1741        <RuleItem>
     1742          <Type>0</Type>
     1743          <Optional>0</Optional>
     1744          <Repetitive>0</Repetitive>
     1745          <AnyExcept>0</AnyExcept>
     1746          <Terminal>=</Terminal>
     1747        </RuleItem>
     1748        <RuleItem>
     1749          <Type>1</Type>
     1750          <Optional>0</Optional>
     1751          <Repetitive>0</Repetitive>
     1752          <AnyExcept>0</AnyExcept>
     1753          <NonTerminal>ConstantReference</NonTerminal>
     1754        </RuleItem>
     1755        <RuleItem>
     1756          <Type>0</Type>
     1757          <Optional>0</Optional>
     1758          <Repetitive>0</Repetitive>
     1759          <AnyExcept>0</AnyExcept>
     1760          <Terminal>;</Terminal>
    13511761        </RuleItem>
    13521762      </RuleItems>
Note: See TracChangeset for help on using the changeset viewer.