Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.
/ SwlParserUNIPD Public archive

SWL parser to translate a custom created language to C++

License

Notifications You must be signed in to change notification settings

Maxelweb/SwlParserUNIPD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple While Language (SWL Parser)

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)

Sviluppo

Avanzamento implementazione

  • 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

Quick links

Installazione e controllo

  1. Posizionare antlr4 in /home
  2. Avviare source setup.sh
  3. antlr4 -Dlanguage=Cpp swl.g4
  4. make syncheck
  5. ./syncheck example.swl --> controlla se la sintassi sia corretta
  6. make translate
  7. ./translate example.swl --> fa vedere la traduzione
  • Per la pulizia dopo l'utilizzo del make: make clean e make distclean

Files

  • example.swl --> File SWL col codice da scrivere
  • swl.g4 --> File con la sintassi SWL
  • MyListener.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

Esercizio 1

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.

Esercizio 2

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.

About

SWL parser to translate a custom created language to C++

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages