Progetto SWL parser, realizzato nel Maggio 2018. Realizzato per il corso di Automi e Linguaggi Formali, Informatica (Scuola di Scienze, Dipartimento di Matematica, Università degli Studi di Padova)
Progetto realizzato da:
- Gianmarco Pettinato (Jatus93 aka Alucard93)
- Mariano Sciacco (Maxel aka Maxelweb)
- il ciclo while funziona
- il costrutto if-then-else funziona
- operazioni di moltiplicazione e divisione funzionano
- espressioni booleane complesse che utilizzano gli operatori logici and, or, not e le parentesi
- swl.g4 - Sintassi del linguaggio
- MyListener.cpp - Implementazione .cpp
- MyListener.h - Implementazione Header
- Esempio 1 - Calcolo dei Fattoriali
- Esempio 2 - Media
- Posizionare antlr4 in /home
- Avviare
source setup.sh
antlr4 -Dlanguage=Cpp swl.g4
make syncheck
./syncheck example.swl
--> controlla se la sintassi sia correttamake translate
./translate example.swl
--> fa vedere la traduzione
- Per la pulizia dopo l'utilizzo del make:
make clean
emake distclean
example.swl
--> File SWL col codice da scrivereswl.g4
--> File con la sintassi SWLMyListener.cpp/.h
--> File con le classi di traduzione. Il.h
contiene le classi che si vanno a usare.swlBaseListener
--> Autogenerato, crea instestazioni per le classi
Estendete la grammatica del linguaggio SWL con le seguenti funzionalità:
- il ciclo while
- il costrutto if-then-else
- operazioni di moltiplicazione e divisione
- espressioni booleane complesse che utilizzano gli operatori logici and, or, not e le parentesi
Scrivete almeno due programmi di esempio in SWL e allegateli alla soluzione.
Modificate il codice del traduttore per fare in modo che funzioni per programmi scritti con la grammatica estesa che avete creato per l'Esercizio 1. Provate il funzionamento del traduttore sui programmi di esempio.