2015-06-27 67 views
1

我正在嘗試將Python 3語法的嵌入式java部分(https://github.com/antlr/grammars-v4/blob/master/python3/Python3.g4)實現到C#。有幾個屬性是我在java中使用的,我無法在ANTLR4的C#運行時實現中找到它。在Python語法中將ANTLR4嵌入式java轉換爲C#

有人可以請我指出以下什麼是等效的C#屬性?

行100:

private CommonToken commonToken(int type, String text) { 
    int stop = this.getCharIndex() - 1; 
    int start = text.isEmpty() ? stop : stop - text.length() + 1; 
    return new CommonToken(this._tokenFactorySourcePair, type, DEFAULT_TOKEN_CHANNEL, start, stop); 
    } 

在這裏,我無法找到_tokenFactorySourcePair屬性

行132:

boolean atStartOfInput() { 
    return super.getCharPositionInLine() == 0 && super.getLine() == 1; 
    } 

在這裏,我無法找到getCharPositionInLine()屬性

回答

0

我從Gi獲得Antlr4彙編源代碼thub並將其添加到我的項目中。這些屬性存在但是是私有的。我只是改變了這一點,並解決了這個問題。

0

看來_tokenFactorySourcePair已經在Lexer上製作爲protected在目前的Antlr4版本中應該自行解決。

getCharPositionInLine()的財產等同物爲Lexer.Column