[英]ANTLR4 grammar doesn't recognize declaration
我的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
;
希望大家知道我的问题,谢谢。
编辑:我将完整的语法上传到GitHub
示例: DECLARE value UNSIGNED INT;
无法使用,因为语法无法识别未UNSIGNED
如果我仅使用INT
那么它可以工作
我经过语法检查,问题根本没有诗意。 只是UNSIGNED词法分析器规则中的一个错字...是“ UNSIGND”-缺少E
您能指定遇到什么问题吗? 或至少张贴整个语法文件? 指定词法分析器规则的方式对于解决ANTLR中的许多问题很重要。 谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.