Exemple #1
0
        public CQ_Environment(ICQ_Logger logger)
        {
            //if(useNamespace==true)
            //{
            //    throw new Exception("使用命名空间还不能完全兼容,建议关闭");
            //}
            this.logger = logger;
            //this.useNamespace = useNamespace;
            tokenParser = new CQ_TokenParser();
            compiler    = new CQ_Expression_Compiler(logger);
            RegType(new CQ_Type_Int());
            RegType(new CQ_Type_UInt());
            RegType(new CQ_Type_Float());
            RegType(new CQ_Type_Double());
            RegType(new CQ_Type_String());
            RegType(new CQ_Type_Var());
            RegType(new CQ_Type_Bool());
            RegType(new CQ_Type_Lambda());
            RegType(new CQ_Type_Delegate());
            RegType(new CQ_Type_Byte());
            RegType(new CQ_Type_Char());
            RegType(new CQ_Type_UShort());
            RegType(new CQ_Type_Sbyte());
            RegType(new CQ_Type_Short());
            RegType(new CQ_Type_Long());
            RegType(new CQ_Type_ULong());
            RegType(typeof(IEnumerator), "IEnumerator");

            RegType(typeof(object), "object");

            RegType(typeof(List <>), "List");                   //模板类要独立注册
            RegType(typeof(Dictionary <,>), "Dictionary");
            RegType(typeof(Stack <>), "Stack");
            RegType(typeof(Queue <>), "Queue");

            typess["null"] = new CQ_Type_NULL();
            //contentGloabl = CreateContent();
            //if (!useNamespace)//命名空间模式不能直接用函数
            {
                RegFunction(new FunctionTrace());
            }
        }
Exemple #2
0
 public CQ_Expression_Compiler(ICQ_Logger logger)
 {
     this.logger = logger;
 }