2017-04-13 124 views
0

匹配一個簡單的任務,我有一個輸入的模式匹配:無法在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:(。)+ ?; 我也理解「。」意味着任何角色。

+0

我錯過了「;」在輸入字符串中。該問題應該如下所示:identifier = apple-packs/apple-packages-extension/albama_togo_air_extension; –

+0

即使有「;」問題依然存在 –

回答

0

在詞法分析規則.中匹配任何字符。在解析器規則中,.與任何標記匹配。

注意,token recognition錯誤是由詞法分析器生成的;在這種情況下,因爲詞法分析器沒有規則匹配-