无法匹配ANTLR4中的简单分配
我有一个要匹配的输入模式:无法匹配ANTLR4中的简单分配,antlr,antlr4,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 '=
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处的令牌识别错误:'-'
...
我想我的语法无法通过解析器规则匹配特殊字符:
泛型字符串:(.)+?;
我也知道“.”表示任何字符。在词法规则中,
匹配任何字符。在解析器规则中,
匹配任何标记
注意,令牌识别
错误由lexer生成;在这种情况下,因为lexer没有匹配输入字符串中的“;”的规则。问题应理解为:标识符=苹果包装/苹果包装扩展/阿尔巴马多哥航空扩展;即使添加了“;”,问题仍然存在