【问题标题】:How to write a lexer rule in antlr4 to differentiate 2 strings which has common characters?如何在 antlr4 中编写词法分析器规则来区分具有共同字符的 2 个字符串?
【发布时间】:2016-12-05 01:47:13
【问题描述】:

我需要编写 2 个词法分析器规则(或 1 个)来区分有效的 XML 字符串和有效的通用字符串(不是注释或双引号)。这是我的规则。

XMLTEXT : ~[<&]+ ;

STRINGTEXT :  ~["\\] ;

当我传递一个作为 XML 正文一部分的字符串时,如下所示 antlr4

它匹配上述两个规则,我想匹配一个规则。有什么办法可以更好地编写上述两条规则吗?

【问题讨论】:

    标签: string antlr4 lexer


    【解决方案1】:

    不,这行不通。

    如果没有现实生活中的例子,除了指出词汇模式之外很难给出更具体的答案:https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md#lexical-modes

    还可以查看 ANTLR4 存储库中的示例 XML 语法中如何使用词法模式:https://github.com/antlr/grammars-v4/blob/master/xml/XMLLexer.g4

    【讨论】:

      猜你喜欢
      • 2019-05-07
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      相关资源
      最近更新 更多