Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
antlr4 python目标无法识别unicode_Python_Antlr4 - Fatal编程技术网

antlr4 python目标无法识别unicode

antlr4 python目标无法识别unicode,python,antlr4,Python,Antlr4,我有一个IDterminator ID : ([A-Z_]|'\u0100'..'\uFFFE') ([A-Z_0-9]|'\u0100'..'\uFFFE')*; 和一个要解析的.txt示例文件 均60:=MA(C,60); 我生成了Java和Python2目标,并分别对示例文件进行了测试。Java目标可以解析此文件。但是Python2靶子不能。它在以下位置抛出令牌识别错误:均'。我针对其他有效输入测试了Python2目标,除了包含unicode字符的输入外,所有输入都有效。我是

我有一个
ID
terminator

ID      : ([A-Z_]|'\u0100'..'\uFFFE') ([A-Z_0-9]|'\u0100'..'\uFFFE')*;
和一个要解析的.txt示例文件

均60:=MA(C,60);
我生成了Java和Python2目标,并分别对示例文件进行了测试。Java目标可以解析此文件。但是Python2靶子不能。它在以下位置抛出
令牌识别错误:均'。我针对其他有效输入测试了Python2目标,除了包含unicode字符的输入外,所有输入都有效。我是否遗漏了什么,或者python目标不支持unicode解析

爪哇

python目标生成命令

java -jar /usr/local/lib/antlr-4.5.3-complete.jar -Dlanguage=Python2 TDX.g4 -o ./tdx_py/antlrgen -visitor
python代码

import sys
from antlr4 import *
from tdx_py.antlrgen import TDXLexer, TDXParser

def executefile(file):
    input = FileStream(file, encoding='utf-8')
    lexer = TDXLexer(input)
    stream = CommonTokenStream(lexer)
    parser = TDXParser(stream)
    tree = parser.prog()


if __name__ == '__main__':
    executefile(sys.argv[1])

这是ANTLR4的一个bug。参考文献

import sys
from antlr4 import *
from tdx_py.antlrgen import TDXLexer, TDXParser

def executefile(file):
    input = FileStream(file, encoding='utf-8')
    lexer = TDXLexer(input)
    stream = CommonTokenStream(lexer)
    parser = TDXParser(stream)
    tree = parser.prog()


if __name__ == '__main__':
    executefile(sys.argv[1])