public static void parseFile(Token token, EnegyData data, VariabelDatabase db) { if (parsers == null) setParser(); token.next(); while(data.State == RunningState.Normal && token.getCache().type() != TokenType.EOF) { ParserInterface p; switch (token.getCache().type()) { case TokenType.Use: case TokenType.Class: case TokenType.Function: p = parsers[token.getCache().type()]; break; case TokenType.Public: p = pp; break; default: data.setError(new ScriptError("In file you are only allow to use 'use', 'public', 'class' or 'function'", token.getCache().posision()), db); return; } p.parse(data, db, token); } }
public static CVar convert(object c, EnegyData data, VariabelDatabase db) { if (c is string) { return Types.toString((string)c, data, db, new Posision(0,0)); } else if (c is bool) { return new BooleanVariabel((bool)c); } else if (c is FunctionVariabel) { return (FunctionVariabel)c; } else if (c is double) { return Types.toInt((double)c, data, db, new Posision(0,0)); } else if (c is int) { return Types.toInt(Convert.ToDouble((int)c), data, db, new Posision(0,0)); } else if (c is ObjectVariabel) return (ObjectVariabel)c; else if(c is ClassVariabel) { return (ClassVariabel)c; } data.setError(new ScriptError("Unkown type: " + c.GetType().Name, new Posision(0, 0)), db); return new NullVariabel(); }
public Energy() { Data = new EnegyData() { Config = new ScriptConfig() }; //set the impontans config so the script not can change it! Data.Config.append("tcp.enable", "false", false); Data.Config.append("file.system.enable", "false", false); VariabelDatabase = new VariabelDatabase(); StartItems.CreateStartItems(Data, VariabelDatabase); }
public static void parse(Token token, EnegyData data, VariabelDatabase db) { if(parsers == null) { setParser(); } token.next(); TokenType type; while (data.State == RunningState.Normal && (type = token.getCache().type()) != TokenType.EOF) { if (parsers.ContainsKey(type)) { parsers[type].parse(data, db, token); } else { new VariabelParser().parse(data, db, token); } } }
public virtual void setError(ScriptError er, VariabelDatabase db) { if (State == RunningState.Error) return; State = RunningState.Error; ErrorData = er; if (Config.get("error.log.file", "null") != "null") { if (!File.Exists(Config.get("error.log.file", "null"))) { File.Create(Config.get("error.log.file", "null")).Close(); } StreamWriter sw = new StreamWriter(Config.get("error.log.file", "null"), true); sw.WriteLine("[Line: " + er.Posision.Line + ", Row: " + er.Posision.Row + "]" + er.Message); sw.Flush(); sw.Close(); } if (ErrorHandler != null) { //okay here may not be a error handler and state must be set to normal FunctionVariabel eh = ErrorHandler; ErrorHandler = null; if (Config.get("error.handler.enable", "1") == "1") { State = RunningState.Normal; eh.call(this, db, er.Message, er.Posision.Line, er.Posision.Row); } } }
private static CVar Print_call(CVar[] stack, VariabelDatabase db, EnegyData data, Posision pos) { Console.WriteLine(stack[0].toString(pos, data, db)); return null; }
private static CVar Useage_call(CVar[] stack, VariabelDatabase db, EnegyData data, Posision pos) { Console.WriteLine("----container----"); foreach(string co in db.ContainerKeys()) { Console.WriteLine("-" + co); } Console.WriteLine("------Global-----"); foreach(string go in db.GlobalsKey()) { Console.WriteLine("-" + go); } return new NullVariabel(); }
public void Reaset() { VariabelDatabase = new VariabelDatabase(); Data.setNormal(); }