ANTLR4 语法无法识别声明
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
就可以
能否具体说明您遇到的问题是什么?或者至少 post 整个语法文件?指定词法分析器规则的方式对于解决 ANTLR 中的许多问题很重要。谢谢。
语法我过一遍,这道题一点都不诗意。只是 UNSIGNED 词法分析器规则中的错字……它是“U N S I G N D”——缺少 E
我的 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
就可以
能否具体说明您遇到的问题是什么?或者至少 post 整个语法文件?指定词法分析器规则的方式对于解决 ANTLR 中的许多问题很重要。谢谢。
语法我过一遍,这道题一点都不诗意。只是 UNSIGNED 词法分析器规则中的错字……它是“U N S I G N D”——缺少 E