Αυτή η εργασία αφορά την υλοποίηση ενός μεταγλωττιστή για τη γλώσσα miniPython, ένα υποσύνολο της Python. Η εργασία υλοποιείται σε δύο φάσεις, με χρήση του εργαλείου SableCC.
Η εργασία αποτελείται από δύο κύριες φάσεις:
-
- Λεκτική Ανάλυση
- Συντακτική Ανάλυση
-
- Κατασκευή Αφηρημένου Συντακτικού Δέντρου (AST)
- Πίνακας Συμβόλων & Σημασιολογικός Έλεγχος
Η εργασία υλοποιείται σε Java με χρήση του εργαλείου SableCC.
Κατέβασε το SableCC v3 και τοποθέτησέ το στον φάκελο του project ή στο PATH
.
Εγκατάσταση του SableCC
- Java 8 ή νεότερη (π.χ., OpenJDK)
javac
καιjava
στο$PATH
- SableCC (αρχείο
sablecc.jar
)Σημείωση: Το
sablecc.jar
πρέπει να τοποθετηθεί σε φάκελοlib/
μέσα στον φάκελο.
Από τον φάκελο όπου βρίσκεται το αρχείο γραμματικής (π.χ., phaseA/
):
- Αντιγράψτε το
sablecc.bat
στον φάκελοphaseA/
. - Εκτελέστε:
sablecc minipython.grammar
- Αντιγράψτε το αρχείο sablecc (shell script).
- Εκτελέστε:
chmod +x sablecc
./sablecc minipython.grammar
Μετά την εκτέλεση, δημιουργείται αυτόματα φάκελος minipython/
με τους υποφακέλους analysis
, lexer
, parser
, node
.