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

ANTLR4 commonTokenStream.getTokens()不获取所有令牌

夏何平
2023-03-14

我有一个ANTLR4语法,用于语法高亮显示的方法。当用户更改文本时,该方法被触发并生成CommonTokenStream。当我调用GetTokens()时,我只得到一些预期的令牌。当我调用Consume()时,我会得到更多,但不是全部。如何获取文本中的所有令牌?

AntlrInputStream stream = new AntlrInputStream(_input);
GrammarLexer lexer = new GrammarLexer(stream);
CommonTokenStream commonTokenStream = new CommonTokenStream(lexer);
List<IToken> list = commonTokenStream.GetTokens();

共有1个答案

陆飞龙
2023-03-14

CommonTokenStream.getTokens()之前,请先尝试CommonTokenStream.fill():

CommonTokenStream commonTokenStream = new CommonTokenStream(lexer);
commonTokenStream.Fill();
List<IToken> list = commonTokenStream.GetTokens();
 类似资料:
  • 问题内容: 是否有Redis命令用于获取数据库中的所有密钥?我已经看到一些python-redis库正在获取它们。但是我想知道从redis-client是否有可能。 问题答案: 尝试看一下命令。将列出存储在redis中的所有密钥。 编辑: 请注意文档页面顶部的警告: 时间复杂度: O(N),其中N为数据库中密钥的数目,假设数据库中的密钥名称和给定模式的长度有限。 UPDATE(V2.8或更高版本)

  • 我尝试用“拆分字符串,”使用StringTokenizer但不能获得整个值,令牌计数显示3但只打印两个元素,如果我尝试使用其他两个输入“ravi,Tuti,786”-相同的输出“ravi,Tuti,786,pincode”获得三个令牌而不是最后一个,我添加了下面的代码 输出为

  • 问题内容: 我正在尝试编写一个查询,以获取每个新闻的所有新闻和所有评论。我当前的查询是: 但是,当我以数组的形式获取查询时,它通过注释为我提供了一个键,而我希望通过新闻和一个子数组中的所有注释来获得一个键。 就像是: 谢谢! 问题答案: 您无法在一个查询中做到这一点-最好采用您已得到的查询并对所得到的答案进行后处理以获得所需的数据结构。 为了进一步详细说明-任何SQL查询只能返回二维数据数组-一维

  • 问题内容: 在带有Python的Selenium中,是否可以将WebElement的所有子级作为列表获取? 问题答案: 是的,您可以通过或实现。 但是,这听起来并不像查找某个元素的 所有子 元素的有效用例。要获得所有直接/间接孩子都是昂贵的手术。请进一步说明您要做什么。应该有更好的方法。

  • 问题内容: 使用来获取Cookie 似乎很简单,它似乎将Cookie存储在其他位置。 我做了一些研究,然后从对象中获取了一些Cookie 。但是,其中不包含: 奇怪的是,ios 9中还有一个类负责管理中的cookie ,但是,该类不包含用于检索cookie数据的公共方法: 是否有解决方法来获取Cookie数据? 问题答案: 最后,对于登陆iOS的11。 https://developer.appl

  • 问题内容: 有没有一种方法可以通过sql语句或vba代码从访问文件中返回所有表?“我不知道桌子的名字” 例如,当您希望表中包含所有字段时,无论字段名称如何,都使用“ *”。 但是如何获得所有表? 问题答案: 这将带回MS Access数据库中的所有表(包括链接表) 它还包含Sys表,因此您可能要排除以 MSys 开头的表 __ 看一下 使用MSysObjects 选择“表” AS [表],MSys