public static void InitFusion( ) { MainVM = new ManagedHost( ); ScriptSource init_ide_src = new ScriptSource("data/script/ide/ide_init.vs"); Compiler comp = new Compiler(); CompiledSource init_ide_compiled = comp.Compile(init_ide_src); MainVM.SetEntry(init_ide_compiled.EntryPoint); void InitIDE(int w, int h, int fs) { App = new FusionIDE(w, h, fs == 1); InitState = new States.CodeScreen(); App.Run(); } CFuncLink initIDE = new CFuncLink { Link = (t) => { InitIDE(t[0], t[1], t[2]); return(null); } }; MainVM.AddCFunc("InitIDE", initIDE); CodeScope scope = MainVM.RunEntry( ); }
static void Main(string[] args) { ScriptSource src = new ScriptSource("Foom/main.fs"); Compiler comp = new Compiler(); CompiledSource s = comp.Compile(src); ManagedHost test_vme = new ManagedHost(); test_vme.AddModule(new Module(s.EntryPoint)); InvaderAPP Foom = null; dynamic F_InitFoom(dynamic[] pars) { Console.WriteLine("Foom booting up."); Foom = new InvaderAPP(); return(null); } var InitFoom = new CFuncLink { Link = F_InitFoom, Name = "InitFoom" }; test_vme.RegFunc("InitFoom", InitFoom); System.Console.WriteLine("R:" + test_vme.ExecuteStaticFunc("Entry")); while (true) { } }