gpt4 book ai didi

java - antlr 标识符名称与预定义函数名称相同导致 MismatchedTokenException

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:03 25 4
gpt4 key购买 nike

我已经定义了一个 ANTLR 语法:

grammar test5;

stats_statement
:
STATS IDENT ASSIGN_SYM functions_stats

;

functions_stats

: COUNT LPAREN IDENT RPAREN
;

STATS
: 'STATS'
;

COUNT
: 'count'
;

IDENT
: (LETTER | '_') (LETTER | DIGIT | '_')*
;

ASSIGN_SYM
: ':='
;

COMMA_SYM
: ','
;

SEMI_SYM
: ';'
;

LPAREN
: '(' ;

RPAREN
: ')' ;

fragment
LETTER : ('a'..'z' | 'A'..'Z') ;

fragment
DIGIT : '0'..'9';

它有一个内置函数“count”。但是如果我使用以下测试字符串:

STATS count:=count(col1)

解析器会返回一个错误信息:

mismatched input 'count' expecting IDENT

关于如何解决此问题的任何线索和/或提示?

谢谢查尔斯

最佳答案

创建一个匹配 IDENTCOUNTident 规则,并在您的解析器规则中使用该规则(而不是使用 IDENT ):

stats_statement
: STATS ident ASSIGN_SYM functions_stats
;

functions_stats
: COUNT LPAREN ident RPAREN
;

ident
: COUNT
| IDENT
;

关于java - antlr 标识符名称与预定义函数名称相同导致 MismatchedTokenException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14883587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com