Analizzatore lessicale: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
smistamento lavoro sporco |
Descrizione più precisa delle componenti di un token. Riferimenti alle espressioni regolari per la generazione degli analizzatori lessicali. |
||
Riga 4:
Quindi il compito di un analizzatore lessicale è di analizzare uno stream di caratteri in input e produrre in uscita uno stream di ''token''.
Il ''token'' è un elemento che ha un
I ''token'' costituiscono gli elementi base su cui andrà ad operare un [[analizzatore sintattico]].
Riga 10:
== Funzionamento ==
Come scritto prima l'analizzatore lessicale individua i ''token'' attraverso i pattern,
<code>
cifra = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0
numero = cifra cifra*
operatore = + | - | x |
</code>
Riga 49:
Da notare come gli spazi bianchi vengano saltati.
Per effettuare questo lavoro gli analizzatori lessicali si basano su un [[automa a stati finiti deterministico]], strettamente collegati alle [[espressioni regolari]]. Si parte da uno stato iniziale, e ci si sposta negli altri stati in base al carattere in ingresso sino a quando non si raggiunge uno stato di accettazione nel quale si può inviare il ''token'' in output.
Ad esempio per il nostro modello avremmo un automa simile al seguente:
| |||