ch-fano / Progetto_compilatori

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Questa cartella contiene tutti i file per l'implementazione di un compilatore 
per il linguaggio Kaleidoscope e la cartella Test_progetto per la verifica della grammatica
fino al quarto livello. 

1) Grammatica di primo livello:
    Introduce le classi GlobalVarExprAST e AssignmentExprAST per la gestione, rispettivamente,
    della creazione di variabili globali e degli assegnamenti. Modifica inoltre la classe 
    VariableExprAST per gestire lo scope delle variabili globali quando vengono utilizzate
    all'interno di un'espressione.

2) Grammatica di secondo livello:
    Introduce i costrutti if e for attraverso la classe ForExprAST e la modifica della classe 
    preesistente IfExprAST. Introduce inoltre la classe InitAST da cui ereditano le classi
    VarBindingAST e AssignmentExprAST utilizzate nella parte di inizilizzazione del costrutto for.

3) Grammatica di terzo livello:
    Introduce gli operatori and, or e not attraverso una modifica alla classe BinaryExprAST.

4) Grammatica di quarto livello:
    Introduce gli array attraverso le modifiche alle classi GlobalVarExprAST e VarBindingAST per 
    la loro dichiarazione, alla classe VariableExprAST per poterli utilizzare nelle espressioni 
    e alla classe AssignmentExprAST per poter effettuare gli assegnamenti.


Istruzioni per l'utilizzo del codice:

- Per generare il compilatore implementato attraverso l'eseguibile kcomp è sufficiente digitare:
> make

- Per provare il software generato è necessario spostarsi nella directory Test_progetto ed eseguire
  il make del programma desiderato:
> cd Test_progetto
> make <nome programma>

  oppure in alternativa generare tutti gli eseguibili:
> cd Test_progetto
> make

- L'eseguibile può essere testato nel modo seguente:
> ./<nome_eseguibile> 

About


Languages

Language:C++ 94.2%Language:Makefile 5.6%Language:Shell 0.1%