public void open(VariabelDatabase database, EnegyData data, Posision pos) { Class config = new Class("Config"); Method get = new Method("get"); get.GetAgumentStack().push("string", "name"); get.SetBody(Get_caller); get.SetStatic(); config.SetMethod(get, data, database, pos); Method isScriptLock = new Method("isScriptLock"); isScriptLock.SetBody(IsScriptLock_caller); isScriptLock.SetStatic(); config.SetMethod(isScriptLock, data, database, pos); Method set = new Method("set"); set.GetAgumentStack().push("string", "name"); set.GetAgumentStack().push("string", "value"); set.SetBody(Set_caller); set.SetStatic(); config.SetMethod(set, data, database, pos); Method isLocked = new Method("isLocked"); isLocked.SetStatic(); isLocked.GetAgumentStack().push("string", "name"); isLocked.SetBody(IsLocked_caller); config.SetMethod(isLocked, data, database, pos); database.pushClass(config, data); }
private static void createIntClass(EnegyData data, VariabelDatabase db, Posision pos) { Class i = new Class("int"); Method constructor = new Method(null); constructor.GetAgumentStack().push("int", "double", new NullVariabel()); constructor.SetBody(Constructor_caller1); i.SetConstructor(constructor, data, db, pos); Method toInt = new Method("toInt"); toInt.SetBody(ToInt_caller); i.SetMethod(toInt, data, db, pos); Method toString = new Method("toString"); toString.SetBody(ToString_caller1); i.SetMethod(toString, data, db, pos); Method convert = new Method("convert"); convert.SetStatic(); convert.GetAgumentStack().push("string", "int"); convert.SetBody(Convert_caller); i.SetMethod(convert, data, db, pos); db.pushClass(i, data); }
public ArrayVariabel(EnegyData data, VariabelDatabase db, Posision pos) : base(new ClassVariabel(new Class()), new Dictionary<string, PointerContainer>(), new Dictionary<string, MethodContainer>(), null, new System.Collections.ArrayList()) { Class c = new Class("array"); Method length = new Method("length"); length.SetBody(Length_caller); c.SetMethod(length, data, db, pos); Method hasValue = new Method("hasValue"); hasValue.GetAgumentStack().push("context"); hasValue.SetBody(HasValue_caller); c.SetMethod(hasValue, data, db, pos); Method hasKey = new Method("hasKey"); hasKey.GetAgumentStack().push("string", "context"); hasKey.SetBody(HasKey_caller); c.SetMethod(hasKey, data, db, pos); Method removeKey = new Method("removeKey"); removeKey.GetAgumentStack().push("string", "key"); removeKey.SetBody(RemoveKey_caller); c.SetMethod(removeKey, data, db, pos); Method removeValue = new Method("removeValue"); removeValue.GetAgumentStack().push("value"); removeValue.SetBody(RemoveValue_caller); c.SetMethod(removeValue, data, db, pos); ClassVariabel i = new ClassVariabel(c); ObjectVariabel o = i.createNew(db, data, new CVar[0], pos); Items = o.Items; }
public void open(VariabelDatabase database, EnegyData data, Posision pos) { if(data.Config.get("file.system.enable", "false") != "true") { data.setError(new ScriptError("You can use the plugin 'file' becuse it not enabled in the config system!", new Posision(0, 0)), database); return; } Class f = new Class("File"); Method exsist = new Method("exists"); exsist.SetStatic(); exsist.GetAgumentStack().push("string", "dir"); exsist.SetBody(Exsist_caller); f.SetMethod(exsist, data, database, pos); Method create = new Method("create"); create.SetStatic(); create.GetAgumentStack().push("string", "dir"); create.GetAgumentStack().push("string", "context", new NullVariabel()); create.SetBody(Create_caller); f.SetMethod(create, data, database, pos); Method delete = new Method("delete"); delete.SetStatic(); delete.GetAgumentStack().push("string", "dir"); delete.SetBody(Delete_caller); f.SetMethod(delete, data, database, pos); Method write = new Method("write"); write.SetStatic(); write.GetAgumentStack().push("string", "dir"); write.GetAgumentStack().push("string", "context"); write.SetBody(Write_caller); f.SetMethod(write, data, database, pos); Method read = new Method("read"); read.SetStatic(); read.GetAgumentStack().push("string", "dir"); read.SetBody(Read_caller); f.SetMethod(read, data, database, pos); database.pushClass(f, data); }
public void open(VariabelDatabase database, EnegyData data, Posision pos) { Class r = new Class("Random"); Method constructor = new Method(""); constructor.SetBody(Constructor_caller); r.SetConstructor(constructor, data, database, pos); Method seed = new Method("seed"); seed.GetAgumentStack().push("int", "seed"); seed.SetBody(Seed_caller); r.SetMethod(seed, data, database, pos); Method next = new Method("next"); next.GetAgumentStack().push("int", "min"); next.GetAgumentStack().push("int", "max"); next.SetBody(Next_caller); r.SetMethod(next, data, database, pos); database.pushClass(r, data); }
private CVar p(EnegyData ed, VariabelDatabase db, Token token, bool name) { this.db = db; if (name) { if (token.next().type() != TokenType.Variabel) { ed.setError(new ScriptError("Missing class name after 'class'", token.getCache().posision()), db); return new NullVariabel(); } builder = new Class(token.getCache().ToString()); } else { builder = new Class(); } if(token.next().type() == TokenType.Extends) { if(token.next().type() != TokenType.Variabel) { ed.setError(new ScriptError("Missing variabel after extends", token.getCache().posision()), db); return new NullVariabel(); } //control if the variabel exteis in the variabel database if (!db.isExists(token.getCache().ToString())) { ed.setError(new ScriptError("Unknown variabel: " + token.getCache().ToString(), token.getCache().posision()), db); return new NullVariabel(); } CVar buffer = db.get(token.getCache().ToString(), ed); if(!(buffer is ClassVariabel)) { ed.setError(new ScriptError(token.getCache().ToString() + " is not a class", token.getCache().posision()), db); return new NullVariabel(); } builder.Extends((ClassVariabel)buffer); token.next(); } if(token.getCache().type() != TokenType.LeftTuborg) { ed.setError(new ScriptError("Missing { after class name", token.getCache().posision()), db); return new NullVariabel(); } token.next(); while (ed.State == RunningState.Normal && run(token.getCache().type())) build(token, ed); if(token.getCache().type() != TokenType.RightTuborg) { ed.setError(new ScriptError("Missing } in end of class building", token.getCache().posision()), db); return new NullVariabel(); } token.next(); if (name) { db.pushClass(builder, ed); if (db is FileVariabelDatabase) { builder.SetExtraVariabelDatabase(db); ((FileVariabelDatabase)db).VariabelDatabase.pushClass(builder, ed); } return null; } else { return new ClassVariabel(builder); } }
private static void createStringClass(EnegyData data, VariabelDatabase db, Posision pos) { Class s = new Class("string"); Method format = new Method("format"); format.SetStatic(); format.GetAgumentStack().push("string", "query"); format.GetAgumentStack().push("array", "parameters"); format.SetBody(Format_caller); s.SetMethod(format, data, db, pos); //constructor :) Method constructor = new Method(null); constructor.GetAgumentStack().push("string", "s", new NullVariabel()); constructor.SetBody(Constructor_caller); s.SetConstructor(constructor, data, db, pos); Method length = new Method("length"); length.SetBody(Length_caller); s.SetMethod(length, data, db, pos); Method substr = new Method("substr"); substr.GetAgumentStack().push("int", "min"); substr.GetAgumentStack().push("int", "max", new NullVariabel()); substr.SetBody(Substr_caller); s.SetMethod(substr, data, db, pos); Method indexOf = new Method("indexOf"); indexOf.GetAgumentStack().push("string", "serche"); indexOf.SetBody(IndexOf_caller); s.SetMethod(indexOf, data, db, pos); Method toChars = new Method("toChars"); toChars.SetBody(ToChars_caller); s.SetMethod(toChars, data, db, pos); Method split = new Method("split"); split.GetAgumentStack().push("string", "string"); split.SetBody(Split_caller); s.SetMethod(split, data, db, pos); Method toLower = new Method("toLower"); toLower.SetBody(ToLower_caller); s.SetMethod(toLower, data, db, pos); Method toUpper = new Method("toUpper"); toUpper.SetBody(ToUpper_caller); s.SetMethod(toUpper, data, db, pos); Method toString = new Method("toString"); toString.SetBody(ToString_caller); s.SetMethod(toString, data, db, pos); Method set = new Method("set"); set.GetAgumentStack().push("string", "context"); set.setLevel(ClassItemAccessLevel.Protected); set.SetBody(Set_caller); s.SetMethod(set, data, db, pos); db.pushClass(s, data); }
public void pushClass(Class c, EnegyData data) { controleOveride(c.GetContainer().Name, data); types.Add(c.GetContainer().Name);//now is this class a types :) garbageType.Add(c.GetContainer().Name); global.Add(c.GetContainer().Name, new ClassVariabel(c)); garbageContainer.Add(c.GetContainer().Name); }
public ClassVariabel(Class c) { //here wee get the data about this class :) Container = c.GetContainer(); }
public void appendMethodToClass(Method method, Class c) { c.SetMethod(method, Data, VariabelDatabase, new Posision(0, 0)); }
public void push(Class c) { VariabelDatabase.pushClass(c, Data); }