public ScriptVariable(object value, string name, Var_Types type, Var_State state) { Name = name; Type = type; State = state; Value = value; switch (Type) { case Var_Types.BYTEBUFFER: if (value == null) { Value = null; } else { Value = new ByteBuffer((ByteBuffer)value); } break; default: Value = value; break; } }
public ScriptVariable() { Value = (int)0; Name = "NULL"; Type = Var_Types.INT; State = Var_State.PUBLIC; }
public ScriptVariable() { Value = 0; Name = "NULL"; Type = Var_Types.INT; State = Var_State.PUBLIC; }
private void Add_Function(string name, int line, ScriptFile filein, Var_State state) { ScriptLabel scr_lab = new ScriptLabel(); scr_lab.Name = name.ToUpperInvariant(); scr_lab.Line = line; scr_lab.File = filein.Name; scr_lab.State = state; filein._functionlist.Add(scr_lab.Name, scr_lab); }
public ScriptVariable(object value, string name, Var_Types type, Var_State state) { Name = name; Type = type; State = state; Value = value; switch(Type) { case Var_Types.BYTEBUFFER: if (value == null) Value = null; else Value = new ByteBuffer((ByteBuffer)value); break; default: Value = value; break; } }
private static void Add_Function(string name, int line, string file, Var_State state) { ScriptLabel scr_lab = new ScriptLabel(); scr_lab.Name = name.ToUpperInvariant(); scr_lab.Line = line; scr_lab.File = file; scr_lab.State = state; if (!((ScriptFile)Files[file])._functionlist.ContainsKey(scr_lab.Name)) { ((ScriptFile)Files[file])._functionlist.Add(scr_lab.Name, scr_lab); } //Functionlist.Add(scr_lab); }
public static ScriptVariable Create_Variable(string type, string name, string value, Var_State v) { type = type.ToUpperInvariant(); name = name.ToUpperInvariant(); ScriptVariable new_var = new ScriptVariable(); new_var.Name = name; new_var.State = v; switch (type) { case "NULL": new_var.Type = Var_Types.NULL; break; case "INT": new_var.Type = Var_Types.INT; new_var.Value = Util.GetInt64(value); break; case "DOUBLE": new_var.Type = Var_Types.DOUBLE; new_var.Value = Util.GetDouble(value); break; case "STRING": new_var.Type = Var_Types.STRING; new_var.Value = System.Convert.ToString(value); break; case "FILEWRITER": if (Globals.AllowFiles) { //need to figure out how I want to let users write to files outside of the \Scripts\Files\ folder... new_var.Type = Var_Types.FILEWRITER; new_var.Value = new System.IO.StreamWriter(Globals.PATH + "\\Scripts\\Files\\" + System.Convert.ToString(value), false); } else { ScriptEngine.Script_Error("script tried to create file writer without permission"); } break; case "FILEWRITER_APPEND"://really good idea by toydolls if (Globals.AllowFiles) { new_var.Type = Var_Types.FILEWRITER; new_var.Value = new System.IO.StreamWriter(Globals.PATH + "\\Scripts\\Files\\" + System.Convert.ToString(value), true); } else { ScriptEngine.Script_Error("script tried to create file writer - append without permission"); } break; case "FILEREADER": if (Globals.AllowFiles) { new_var.Type = Var_Types.FILEREADER; if (System.IO.File.Exists(Globals.PATH + "\\Scripts\\Files\\" + System.Convert.ToString(value))) { new_var.Value = new System.IO.StreamReader(Globals.PATH + "\\Scripts\\Files\\" + System.Convert.ToString(value)); } else { ScriptEngine.Script_Error("file [" + value + "] does not exist for reading"); } } else { ScriptEngine.Script_Error("script tried to create file reader without permission"); } break; case "ARRAYLIST": new_var.Type = Var_Types.ARRAYLIST; new_var.Value = new System.Collections.ArrayList(Util.GetInt32(value)); break; case "SORTEDLIST": new_var.Type = Var_Types.SORTEDLIST; new_var.Value = new System.Collections.SortedList(Util.GetInt32(value)); break; case "STACK": new_var.Type = Var_Types.STACK; new_var.Value = new System.Collections.Stack(); break; case "QUEUE": new_var.Type = Var_Types.QUEUE; new_var.Value = new System.Collections.Queue(); break; case "BYTEBUFFER": new_var.Type = Var_Types.BYTEBUFFER; new_var.Value = new ByteBuffer(Util.GetInt32(value)); break; case "WINDOW": new_var.Type = Var_Types.WINDOW; new_var.Value = new ScriptWindow(); switch (value.ToUpperInvariant()) { case "NULL": ((ScriptWindow)new_var.Value).Set_Type(Win_Types.NULL); break; case "CMD": ((ScriptWindow)new_var.Value).Set_Type(Win_Types.CMD); break; case "GUI": ((ScriptWindow)new_var.Value).Set_Type(Win_Types.GUI); break; case "HTML": ((ScriptWindow)new_var.Value).Set_Type(Win_Types.HTML); break; case "GDI": ((ScriptWindow)new_var.Value).Set_Type(Win_Types.GDI); break; } break; case "THREAD": new_var.Type = Var_Types.THREAD; new_var.Value = ScriptEngine.CreateThread(value); ((ScriptThread)new_var.Value).Stop(); Threads.Add(((ScriptThread)new_var.Value).ID, ((ScriptThread)new_var.Value)); break; default: //check if it is a user defined type: if (ScriptEngine.Classes.ContainsKey(type)) { //Script_Class sc = (Script_Class)ScriptEngine.Classes[type]; new_var.Type = Var_Types.CLASS; new_var.Value = new Script_ClassData(); ((Script_ClassData)new_var.Value).Init(type); } else { ScriptEngine.Script_Error("INVALID VARIABLE TYPE"); } break; } return new_var; }