首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Antlr4解析器忽略了词法规则并生成隐式标记

Antlr4解析器忽略了词法规则并生成隐式标记
EN

Stack Overflow用户
提问于 2021-10-01 08:50:53
回答 1查看 112关注 0票数 0

作为一个简单的例子,假设我有以下内容。

代码语言:javascript
复制
parse_rule0 : parse_rule1 ',' parse_rule2 ';' ;

pare_rule1 : ... ;

parse_rule2: ... ;

PUNCTUATION : ',' | '.'| ';' | ':' ;

当Antlr4 (特别是antlr4 vscode )生成令牌时,它会忽略我的标点符号规则(只是一个例子),并创建一个隐式令牌,例如T_1。我似乎无法在网上找到任何资源,用于从更一般的词汇规则中寻找特定的标记。为解析过程中想要查找的每一个可能的文字创建一个词法规则似乎是毫无意义的。

我到处寻找解决这个问题的办法。如果我想解析在词法规则中定义的特定字符,如何防止Antlr生成隐式令牌,并实际读取我的词法规则?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-01 11:13:45

令牌的显式使用

代码语言:javascript
复制
parse_rule0 : parse_rule1 PUNCTUATION parse_rule2 PUNCTUATION ;

pare_rule1 : ... ;

parse_rule2: ... ;

PUNCTUATION : ',' | '.'| ';' | ':' ;

每个文字的词法规则

代码语言:javascript
复制
parse_rule0 : parse_rule1 ',' parse_rule2 ';' ;

pare_rule1 : ... ;

parse_rule2: ... ;

COMMA: ',';
DOT: '.';
SEMI: ';';
COLON: ':';

不幸的是,ANTLR无法将文字与复杂的lexer规则相匹配,而这些规则甚至只包含其他选项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69403112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档