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

在Antlr侦听器中获取令牌类型

阎丰
2023-03-14

我使用Antlr4和C#Target。在我的语法中有一个简单的lexer规则如下

SearchIdentifier : QTE (WILDCARD | Identifier) QTE  
           | (Digit)+                               
           ;
conditionExpr: Identifier LT SearchIdentifier
 context.SearchIdentifier().GetText();

共有1个答案

颜熙云
2023-03-14

不,ANTLR4 lexer是状态机,除了令牌停止的位置之外,它不跟踪任何信息(因此它可以执行正确的操作并分配正确的令牌类型)。

这与ANTLR 3 lexers非常不同,但也非常快。

 类似资料:
  • 我正在实现一个片段,该片段调用两个。

  • 问题内容: 我正在为学校项目创建一种简单的编程语言。我正在使用ANTLR 4从我的语法生成词法分析器和解析器。到目前为止,我一直在使用ANTLR侦听器模式来应用编程语言的实际功能。 现在,我想实现if / else语句,但是我不确定在使用侦听器模式时实际上可以实现这些语句,因为ANTLR决定使用侦听器时以哪种顺序遍历解析树,我想像一下if /的实现else语句将需要根据满足该条件的条件在解析树中跳

  • 您好,我正试图通过刷新令牌并重试请求,找出如何实现新的角度拦截器和处理错误。这是我一直遵循的指南:https://ryanchenkie.com/angular-authentication-using-the-http-client-and-http-interceptors 我成功缓存失败的请求,并可以刷新令牌,但我不知道如何重新发送以前失败的请求。我还想让它与我目前使用的解析器一起工作。 t

  • 我试图在登录时获取令牌,然后在Main active中显示昵称。但是Main活动中的昵称始终为空值。我不确定如何从Interceptor类调用Main active。 BasicAuthInterceptor类:我尝试连接这个类和main类。但它没有起作用。(当我在main类中进行调试时,昵称值始终为null) 改装等级 RetrofitInterface接口:当我在Main活动中获得令牌时,我无

  • 我有以下ANTLR 4的语法: 我试图解析以下字符串 代码解析出左侧的ab cd,在我的应用程序中,它将被视为文本字符串。然后,它将解析为一个字符集,在这种情况下,该字符集将转换为任何数字。我的语法对我来说很有用,但我不喜欢将语法作为语法分析器规则(CHAR | DASH),因为它只是被当作一个标记。我希望lexer创建一个字符串,并给我以下标记: 而不是这些 我看了其他的例子,但还没有弄明白。通