-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathlzr_interpreter.pas
45 lines (33 loc) · 1.17 KB
/
lzr_interpreter.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
unit lzr_interpreter;
{$mode objfpc}
interface
uses
SysUtils, Classes, Math, LexLib, YaccLib, superobject;
type
TSendMessage = function (const Name: ansistring; const V1, V2, V3: PtrUInt): Boolean of object;
TConnectFeature = function (const Source, Target: ansistring): Boolean of object;
TConnectData = function (const Source, Target: ansistring; const SourcePort, TargetPort: Integer): Boolean of object;
TMakeStrParam = function (const S: ansistring): PtrUInt of object;
TEmitMessage = procedure (const Line: ansistring) of object;
var
ObjTypes: ISuperObject = nil;
SymTable: ISuperObject = nil;
RegTable: ISuperObject = nil ;
OnMakeStrParam: TMakeStrParam = nil;
OnCreateModules: TNotifyEvent = nil;
OnSendMessage: TSendMessage = nil;
OnConnectFeature: TConnectFeature = nil;
OnConnectData: TConnectData = nil;
OnWriteLn: TEmitMessage = nil;
OnProjName: TEmitMessage = nil;
function Interpret(const Fn: string): Boolean ;
procedure PredefineInt(const S: string; const V: Integer);
implementation
type
TRegName = string;
var
filename: string = '';
RtOK: Boolean;
RegIndex: Integer = 0;
{$I yacc/lazradio.pas}
end.