Name Last Update
..
Examples Loading commit data...
Cmm.hs Loading commit data...
LICENSE Loading commit data...
Lex.x Loading commit data...
Main.hs Loading commit data...
Makefile Loading commit data...
Names.hs Loading commit data...
Parse.y Loading commit data...
README.md Loading commit data...
Tokens.hs Loading commit data...
Tree.hs Loading commit data...
runtime.c Loading commit data...
stack.yaml Loading commit data...
tree2c.cabal Loading commit data...

tree2c

tree2c übersetzt Programme der tree-Zwischensprache in C-Programme.

Installation

Für die Installation wird GHC benötigt. Die nötigen Dateien kann man einfach automatisch mit Stack (https://www.haskellstack.org/) installieren. Dann kann tree2c einfach mit

stack install

installiert werden.

Installation mit Cabal ist auch möglich:

cabal install

Verwendung

tree2c liest die Datei, die im ersten Argument angegeben ist, übersetzt sie nach C und schreibt das Ergebnis nach stdout. Wenn kein erstes Argument angegeben ist, wird die Eingable von stdin gelesen. Das produzierte C-programm kann zusammen mit der Datei runtime.c zu einer ausführbaren Datei übersetzt werden.

   tree2c fact.tree > fact.c
   gcc -m32 -o fact fact.c runtime.c
   ./fact

Das flag -m32 ist wichtig, da wir hier von einer 32-bit Architektur ausgehen.