Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Utilizzando Flex si genera uno scanner lessicale da cui è possibile ottenere una sequenza di token, da
- utilizzare durante l’analisi sintattica. Flex permette di dividere il file .fl in tre sezioni. Ho utilizzato la prima
- sezione per inserire un segmento di codice C racchiuso tra %{ e %}, dove ho incluso alcune librerie utili
- al file lex.yy.c generato dal comando Flex. In particolare ho incluso la libreria “string.h” per utilizzare la
- funzione strstr(char*,char*) e “Progetto.tab.h” che è un file header generato dal comando Bison.
- Nella seconda sezione invece vengono inserite le regole che definiscono i pattern dei token e le relative
- azioni, in particolare per ogni espressione regolare si utilizza il comando return(nome_token) per
- generare un token. L’unica eccezione è l’espressione [ \t\n] dove non viene eseguita alcuna azione in
- modo da eliminare i vari tipi di spazi bianchi dal file di output.
- Una difficoltà che ho affrontato è quella posta dal token PREZZO, infatti questo deve esser letto in input
- come un decimale con la virgola, mentre il linguaggio C legge i reali con il carattere punto, tramite la
- funzione strstr(char*,char*) ho quindi individuato il carattere virgola e l’ho trasformato in un punto. Questo
- mi ha permesso quindi di convertire correttamente la stringa in double.
- La terza sezione infine è opzionale e viene utilizzata per inserire funzioni ausiliarie in c, nel mio caso non
- è stato necessario utilizzarla.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement