protected override LexerSetting OnLexerSetting(LexerSetting basesetting)
        {
            LexerSetting setting = LexerSetting.Default;

            setting.IgnoreCase = true;                            //词法解析中忽略大小写
            setting.InlineCommentsStartSign = "/*";               //行内注释起始符
            setting.InlineCommentsEndSign   = "*/";               //行内注释终止符
            setting.OutlineCommentsSign     = "--";               //行外注释
            setting.LiteralFirstChars       = new char[] { '@' }; //使用@开头的为模板参数
            setting.CustomOperators         = new string[] { "not", "and", "or", "in", "like", "is" };
            setting.Keywords = new string[] { "var", "declare", "if", "else", "switch", "default", "true", "false", "null",
                                              "select", "from", "where", "insert", "into", "values", "update", "set", "delete",
                                              "join", "on", "left", "right", "full", "inner", "having", "asc", "desc", "as", "group", "order", "by", "union", "all", "limit", "offset" };
            return(setting);
        }
        public ExpressionParser(string sou)
        {
            LexerSetting setting = LexerSetting.Default;

            setting.IgnoreCase = true;                            //词法解析中忽略大小写
            setting.InlineCommentsStartSign = "/*";               //行内注释起始符
            setting.InlineCommentsEndSign   = "*/";               //行内注释终止符
            setting.OutlineCommentsSign     = "//";               //行外注释
            setting.LiteralFirstChars       = new char[] { '@' }; //使@开头的标识符可以识别
            setting.CustomOperators         = new string[] { "not", "and", "or", "in", "like", "is" };
            setting.Keywords = new string[] { "true", "fasle" };

            Lexer lexer = new Lexer(sou, OnLexerSetting(setting));

            SetTokens(lexer.Reslove());
        }
 /// <summary>
 /// 在派生类中重写为当前使用的词法解析器提供配置
 /// </summary>
 /// <param name="basesetting"></param>
 /// <returns></returns>
 protected virtual LexerSetting OnLexerSetting(LexerSetting basesetting)
 {
     return(basesetting);
 }