Ich möchte die semantische Prüfung für eine Sprache tun, und ich benutze ANTLR4, um Parser und Besucherklasse zu generieren. Ich habe jedoch ein Problem gefunden. Wenn ich diese Methode verwenden print(type(newList[0].expression()))
Ich werde eine Art wie diese <class 'IDILParser.IDILParser.IdenetExpressionContext'>
jedoch erhalten, wenn ich den Code unten ausführen, wird erhalte ich einen Fehler wie diese NameError: name 'IDILParser' is not defined
Darf ich fragen, wie dieses Problem zu beheben? Vielen Dank!Python Typ ist nicht definiert
from antlr4 import *
if __name__ is not None and "." in __name__:
from .IDILParser import IDILParser
else:
from IDILParser import IDILParser
class IDILVisitor(ParseTreeVisitor):
def visitAssign(self, ctx:IDILParser.AssignContext):
if type(newList[0].expression()) is IDILParser.IDILParser.IdenetExpressionContext:
...
ich, dass die Art der newList [0] Ausdrucks überprüfen möchten() ist IDILParser.IdenetExpressionContext. Kann ich fragen, wie es geht? Danke! – FRANKfisher
Haben Sie meinen Code von oben versucht? Beachten Sie, dass der erste ** IDILParser ** entfernt wird. – Jeronimo
Haben Sie das Problem behoben? Ich habe ein ähnliches Problem. @ Jeronimo Ihre Lösung funktioniert nicht. "NameError", Name "IdilParser" ist nicht definiert. – user3142434