public static void LoadString() { StackState s = RunEnvironment.Instance.LocalStack; ScriptObject arg1 = s.GetStackVar(0); if (arg1.Type == ScriptInterpreter.RunTime.ValueType.STRING) { Expression e = RunEnvironment.Instance.CompilationUnit(arg1.Value.RefPartHandle.StringValue); Func <ScriptObject> a = Expression.Lambda <Func <ScriptObject> >(e).Compile(); ScriptObject resoult = a(); if (resoult == null) { s.SetReturnVoid(); } else { s.SetReturn(resoult); } return; } s.SetReturnVoid(); }
public static void Error() { StackState s = RunEnvironment.Instance.LocalStack; ScriptObject arg1 = s.GetStackVar(0); if (arg1.Type == ScriptInterpreter.RunTime.ValueType.STRING) { string message = arg1.GetString(); throw new ScriptRunTimeException(message); } s.SetReturnVoid(); }
public static void OutPut() { StackState s = RunEnvironment.Instance.LocalStack; //获得第一个参数 ScriptObject arg1 = s.GetStackVar(0); TablePart tablePart = arg1.Value.RefPartHandle.ConverToTablePart(); for (int i = 0; i < tablePart.Count; i++) { Console.Write(tablePart.ArrayPart[i].GetString() + " "); } s.SetReturnVoid(); }
public static void GetMetatable() { StackState s = RunEnvironment.Instance.LocalStack; ScriptObject arg1 = s.GetStackVar(0); if (arg1.Type == ScriptInterpreter.RunTime.ValueType.TABLE) { ScriptObject metaTable = arg1.Value.RefPartHandle.ConverToTablePart().MetaTable; if (metaTable != null) { s.SetReturn(metaTable); } } s.SetReturnVoid(); }