当前位置: 首页 > 知识库问答 >
问题:

给出隐式定义警告的ANTLR字符串标记

万高畅
2023-03-14

所以我得到了“解析器规则中令牌'x'的隐式定义。”在解析器规则中使用这种格式的警告:规则:'x'Subrole;即使我使用的所有'x'值都包含在lexer规则中。例如,''-''*'等被定义为运算符令牌。在lexer规则中定义它们而没有替代方案(例如:添加: ' ';)似乎可以解决问题。有人能解释一下发生了什么吗?是否有更简单的解决方案?

共有1个答案

古明煦
2023-03-14

显然,解析器规则中仍然有文本。在lexer规则中只定义lexer标记是一种很好的做法。遵循这条规则,这些警告就会消失。

 类似资料:
  • 问题内容: 为什么允许但发出警告? 类型参数T不应由最终类型String限制。最终类型无法进一步扩展 我知道最后的决定我知道这是有效的,因为我可能只想知道警告的值。 问题答案: 如果实际的问题是“为什么允许”,那么想象一下在现有类中添加关键字时的情况。我认为您不希望此更改破坏将此类用作通用范围的其他现有代码,因为它仍然完全合法。这就是为什么编译器在这种情况下不会发出错误的原因。 另一方面,如果您不

  • 问题内容: 最好使用内置的“ go”软件包及其一些子软件包(“ go / ast”,“ go / token”,“ go / printer”等)编写输出有效的go代码的go应用程序。 要创建字符串文字表达式,您需要创建一个ast.BasicLit: 在我的go程序中,我有一个字符串,我需要创建一个ast.BasicLit,该ast.BasicLit在输出时将生成一个字符串文字,该文字将忠实地再现

  • Tweepy刚刚通过PIP安装到我的Python 2.6.6上。

  • 我正在尝试编写一个ANTLR语法,用于解析字符串插值表达式,例如: 我得到的错误是: MyParser。g4: MyLemus. g4: 像以下这样的表达式可以正常工作: 知道我做错了什么吗?

  • 我将字符串作为解析器规则而不是词法分析器,因为字符串可能包含带有表达式的转义,例如。 这不起作用,因为

  • 问题内容: 我想编写一个简单的类来处理字符串(可能是很长的字符串,最多可以包含100万个字符)。字符串基本上由两个可以相互混合的字符“ a”和“ b”组成。如果a的个数等于b的个数,则应用会说可以,否则为NOK。我想知道如何最有效地做到这一点。我考虑过使用正则表达式拆分String,然后计算a和b的出现次数,但也许有人知道更好的方法。对于regex来说还比较陌生,所以请让我知道是否有任何错误。这是