无法匹配ANTLR4中的简单赋值

时间:2017-04-13 14:37:39

标签: antlr antlr4

我有一个匹配的输入模式:

identifier=apple-packs/apple-packages-extension/albama_togo_air_extension

我在ANTLR4中的语法定义如下: 语法MyDSL;

@lexer::members {
    public static final int WHITESPACE = 1;
    public static final int COMMENTS = 2;
}
locationReference
    : ID '=' genericstring ';';

ID:LETTER (LETTER | [0-9])*;
genericstring:(.)+?;

面临的问题: 第1:16行令牌识别错误:' - ' 第1:22行令牌识别错误:' /' 第1:28行令牌识别错误:' - ' ... 我想我的语法无法通过解析器规则匹配特殊字符: 则genericstring:+ ?;(。) 我也理解了#34;。#34;意味着任何角色。

1 个答案:

答案 0 :(得分:0)

在词法分析器中,.匹配任何字符。在解析器规则中,token recognition匹配任何令牌。

注意,词法分析器会生成-个错误;在这种情况下,因为词法分析器没有匹配{{1}}的规则。