2017-01-17 30 views
3

我使用ANTLR4使用Python和我目前使用的解析如下代碼:ANTLR4 + Python的解析從字符串,而不是路徑

lexer = MyGrammarLexer(FileStream(path)) 
stream = CommonTokenStream(lexer) 
parser = MyGrammarParser(stream) 
return parser.start().object 

不過,我想改變這種代碼直接從解析給定的字符串而不是給定的路徑。因此將第一行改爲類似於

lexer = MyGrammarLexer(a_given_string) 

我該如何做?

回答

1

縱觀Pyhton2Python3運行時的資源,我會說使用InputStream代替:

lexer = MyGrammarLexer(InputStream(a_given_string)) 
+0

作品!完美 - 謝謝:) –