Ignore:
Timestamp:
Nov 9, 2009, 4:15:39 PM (15 years ago)
Author:
george
Message:
  • Přidáno: Parsování pascalovského bloku var a begin-end.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/Void/UModel.pas

    r9 r11  
    3636  end;
    3737
    38   { TModel }
    39 
    40   TModel = class
    41   private
     38  TModule = class
    4239  public
    4340    Variables: TList;
    4441    Procedures: TList;
    4542    BeginEnd: TBeginEnd;
     43    constructor Create;
     44    destructor Destroy; override;
     45    procedure Clear;
     46    function FindProcedureByName(AName: string): TProcedure;
    4647    function FindVariableByName(AName: string): TVariable;
    47     function FindProcedureByName(AName: string): TProcedure;
    4848    procedure Init;
     49  end;
     50
     51  { TModel }
     52
     53  TModel = class
     54  private
     55  public
     56    Module: TModule;
    4957    procedure Clear;
    5058    constructor Create;
     
    5664{ TModel }
    5765
     66procedure TModel.Clear;
     67begin
     68  Module.Clear;
     69end;
     70
    5871constructor TModel.Create;
     72begin
     73  Module := TModule.Create;
     74end;
     75
     76destructor TModel.Destroy;
     77begin
     78  Module.Destroy;
     79  inherited Destroy;
     80end;
     81
     82{ TBeginEnd }
     83
     84constructor TBeginEnd.Create;
     85begin
     86  Commands := TList.Create;
     87end;
     88
     89destructor TBeginEnd.Destroy;
     90var
     91  I: Integer;
     92begin
     93  for I := 0 to Commands.Count - 1 do
     94    TCommand(Commands[I]).Destroy;
     95  Commands.Destroy;
     96  inherited Destroy;
     97end;
     98
     99procedure TBeginEnd.Clear;
     100var
     101  I: Integer;
     102begin
     103  for I := 0 to Commands.Count - 1 do
     104    TCommand(Commands[I]).Destroy;
     105  Commands.Clear;
     106end;
     107
     108{ TCommand }
     109
     110constructor TCommand.Create;
     111begin
     112  Parameters := TStringList.Create;
     113end;
     114
     115destructor TCommand.Destroy;
     116begin
     117  Parameters.Destroy;
     118  inherited Destroy;
     119end;
     120
     121constructor TProcedure.Create;
     122begin
     123  BeginEnd := TBeginEnd.Create;
     124  Parameters := TStringList.Create;
     125end;
     126
     127destructor TProcedure.Destroy;
     128begin
     129  Parameters.Destroy;
     130  BeginEnd.Destroy;
     131  inherited Destroy;
     132end;
     133
     134{ TModule }
     135
     136constructor TModule.Create;
    59137begin
    60138  Variables := TList.Create;
     
    63141end;
    64142
    65 destructor TModel.Destroy;
     143destructor TModule.Destroy;
    66144var
    67145  I: Integer;
     
    77155end;
    78156
    79 function TModel.FindVariableByName(AName: string): TVariable;
     157function TModule.FindVariableByName(AName: string): TVariable;
    80158var
    81159  I: Integer;
     
    87165end;
    88166
    89 function TModel.FindProcedureByName(AName: string): TProcedure;
     167function TModule.FindProcedureByName(AName: string): TProcedure;
    90168var
    91169  I: Integer;
     
    97175end;
    98176
    99 procedure TModel.Init;
     177
     178procedure TModule.Init;
    100179begin
    101180  with TProcedure(Procedures[Procedures.Add(TProcedure.Create)]) do begin
     
    110189end;
    111190
    112 procedure TModel.Clear;
     191procedure TModule.Clear;
    113192var
    114193  I: Integer;
     
    121200end;
    122201
    123 
    124 { TBeginEnd }
    125 
    126 constructor TBeginEnd.Create;
    127 begin
    128   Commands := TList.Create;
    129 end;
    130 
    131 destructor TBeginEnd.Destroy;
    132 var
    133   I: Integer;
    134 begin
    135   for I := 0 to Commands.Count - 1 do
    136     TCommand(Commands[I]).Destroy;
    137   Commands.Destroy;
    138   inherited Destroy;
    139 end;
    140 
    141 procedure TBeginEnd.Clear;
    142 var
    143   I: Integer;
    144 begin
    145   for I := 0 to Commands.Count - 1 do
    146     TCommand(Commands[I]).Destroy;
    147   Commands.Clear;
    148 end;
    149 
    150 { TCommand }
    151 
    152 constructor TCommand.Create;
    153 begin
    154   Parameters := TStringList.Create;
    155 end;
    156 
    157 destructor TCommand.Destroy;
    158 begin
    159   Parameters.Destroy;
    160   inherited Destroy;
    161 end;
    162 
    163 constructor TProcedure.Create;
    164 begin
    165   BeginEnd := TBeginEnd.Create;
    166   Parameters := TStringList.Create;
    167 end;
    168 
    169 destructor TProcedure.Destroy;
    170 begin
    171   Parameters.Destroy;
    172   BeginEnd.Destroy;
    173   inherited Destroy;
    174 end;
    175 
    176202end.
    177203
Note: See TracChangeset for help on using the changeset viewer.