Skip to content
SWL parser to translate a custom created language to C++
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
development
docs
examples
project-documentation
software
LICENSE
README.md

README.md

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.

You can’t perform that action at this time.