Example #1
0
        public static ICQ_Expression Compiler_Expression_DefineAndSet(IList <Token> tlist, int pos, int posend)
        {
            int expbegin = pos + 3;
            int bdep;
            int expend = FindCodeAny(tlist, ref expbegin, out bdep);

            if (expend != posend)
            {
                expend = posend;
            }
            ICQ_Expression v;
            bool           succ = Compiler_Expression(tlist, expbegin, expend, out v);

            if (succ && v != null)
            {
                CQ_Expression_Define define = new CQ_Expression_Define(pos, posend, tlist[pos].line, tlist[posend].line);
                if (tlist[pos].text == "bool")
                {
                    define.value_type = typeof(bool);
                }
                else
                {
                    IType type = CQuark.AppDomain.GetTypeByKeyword(tlist[pos].text);
                    define.value_type = type.typeBridge;
                }
                define.value_name = tlist[pos + 1].text;
                define._expressions.Add(v);
                return(define);
            }
            DebugUtil.LogError(tlist, "不正确的定义表达式:", pos, posend);
            return(null);
        }
Example #2
0
        public static ICQ_Expression Compiler_Expression_DefineArray(IList <Token> tlist, int pos, int posend)
        {
            CQ_Expression_Define define = new CQ_Expression_Define(pos, posend, tlist[pos].line, tlist[posend].line);

            {
                IType type = CQuark.AppDomain.GetTypeByKeyword(tlist[pos].text + "[]");
                define.value_type = type.typeBridge;
            }
            define.value_name = tlist[pos + 3].text;
            return(define);
        }
Example #3
0
        public static ICQ_Expression Compiler_Expression_Define(IList <Token> tlist, int pos, int posend)
        {
            CQ_Expression_Define define = new CQ_Expression_Define(pos, posend, tlist[pos].line, tlist[posend].line);

            if (tlist[pos].text == "bool")
            {
                define.value_type = typeof(bool);
            }
            else
            {
                IType type = CQuark.AppDomain.GetTypeByKeyword(tlist[pos].text);
                define.value_type = type.typeBridge;
            }
            define.value_name = tlist[pos + 1].text;
            return(define);
        }