将 python 语法中嵌入的 ANTLR4 java 转换为 C#
Converting ANTLR4 embedded java in python grammar to C#
我正在尝试将 python3 语法 (https://github.com/antlr/grammars-v4/blob/master/python3/Python3.g4) 的嵌入式 java 部分实现到 C#。我看到在 java 中使用了一些属性,但我无法在 ANTLR4 的 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()
属性
我从 Github 获得了 Antlr4 程序集源并将其添加到我的项目中。这些属性存在但是是私有的。我刚刚更改了它并解决了这个问题。
似乎 _tokenFactorySourcePair
已经在当前 Antlr4 版本的 Lexer 上 protected
完成,所以应该会自行解决。
getCharPositionInLine()
的 属性 等价于 Lexer.Column
我正在尝试将 python3 语法 (https://github.com/antlr/grammars-v4/blob/master/python3/Python3.g4) 的嵌入式 java 部分实现到 C#。我看到在 java 中使用了一些属性,但我无法在 ANTLR4 的 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()
属性
我从 Github 获得了 Antlr4 程序集源并将其添加到我的项目中。这些属性存在但是是私有的。我刚刚更改了它并解决了这个问题。
似乎 _tokenFactorySourcePair
已经在当前 Antlr4 版本的 Lexer 上 protected
完成,所以应该会自行解决。
getCharPositionInLine()
的 属性 等价于 Lexer.Column