Ho creato un lexer utilizzando antlr 4 per la tokenizzazione dei testi in lingua naturale turca, quello che devo fare è avere un flusso di token che posso recuperare i token uno per uno. CommonTokenStream restituisce una lista se lo uso come questo:Come utilizzare antlr 4 TokenStream come flusso iterabile?
ANTLRInputStream inputStream = new ANTLRInputStream(input);
TurkishLexer lexer = new TurkishLexer(inputStream);
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
List<Token> tokens = tokenStream.fill();
for (Token token : token) ...
Comunque non voglio costruire un elenco di token come il mio ingresso potrebbe essere enorme, voglio solo qualcosa di simile:
for (Token token: tokenStream.next()) ...
Che vorrei ripetere fino a ottenere un token EOF.
Esiste un token stream che mi consente di eseguire iterazioni su token?
Ah grazie mille. Ancora forse sarebbe bello esporlo nei flussi di Token. Come nota a margine, la versione di Java utilizza lexer.nextToken() – mdakin