Επεξεργαστής κώδικα για τη MiniJava

Συζητήσεις σχετικά με τα υποχρεωτικά μαθήματα του τρέχοντος ακαδημαϊκού έτους. Για συζητήσεις παλαιοτέρων ετών κοιτάξτε στην κατηγορία "Παλιές Συζητήσεις "
Post Reply
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Επεξεργαστής κώδικα για τη MiniJava

Post by cyberpython » Tue Apr 27, 2010 2:07 pm

Πέρυσι όταν κάναμε το project των Μεταγλωττιστών έγραψα ένα μικρό επεξεργαστή κώδικα για τη MiniJava.
Όποιος θέλει μπορεί να τον χρησιμοποιήσει με το μεταγλωττιστή του κατεβάζοντας τον κώδικα από το github.
Στον κώδικα ΔΕΝ περιέχεται οποιοδήποτε τμήμα του κώδικα του μεταγλωττιστή.
Image
Για να συνδέσετε το μεταγλωττιστή σας με τον επεξεργαστή πρέπει :
  • Ο lexer να πετάει Exceptions (τάξη LexerException που παράγεται από το SableCC) που κληρονομούν την abstract τάξη minijed.compiler.infrastructure.MiniJavaLexerException
  • Η τάξη Token (που παράγεται από το SableCC) να υλοποιεί τη διεπαφή minijed.compiler.infrastructure.MiniJavaToken
  • Ο parser να πετάει Exceptions (τάξη ParserException που παράγεται από το SableCC) που κληρονομούν the abstract τάξη minijed.compiler.infrastructure.MiniJavaParserException και υλοποιούν την abstract μέθοδο: public abstract MiniJavaToken getToken();
  • Ο compiler να κληρονομεί την abstract τάξη minijed.compiler.infrastructure.MiniJavaCompiler και υλοποιούν την abstract μέθοδο: abstract public void compile(Reader input, DefaultListModel output, File outputDir) throws MiniJavaParserException, MiniJavaLexerException, IOException;
  • Να αλλάξετε τη γραμμή 579 στο αρχείο minijed.MiniJedView.java :

    Code: Select all

    MiniJavaCompiler compiler = new YourMiniJavaCompiler();
    ώστε να δημιουργεί ένα νέο instance του δικού σας μεταγλωττιστή.
Edit: Ο κώδικας του επεξεργαστή είναι διαθέσιμος υπό την άδεια MIT.
Ο κώδικας του JSyntaxPane και οτιδήποτε κάτω από το πακέτο documentcontainer.* είναι διαθέσιμο υπό την Apache license v2.0

Edit 2: Άλλαξα το link να δείχνει στο github.
Last edited by cyberpython on Wed Jun 30, 2010 8:38 pm, edited 5 times in total.
User avatar
enum21
Venus Former Team Member
Posts: 5436
Joined: Mon Feb 16, 2009 9:06 pm
Academic status: Alumnus/a
Gender:
Location: Underworld

Re: Επεξεργαστής κώδικα για τη MiniJava

Post by enum21 » Tue Apr 27, 2010 2:51 pm

Πολύ καλή δουλειά!! :smt023

Το έκανα sticky! ;)
User avatar
maxthebest
Kilobyte level
Kilobyte level
Posts: 180
Joined: Fri Dec 02, 2005 5:23 pm
Location: Παράδεισος

Re: Επεξεργαστής κώδικα για τη MiniJava

Post by maxthebest » Tue Apr 27, 2010 9:37 pm

Δεν κατεβαινει,

το κατεβαζα με ταχυτητα 0.04 κbyte/sec, και μετα απο 20 λεπτα ολοκληρωθηκε (κατεβασε 51 κbyte),
οταν πηγα να το ανοιξω λεει file corrupted.

Βαλτω σε καποιο σιτε που να μπορουμε να το κατεβασουμε πχ. google code.
Ούτοι συνέχθειν, αλλά συμφιλείν έφυν (Αντιγόνη στοίχος 523) =
Δεν γεννήθηκα για να συμμερίζομαι το μίσος , αλλά για να αγαπώ και να με αγαπούν.
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Επεξεργαστής κώδικα για τη MiniJava

Post by cyberpython » Tue Apr 27, 2010 9:58 pm

Μια χαρά δουλεύει το link για εμένα. Δοκίμασε και από εδώ
User avatar
maxthebest
Kilobyte level
Kilobyte level
Posts: 180
Joined: Fri Dec 02, 2005 5:23 pm
Location: Παράδεισος

Re: Επεξεργαστής κώδικα για τη MiniJava

Post by maxthebest » Tue Apr 27, 2010 10:43 pm

thx :-) , τωρα κατεβηκε κανονικα απο το νεο link, δεν ξερω γιατι το αλλο link, δεν δουλευε.

Φαινεται εντυπωσιακο απο τα screenshots, πιο πολυ με ενδιαφερει πως εκανες το gui (αν και πως χρησιμοποιησες εξαρτηματα του netbeans για το gui).
Θα ηθελα και εγω καποια στιγμη να κανω κατι παρομοιο, αν και απο οτι φαινεται αυτο θα το προσπαθησω οταν τελιωσω την σχολη (σε 5 μηνες), προς το παρον διαβασμα + εργασιες.
Ούτοι συνέχθειν, αλλά συμφιλείν έφυν (Αντιγόνη στοίχος 523) =
Δεν γεννήθηκα για να συμμερίζομαι το μίσος , αλλά για να αγαπώ και να με αγαπούν.
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Επεξεργαστής κώδικα για τη MiniJava

Post by cyberpython » Fri Apr 30, 2010 1:33 am

maxthebest wrote:thx :-) , τωρα κατεβηκε κανονικα απο το νεο link, δεν ξερω γιατι το αλλο link, δεν δουλευε.

Φαινεται εντυπωσιακο απο τα screenshots, πιο πολυ με ενδιαφερει πως εκανες το gui (αν και πως χρησιμοποιησες εξαρτηματα του netbeans για το gui).
Θα ηθελα και εγω καποια στιγμη να κανω κατι παρομοιο, αν και απο οτι φαινεται αυτο θα το προσπαθησω οταν τελιωσω την σχολη (σε 5 μηνες), προς το παρον διαβασμα + εργασιες.
Όλη η διεπαφή έχει σχεδιαστεί με το designer του Netbeans, αλλά δε χρησιμοποιεί κάτι από το NetBeans Platform.
Για το άνοιγμα/αποθήκευση/έλεγχο πριν το κλείσιμο των αρχείων και την εμφάνιση των αντίστοιχων διαλόγων χρησιμοποιεί μία βιβλιοθήκη που έχω γράψει μόνος μου.
Ο editor βασίζεται στο jsyntaxpane.

Δοκίμασε κανείς να το συνδέσει με το μεταγλωττιστή του;
Last edited by cyberpython on Thu Nov 25, 2010 9:43 pm, edited 1 time in total.
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Επεξεργαστής κώδικα για τη MiniJava

Post by cyberpython » Wed Jun 30, 2010 8:40 pm

Όλος ο κώδικας είναι από σήμερα στο github.
Post Reply

Return to “Υποχρεωτικά Μαθήματα”