public wolFunction(SecurityModifer sec = SecurityModifer.PRIVATE, string _body = "return <null:void>;") { security = sec; returnType = new Void(); arguments = new Dictionary <string, wolClass>(); body = _body; }
public wolFunction(SecurityModifer sec = SecurityModifer.PRIVATE, params KeyValuePair <string, wolClass>[] args) { security = sec; arguments = new Dictionary <string, wolClass>(args.Length); for (int i = 0; i < args.Length; i++) { arguments.Add(args[i].Key, args[i].Value); //да я знаю про foreach, но for быстрее } body = "return <null:void>;"; returnType = new Void(); }
/// <summary> /// Create default value with type, security modifer and flag which ask of generator of setter /// </summary> /// <param name="wolclass">Type of generated value</param> /// <param name="modifer">Security modifer of generated value</param> /// <param name="isConstant">Flag which ask of generator of setter</param> public Value(wolClass wolclass, SecurityModifer modifer = SecurityModifer.PRIVATE, bool isConstant = false) { type = wolclass; getter = new wolFunction(modifer, "return @this;"); if (!isConstant) { setter = new wolFunction(SecurityModifer.PRIVATE, "set : &@this, @_this ;"); } /*{ * security = SecurityModifer.PRIVATE, body = "set : &@this, @_this ;", * arguments = new Dictionary<string, wolClass> { { "_this", wolclass } } * };*/ }
public wolClass(string name, SecurityModifer securityModifer = SecurityModifer.PUBLIC, wolClassType type = wolClassType.DEFAULT, string ConstructorName = "init") { strtype = name; security = securityModifer; classType = type; switch (classType) { case wolClassType.DEFAULT: methods = new Dictionary <string, wolFunction>(); constructors = new Dictionary <string, wolFunction> { { ConstructorName, new wolFunction() } }; destructors = new List <wolFunction> { new wolFunction() }; fields = new Dictionary <string, Value>(); static_fields = new Dictionary <string, Value>(); parents = new Dictionary <string, wolClass> { { "void", VirtualMachine.GetWolClass("void") } }; break; case wolClassType.ENUM: constants = new Dictionary <string, Value>(); parents = new Dictionary <string, wolClass> { { "int", VirtualMachine.GetWolClass("int") } }; break; case wolClassType.STATIC: parents = new Dictionary <string, wolClass> { { "void", VirtualMachine.GetWolClass("void") } }; static_fields = new Dictionary <string, Value>(); methods = new Dictionary <string, wolFunction>(); break; case wolClassType.STRUCT: constants = new Dictionary <string, Value>(); parents = new Dictionary <string, wolClass> { { "void", VirtualMachine.GetWolClass("void") } }; fields = new Dictionary <string, Value>(); methods = new Dictionary <string, wolFunction>(); constructors = new Dictionary <string, wolFunction> { { ConstructorName, new wolFunction() } }; destructors = new List <wolFunction> { new wolFunction() }; break; case wolClassType.ABSTRACT: parents = new Dictionary <string, wolClass> { { "void", VirtualMachine.GetWolClass("void") } }; fields = new Dictionary <string, Value>(); static_fields = new Dictionary <string, Value>(); methods = new Dictionary <string, wolFunction>(); break; } }