示例#1
0
 public wolFunction(SecurityModifer sec = SecurityModifer.PRIVATE, string _body = "return <null:void>;")
 {
     security   = sec;
     returnType = new Void();
     arguments  = new Dictionary <string, wolClass>();
     body       = _body;
 }
示例#2
0
 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();
 }
示例#3
0
        /// <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 } }
             * };*/
        }
示例#4
0
        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;
            }
        }