/ / Il modo migliore per memorizzare i token durante lo stage di lexing: analisi, compilazione del compilatore, parsing xml, token, lexer

Il modo migliore per memorizzare i token durante lo stage di lexing: analisi, compilazione del compilatore, parsing xml, token, lexer

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 № 1

L'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.