public dynamic ExecuteFunc(StructFunc func) { Log("Running Func:" + func.Name); return(func.Exec()); return(func.LocalScope); }
public StructFunc ParseFunc(ref int i) { bool is_static = false; Log("Begun parsing function", i, false); if (toks.Tokes[i].Token != Token.Func) { Error(i, "Expecting 'func' definition."); } if (Peek(i + 1).Text == "static") { is_static = true; i++; } string func_name = Peek(i + 1).Text; if (func_name.Contains("test1")) { int v = 5; } Log("Module func:" + func_name + " static:" + is_static, i, false); i += 2; StructFunc func = new StructFunc(); func.Static = is_static; func.FuncName = func_name; var ftok = toks.Tokes[i]; if (ftok.Text != "(") { Error(i, "Expected begining of function definition parameters."); // Console.WriteLine("Error, expected ("); } var pars = ParseParameters(ref i); Log("ParsPassed:", i); var code_body = ParseCodeBody(ref i); Log("Parsed code-body.", i); func.Code = code_body; func.Pars = pars; return(func); }
public CodeScope RunEntry() { StructFunc entry_func = Entry.FindSystemFunc("Entry"); if (entry_func == null) { Error("Unable to find entry point."); } PushScope(SystemScope); return(ExecuteFunc(entry_func)); PopScope(); }
public void WriteNewFunc(StructFunc func) { C("public "); if (func.Static) { C("static "); } C(func.FuncName + "("); WritePars(func.Pars); Write(")"); Write("{"); WriteCode(func.Code); Write("}"); }
public void WriteFunc(StructFunc func) { Console.WriteLine("WriteFunc:" + func.Name + "!"); C("public "); if (func.Static) { C("static "); } C("dynamic " + func.FuncName + "("); WritePars(func.Pars); Write(")"); Write("{"); if (func.FuncName == "Get") { int v = 5; } WriteCode(func.Code); Write("return null;"); Write("}"); }
public SynFunc(StructFunc link) { Link = link; Name = link.FuncName; Type = FuncType.SCode; }