我的ANTLR语法有问题。
在SQL中,有UNSIGNED INT
或UNSIGNED BIGINT
等声明类型。如果我在Testrig中使用ANTLRWorks运行我的语法,则解析器会遇到UNSIGNED
的问题。
这是我declare_type
declare_type
: BIT
| BOOLEAN
| CHAR ('(' expression ')')?
| CHARACTER ('(' expression ')')?
...
尝试1:
...
| UNSIGNED? INT
| UNSIGNED? BIGINT
;
尝试2:
...
| INT
| BIGINT
| UNSIGNED INT
| UNSIGNED BIGINT
;
尝试3:
...
| INT
| BIGINT
| unsigned_separable_element
;
unsigned_separable_element
: UNSIGNED INT
| UNSIGNED BIGINT
;
我希望你们知道我的问题是什么,谢谢。
EDITED: 我将完整的语法上传到GitHub
示例:DECLARE value UNSIGNED INT;
不起作用,因为语法无法识别UNSIGNED
如果我只使用INT
,则可以使用
答案 0 :(得分:1)
我完成了语法,问题根本没有诗意。在UNSIGNED词法分析器规则中只是一个错字......它是" U N S I G N D" - 缺少E
答案 1 :(得分:0)
你能说明你有什么问题吗?或者至少发布整个语法文件?指定词法分析器规则对于解决ANTLR中的许多问题非常重要。感谢。