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); }