var S: TPaxScripter; LangPascal: TPaxPascal; LangBasic: TPaxBasic; LangC: TPaxC; begin /////// CREATE COMPILED MODULES ////////////////////// S := TPaxScripter.Create(nil); LangPascal := TPaxPascal.Create(nil); LangC := TPaxC.Create(nil); LangBasic := TPaxBasic.Create(nil); S.RegisterLanguage(LangPascal); S.RegisterLanguage(LangC); S.RegisterLanguage(LangBasic); S.AddModule('0', LangPascal.LanguageName); S.AddCode('0', 'const A = 17;'); S.AddCode('0', 'const B = 10 + A;'); S.AddModule('1', LangC.LanguageName); S.AddCode('1', 'void P(x){ print x; }'); S.AddModule('2', LangC.LanguageName); S.AddCode('2', 'using Classes, Forms;'); S.AddCode('2', 'class MyForm: TForm {'); S.AddCode('2', ' void MyForm(TComponent Owner) {'); S.AddCode('2', ' this = base.Create(Owner);'); S.AddCode('2', ' Caption = "MyForm"; '); S.AddCode('2', ' }'); S.AddCode('2', '}'); S.Compile; S.SaveModuleToFile('0', 'u0.bin'); S.SaveModuleToFile('1', 'u1.bin'); S.SaveModuleToFile('2', 'u2.bin'); S.Free; LangPascal.Free; LangC.Free; /////// USE COMPILED MODULES ///////////////////////// S := TPaxScripter.Create(nil); LangBasic := TPaxBasic.Create(nil); S.RegisterLanguage(LangBasic); // add a source code module S.AddModule('one', 'paxBasic'); S.AddCode('one', 'Dim F As MyForm'); S.AddCode('one', 'F = New MyForm(NULL)'); S.AddCode('one', 'F.Show()'); S.AddCode('one', 'print A'); S.AddCode('one', 'print B'); S.AddCode('one', 'P(300)'); // add compiled modules in a random order S.LoadModuleFromFile('1', 'u1.bin'); S.LoadModuleFromFile('0', 'u0.bin'); S.LoadModuleFromFile('2', 'u2.bin'); S.Run; S.Free; LangBasic.Free;