Αυτή η εργασία αφορά την υλοποίηση ενός μεταγλωττιστή για τη γλώσσα 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.