Ciao sto implementando attualmente un lexerinterrompe i file XML in token, sto considerando modi di passare i token su un parser per creare una struttura di dati più utile da detti token - il mio piano attuale è archiviarli in un arraylist e passarli al parser, sarebbe un elenco di link in cui ogni token punta al prossimo è più adatto? O è in grado di accedere a token per indice più facile da fare un parser o è tutta una strategia terribile?
Anche se qualcuno ha usato antlr, so che usa unflusso di token per passare l'input token al parser, come può il parser prendere decisioni se l'input è valido / creare una struttura di dati se non ha ancora tutti i token dall'input?
Qualsiasi commento / opinione benvenuto, grazie!
risposte:
2 per risposta № 1L'architettura più comune per questo tipo di parser, per eseguire il lexer all'interno del parser. Ogni volta che ti serve un token, effettua una chiamata a una funzione (da lexer) che recupera quella successiva.
Non conosco Antlr, ma penso che tutti usino lo stesso: quello che sto proponendo è come funzionano lo yacc e lex.