我下载了SqlBase.g4,并使用antlr v4工具构建了词法分析器和解析器。但是,当我针对一个非常简单的查询运行解析器时:select * from table1
,当我将查询更改为{{1时,它无法识别小写select
和小写表标识符table1
}}有效。
有没有办法让解析器适用于小写字母情况?
答案 0 :(得分:3)
您在这里有两个选择:
1。。构建与大写或小写字母匹配的词汇规则。
2。。构建与所有大写字母匹配的关键字的词法规则,然后使用自定义字符流进行解析,该字符流将所有字符转换为大写,然后再将其发送到词法分析器(通过LA()方法)。
阅读本文以获取更多信息:Case-Insensitive Lexing