Necroposting, το ξέρω, αλλά πριν από 2 εβδομάδες αποφάσισα να ξανα-γράψω το μεταγλωττιστή από το μηδέν, αυτή τη φορά ως διερμηνευτή (αφορμή το βιβλίο Language Implementation Patterns που έπεσε στα χέρια μου).
Μέχρι στιγμής ο διερμηνευτής μπορεί να εκτελέσει οποιοδήποτε πρόγραμμα δεν περιέχει υπο-προγράμματα (όλα τα παραδείγματα του βιβλίου ΑΕΣΠΠ μέχρι το κεφάλαιο 10).
Υποστηρίζει όλες τις ενσωματωμένες συναρτήσεις της ΓΛΩΣΣΑΣ, πολυδιάστατους πίνακες κλπ. - βέβαια, ακόμη δεν έχω ελέγξει κατά πόσο λειτουργούν σωστά όλα αυτά...
Ακόμη δεν κάνω έλεγχο για το encoding του αρχείου εισόδου, οπότε μπορεί για αρχεία που είναι γραμμένα σε Windows να μη τρέχει σωστά.
Μπορείτε να κατεβάσετε ένα ZIP με το εκτελέσιμο
από εδώ (έκδοση 0.1)
και αφού το αποσυμπιέσετε τρέχετε από γραμμή εντολών:
Code: Select all
cd <διαδρομή όπου αποσυμπιέστηκε το ZIP>
cd glossa-interpreter_M1\(2010-10-31\)
java -jar dist/glossa-interpreter.jar src/glossa/samples/PrintTest.gls
Όλος ο κώδικας είναι ελεύθερα διαθέσιμος υπό την άδεια MIT σε αυτό το
Github repository
Edit(07-11-2010):
Πλέον ο διερμηνευτής μπορεί να εκτελέσει οποιοδήποτε πρόγραμμα γραμμένο στη ΓΛΩΣΣΑ.
Λήψη έκδοσης 0.2
- Γίνεται αυτόματη αναγνώριση της κωδικοποίησης του αρχείου εισόδου (windows-1253, ISO-8859-7 ή UTF-8).
Οι χρήστες Windows ίσως πρέπει να αλλάξουν τη γραμματοσειρά της γραμμής εντολών σε Lucida Console και να δώσουν την εντολή:
για να εμφανίζονται σωστά οι χαρακτήρες.
- Υποστηρίζονται όλες οι ενσωματωμένες συναρτήσεις της ΓΛΩΣΣΑΣ.
- Υποστηρίζονται οι κλήσεις σε συναρτήσεις και διαδικασίες.
- Μπορούν να περαστούν πίνακες ως παράμετροι σε υποπρογράμματα.
- Το πέρασμα των παραμέτρων γίνεται με τιμή και αν το υποπρόγραμμα είναι διαδικασία στο τέλος γίνεται αντιγραφή των τιμών πίσω στις αντίστοιχες μεταβλητές του (υπο)προγράμματος που την κάλεσε.
- Υποστηρίζεται η χρήση αρχείου εισόδου (-f όνομα_αρχείου).
- Υποστηρίζεται η εκτέλεση βήμα-προς-βήμα και η εμφάνιση των περιεχομένων της στοίβας εκτέλεσης. (-i)
Προς το παρόν παρέχεται μόνο διεπαφή γραμμής εντολών.
