簡體   English   中英

antlr4 python目標無法識別unicode

[英]antlr4 python target cannot recognize unicode

我有一個ID終結器

ID      : ([A-Z_]|'\u0100'..'\uFFFE') ([A-Z_0-9]|'\u0100'..'\uFFFE')*;

和一個.txt樣本文件進行解析

均60:=MA(C,60);

我生成了Java和Python2目標,並分別針對示例文件進行了測試。 Java目標可以解析此文件。 但是Python2目標不能。 它在以下位置拋出token recognition error at: '均' 然后我針對其他有效輸入對Python2目標進行了測試,除包含Unicode字符外,所有其他輸入均有效。 我錯過了什么嗎,還是python目標不支持unicode解析。

爪哇

mkdir -p java
java -jar /usr/local/lib/antlr-4.5.3-complete.jar TDX.g4 -o ./java
cd ./java
javac TDX*.java
java org.antlr.v4.gui.TestRig TDX prog -gui ../samples/1.txt

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的錯誤。 參考https://github.com/antlr/antlr4/issues/1925

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM