📄 unit2.pas
字号:
unit Unit2;
interface
const
total_stack_size=50;
type
stack=class
data: array[1..total_stack_size] of integer;
s_top: integer;
procedure init;
procedure push(a: integer);
function pop: integer;
function gettop: integer;
function empty: boolean;
function full: boolean;
end;
opnd=record
a, b: integer;
c : string;
end;
//a: 编号;b:数据类型;c:写在串中的值
optr=record
a, b: integer;
c: string;
d1, d2, d3, dr: integer;
end;
//a: 编号; b: 参数个数; c: 什么运算符号;
//d1, d2, d3: 三个参数的类型; dr: 返回值的类型;
opnd_table=class
data: array[1..100]of opnd;
pointor: integer;
procedure add(a, b: integer; c: string);
//a: 编号;b:数据类型;c:写在串中的值
function get_type(a: integer): integer;
function get_value(a: integer): string;
procedure init_table;
end;
optr_table=class
data: array[1..50]of optr;
function get_index(s: string): integer;
procedure init;
procedure get_parms(a, b, d1, d2, d3, dr: integer);
end;
implementation
procedure stack.init;
begin
s_top:=0;
end;
procedure stack.push(a: integer);
begin
if s_top<total_stack_size then
begin
s_top:=s_top+1;
data[s_top]:=a;
end;
end;
function stack.pop: integer;
begin
if s_top>0 then
begin
pop:=data[s_top];
s_top:=s_top-1;
end;
end;
function stack.gettop: integer;
begin
if s_top>0 then
begin
gettop:=data[s_top];
end;
end;
function stack.empty: boolean;
begin
empty:=false;
if s_top=0 then empty:=true;
end;
function stack.full: boolean;
begin
full:=false;
if s_top=total_stack_size then full:=true;
end;
procedure opnd_table.add(a, b: integer; c: string);
begin
if pointor<100 then begin
pointor:=pointor+1;
data[pointor].a:=a;
data[pointor].b:=b;
data[pointor].c:=c;
end;
end;
procedure opnd_table.init_table;
begin
pointor:=0;
end;
function opnd_table.get_type(a: integer): integer;
var
i: integer;
begin
get_type:=0;
for i:=1 to pointor do begin
if data[i].a=a then begin
get_type:=data[i].b;
end;
end;
end;
function opnd_table.get_value(a: integer): string;
var
i: integer;
begin
get_value:='';
for i:=1 to pointor do begin
if data[i].a=a then begin
get_value:=data[i].c;
end;
end;
end;
procedure optr_table.get_parms(a, b, d1, d2, d3, dr: integer);
begin
end;
procedure optr_table.init;
begin
end;
function optr_table.get_index(s: string): integer;
begin
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -