Skip to content

A compiler for miniPython, a simplified subset of Python, built with SableCC. Includes lexical, syntactic, and semantic analysis with AST generation.

License

Notifications You must be signed in to change notification settings

Anthippi/MiniPythonCompiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiniPython Compiler Static Badge

Αυτή η εργασία αφορά την υλοποίηση ενός μεταγλωττιστή για τη γλώσσα miniPython, ένα υποσύνολο της Python. Η εργασία υλοποιείται σε δύο φάσεις, με χρήση του εργαλείου SableCC.

Δομή Εργασίας

Η εργασία αποτελείται από δύο κύριες φάσεις:

  • Φάση Α:

    • Λεκτική Ανάλυση
    • Συντακτική Ανάλυση
  • Φάση Β:

    • Κατασκευή Αφηρημένου Συντακτικού Δέντρου (AST)
    • Πίνακας Συμβόλων & Σημασιολογικός Έλεγχος

Εγκατάσταση και Setup

Η εργασία υλοποιείται σε Java με χρήση του εργαλείου SableCC. Κατέβασε το SableCC v3 και τοποθέτησέ το στον φάκελο του project ή στο PATH.

Προαπαιτούμενα

Εγκατάσταση του SableCC

  • Java 8 ή νεότερη (π.χ., OpenJDK)
  • javac και java στο $PATH
  • SableCC (αρχείο sablecc.jar)

    Σημείωση: Το sablecc.jar πρέπει να τοποθετηθεί σε φάκελο lib/ μέσα στον φάκελο.

Εκτέλεση SableCC

Από τον φάκελο όπου βρίσκεται το αρχείο γραμματικής (π.χ., phaseA/):

Windows:

  1. Αντιγράψτε το sablecc.bat στον φάκελο phaseA/.
  2. Εκτελέστε:
sablecc minipython.grammar

Linux/macOS:

  1. Αντιγράψτε το αρχείο sablecc (shell script).
  2. Εκτελέστε:
chmod +x sablecc
./sablecc minipython.grammar

Μετά την εκτέλεση, δημιουργείται αυτόματα φάκελος minipython/ με τους υποφακέλους analysis, lexer, parser, node.

Ομάδα

About

A compiler for miniPython, a simplified subset of Python, built with SableCC. Includes lexical, syntactic, and semantic analysis with AST generation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages