Analisi lessicale
Esegue la tokenizzazione del sorgente.
I token sono le unità linguistiche usate dal parser per l’analisi sintattica.
A livello di sorgente, i token possono essere visti come identificatori, numeri, operatori e parole riservate (keywords: if, while, do, …).
for e in mylist:
print(e)
# FOR ID IN ID COLON ID LPAR ID RPARIl programma che esegue l’analisi lessicale è detto lexer o scanner.
Token
Dall’esempio sopra, sembra che i token possano essere rappresentati mediante il solo nome, il che è vero per le keyword. Se si vogliono rappresentare identificatori, il solo nome basterebbe per la mera analisi sintattica, ma no per produrre codice eseguibile o per controlli semantici.
Scanner
Oltre a tokenizzare il sorgente, lo scanner:
- riconosce e filtra commenti, spazi e altri white chars
- registra la posizione di occorrenza dei token
- procede all’espansione delle eventuali macro
Per eseguire la tokenizzazione si utilizzano le espressioni regolari.