言語のセマンティックチェックを行いたいのですが、ANTLR4を使用してパーサーとビジタークラスを生成します。しかし、私は問題に会った。私はこの方法print(type(newList[0].expression()))
を使用している場合 私は、私は以下のコードを実行した場合、私はこの問題を解決する方法を求めることができ、このNameError: name 'IDILParser' is not defined
のようなエラーが発生します、しかしこの<class 'IDILParser.IDILParser.IdenetExpressionContext'>
のようなタイプを得るのだろうか?ありがとう!Python Typeが定義されていません
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:
...
newList [0] .expression()のタイプがIDILParser.IdenetExpressionContextであることを確認します。私はそれを行う方法を尋ねることはできますか?どうも! – FRANKfisher
上記のコードを試しましたか?最初の** IDILParser **は削除されています。 – Jeronimo
問題を解決しましたか?私にも同様の問題があります。 @ジェロニモあなたのソリューションは動作しません。 "NameError"、名前 'IdilParser'が定義されていません。 – user3142434