Скачиваний:
13
Добавлен:
01.05.2014
Размер:
3.25 Кб
Скачать
(*
* uTrList.pas - ¬®¤г«м, ॠ«Ё§гойЁ© в Ў«Ёжг ваЁ ¤
* ver. 0.37
* 21.05.2007 serg
*)

unit uTrList;
interface

const triadTableSize = 200;
type
tUseInfo = record
isUse: Boolean; (* == १г«мв в нв®© ваЁ ¤л ­г¦Ґ­ ¤агЈЁ¬ ваЁ ¤ ¬*)
endUse: Integer; (* == ­ з «® ®Ў« бвЁ ЁбЇ®«м§®ў ­Ёп нв®© ваЁ ¤л *)
numTmpVar: Integer; (* == ­®¬Ґа ўаҐ¬Ґ­­®© ЇҐаҐ¬Ґ­­®©, ў Є®в®а®© еа ­Ёвбп १г«мв в *)
end;

Str20 = String[20];
tTriadData = record
(* Џ®«п, Ї®«гз Ґ¬лҐ ®в ‘Ё­в ЄбЁзҐбЄ®Ј® Ђ­ «Ё§ в®а  *)
(* num : Integer; *)
name: Str20;
op1: Str20;
op2: Str20;

(* Џ®«п, ­г¦­лҐ ¤«п ЇҐаҐў®¤  ў ЂбᥬЎ«Ґа *)
useInfo: tUseInfo; (* Ё­д  ®Ў ЁбЇ®«м§гҐ¬®б⨠१г«мв в  ¤ ­­®© ваЁ ¤л *)
end;
tTriadList = record
top: integer;
data: array[1..triadTableSize] of tTriadData;
end;

procedure copyTriad(var dest: tTriadData; const source: tTriadData);
procedure createTriad(var triada: tTriadData; name, op1, op2: Str20);
procedure createTriadList(var list: tTriadList);
procedure addTriadElemNum(var list: tTriadList; const triada: tTriadData; num: Integer);
procedure addTriadElemTop(var list: tTriadList; const triada: tTriadData);
procedure getTriadElemNum(const list: tTriadList; num: Byte; var triada: tTriadData);
procedure setTriadElemNum(var list: tTriadList; num: Byte; const triada: tTriadData);
procedure printTriadList(triadFile:string; const list: tTriadList);

var TriadList: tTriadList;

implementation

procedure copyTriad(var dest: tTriadData; const source: tTriadData);
begin
(* num : Integer; *)
dest.name:= source.name ;
dest.op1 := source.op1 ;
dest.op2 := source.op2 ;
dest.useInfo := source.useInfo;
end;
procedure createTriad(var triada: tTriadData;name, op1, op2: Str20);
begin
(* num : Integer; *)
triada.name:= name ;
triada.op1 := op1 ;
triada.op2 := op2 ;

triada.useInfo.isUse := false;
triada.useInfo.endUse := 0;
triada.useInfo.numTmpVar :=0;

end;


procedure createTriadList(var list: tTriadList);
begin
list.top := 0;
end;

procedure addTriadElemNum(var list: tTriadList; const triada: tTriadData;
num: Integer);
begin
if num > list.top then list.top := num;
copyTriad(list.data[num], triada);
end;
procedure addTriadElemTop(var list: tTriadList; const triada: tTriadData);
begin
inc(list.top);
copyTriad(list.data[list.top], triada);
end;

procedure getTriadElemNum(const list: tTriadList; num: Byte; var triada: tTriadData);
begin
copyTriad(triada, list.data[num]);
end;
procedure setTriadElemNum(var list: tTriadList; num: Byte; const triada: tTriadData);
begin
copyTriad(list.data[num],triada);
end;

procedure printTriadList(triadFile:string; const list: tTriadList);
var f: Text;
i: integer;
begin
assign(f, triadFile);
rewrite(f);
writeln(f, 'num':10, 'name': 10, 'op1': 10, 'op2': 10,
'isUse':10, 'endUse':10, 'numTmpVar':10);
with list do
for i:=1 to top do
with data[i] do
writeln(f, i:10, name: 10, op1: 10, op2: 10,
useInfo.isUse:10, useInfo.endUse:10, useInfo.numTmpVar:10);
close(f);
end;
end.
Соседние файлы в папке src