1
0
mirror of https://github.com/moparisthebest/Simba synced 2024-11-25 18:52:15 -05:00

Working on importing types and shit to CPascal... ATM it complains like hell about unknown types but runs

git-svn-id: http://www.villavu.com/repositories/merlijn/mufasa@525 3f818213-9676-44b0-a9b4-5e4c4e03d09d
This commit is contained in:
BenLand100 2010-02-05 19:24:27 +00:00
parent 4570a4738d
commit 3864347683
6 changed files with 22 additions and 14 deletions

Binary file not shown.

Binary file not shown.

View File

@ -10,8 +10,8 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<TargetFileExt Value=""/> <TargetFileExt Value=""/>
<Title Value="Simba"/> <Title Value="Simba"/>
<Icon Value="0"/>
<UseXPManifest Value="True"/> <UseXPManifest Value="True"/>
<Icon Value="0"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>

View File

@ -1,7 +1,7 @@
object Form1: TForm1 object Form1: TForm1
Left = 273 Left = 593
Height = 557 Height = 557
Top = 233 Top = 321
Width = 734 Width = 734
ActiveControl = ScriptPanel ActiveControl = ScriptPanel
Caption = 'THA FUKING SIMBA' Caption = 'THA FUKING SIMBA'
@ -387,10 +387,10 @@ object Form1: TForm1
EditLabel.AnchorSideTop.Side = asrCenter EditLabel.AnchorSideTop.Side = asrCenter
EditLabel.AnchorSideRight.Control = LabeledEditSearch EditLabel.AnchorSideRight.Control = LabeledEditSearch
EditLabel.AnchorSideBottom.Control = LabeledEditSearch EditLabel.AnchorSideBottom.Control = LabeledEditSearch
EditLabel.Left = 67 EditLabel.Left = 65
EditLabel.Height = 18 EditLabel.Height = 18
EditLabel.Top = 10 EditLabel.Top = 10
EditLabel.Width = 34 EditLabel.Width = 36
EditLabel.Caption = 'Find: ' EditLabel.Caption = 'Find: '
EditLabel.ParentColor = False EditLabel.ParentColor = False
LabelPosition = lpLeft LabelPosition = lpLeft
@ -405,7 +405,7 @@ object Form1: TForm1
Left = 320 Left = 320
Height = 22 Height = 22
Top = 7 Top = 7
Width = 97 Width = 98
Caption = 'Match case' Caption = 'Match case'
OnClick = CheckBoxMatchCaseClick OnClick = CheckBoxMatchCaseClick
TabOrder = 1 TabOrder = 1

View File

@ -160,6 +160,7 @@ var
libcpascal: integer; libcpascal: integer;
interp_init: function(precomp: TPrecompiler_Callback; err: TErrorHandeler_Callback): Pointer; cdecl; interp_init: function(precomp: TPrecompiler_Callback; err: TErrorHandeler_Callback): Pointer; cdecl;
interp_meth: procedure(interp: Pointer; addr: Pointer; def: PChar); cdecl; interp_meth: procedure(interp: Pointer; addr: Pointer; def: PChar); cdecl;
interp_type: procedure(interp: Pointer; def: PChar); cdecl;
interp_set: procedure(interp: Pointer; ppg: PChar); cdecl; interp_set: procedure(interp: Pointer; ppg: PChar); cdecl;
interp_comp: function(interp: Pointer): boolean; cdecl; interp_comp: function(interp: Pointer): boolean; cdecl;
interp_run: function(interp: Pointer): boolean; cdecl; interp_run: function(interp: Pointer): boolean; cdecl;
@ -704,6 +705,7 @@ begin
raise Exception.Create('CPascal library not found'); raise Exception.Create('CPascal library not found');
Pointer(interp_init):= GetProcAddress(libcpascal, PChar('interp_init')); Pointer(interp_init):= GetProcAddress(libcpascal, PChar('interp_init'));
Pointer(interp_meth):= GetProcAddress(libcpascal, PChar('interp_meth')); Pointer(interp_meth):= GetProcAddress(libcpascal, PChar('interp_meth'));
Pointer(interp_type):= GetProcAddress(libcpascal, PChar('interp_type'));
Pointer(interp_set):= GetProcAddress(libcpascal, PChar('interp_set')); Pointer(interp_set):= GetProcAddress(libcpascal, PChar('interp_set'));
Pointer(interp_comp):= GetProcAddress(libcpascal, PChar('interp_comp')); Pointer(interp_comp):= GetProcAddress(libcpascal, PChar('interp_comp'));
Pointer(interp_run):= GetProcAddress(libcpascal, PChar('interp_run')); Pointer(interp_run):= GetProcAddress(libcpascal, PChar('interp_run'));
@ -758,8 +760,12 @@ begin
CurrThread := Self; CurrThread := Self;
Starttime := GetTickCount; Starttime := GetTickCount;
psWriteln('Invoking CPascal Interpreter'); psWriteln('Invoking CPascal Interpreter');
if interp_comp(instance) then interp_type(self.instance,'type extended = real;');
begin interp_type(self.instance,'type tdtm = integer;');
interp_type(self.instance,'type pdtm = ^tdtm;');
interp_type(self.instance,'type TEIOS_Exported = record int1,int2,int3,int4,int5,int6,int7,int8,int9,int10,int11,int12,int13,int14:integer; end;');
//interp_type(self.instance,'type pointer = integer;');
for i := high(PluginsToLoad) downto 0 do for i := high(PluginsToLoad) downto 0 do
for ii := 0 to PluginsGlob.MPlugins[PluginsToLoad[i]].MethodLen - 1 do for ii := 0 to PluginsGlob.MPlugins[PluginsToLoad[i]].MethodLen - 1 do
with PluginsGlob.MPlugins[PluginsToLoad[i]].Methods[ii] do with PluginsGlob.MPlugins[PluginsToLoad[i]].Methods[ii] do
@ -768,6 +774,8 @@ begin
if ExportedMethods[i].FuncPtr <> nil then if ExportedMethods[i].FuncPtr <> nil then
with ExportedMethods[i] do with ExportedMethods[i] do
interp_meth(self.instance,FuncPtr,PChar(FuncDecl)); interp_meth(self.instance,FuncPtr,PChar(FuncDecl));
if interp_comp(instance) then
begin
psWriteln('Compiled Successfully in ' + IntToStr(GetTickCount - Starttime) + 'ms'); psWriteln('Compiled Successfully in ' + IntToStr(GetTickCount - Starttime) + 'ms');
if CompileOnly then if CompileOnly then
exit; exit;