ANTLR4 文法考虑将分号作为字符串的一部分附加到字符串

问题描述 投票:0回答:1

下面是我的 ANTLR4 语句语法:

添加类型测试;

sql_stmt_list:
    SCOL* sql_stmt (SCOL+ sql_stmt)*  (SCOL)+
;

sql_stmt: (EVALUATE_ (QUERY_ )?)? (
        add_type_stmt
    )
;

add_type_stmt:
    ADD_ TYPE_ any_string
;


any_string: ANY_STRING;



ADD_    :       'add' ;
TYPE_   :       'type' ;
SCOL    :       ';' ;
ANY_STRING:
    '"' ( ~[\\"] | '\\' . )* '"'
    | '`' (~'`' | '``')* '`'
    | '[' ~']'* ']'
    | [a-zA-Z_0-9]+
; 

低于错误:

第 1:9 行不匹配的输入“测试;”期待 ANY_STRING

尝试在语句末尾添加额外的分号,但它没有将分号视为最后一个分号。

antlr antlr4
1个回答
0
投票

鉴于错误:

第 1:9 行不匹配的输入“测试;”期待 ANY_STRING

似乎有一个词法分析器规则(未在您的原始问题中显示)匹配输入

Test;
导致输入 not 被标记为
ANY_STRING
SCOL
标记。

© www.soinside.com 2019 - 2024. All rights reserved.