繁体   English   中英

ANTLR4语法无法识别声明

[英]ANTLR4 grammar doesn't recognize declaration

我的ANTLR语法有问题。

在SQL中,有一些声明类型,例如UNSIGNED INTUNSIGNED 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM