Πρώτα από όλα πρέπει να το κατεβάσουμε από εδώ για linux και από εδώ για windows(εκτελείται μέσω cygwin, γι αυτό καλύτερα είναι δουλέψουμε μέσω linux).
Αφού είμαστε σίγουροι οτι η εγκατάσταση του έγινε σωστά(μπορείτε να το βρείτε και μέσω του paskage manager στο ubuntu), τότε μπορούμε να αρχίσουμε να δουλεύουμε.
Το flex είναι ένα μεταεργαλείο στο οποίο περιγράφουμε με ένα εύκολο πακέτο εντολών τον λεκτικό αναλυτή μας και το αυτό αναλαμβάνει την ευθύνη να τον κατασκευάσει έτσι ώστε:
- Nα είναι σωστός στο compile(μιάς και είναι δύσκολο να συντάξουμε ΛΑ από μόνοι μας σε c#),
- Να είναι γρήγορος ο ΛΑ μας(το flex παράγει αρκετά γρήγορους ΛΑ από μόνο του) και
- Να είναι εύκολη η αποσφαλμάτωση του
Εδώ είναι και το μέρος όπου εγώ μπερδευόμουν, μιάς και μας έχουν δωθεί κάποιες οδησίες σχετικά με το flex και το πώς συντάσσεται το αρχείο με κατάληξη .l αλλά δεν μας είπαν πως εκτελείται και πώς μπορούμε να κάνουμε την αποσφαλμάτωση.
Ορίστε και ένα παράδειγμα!
Αφού συντάξουμε το κείμενο αυτό το τρέχουμε με το flex πηγαίνοντας στο φάκελο που βρίσκεται αυτό και πληκτρολογώντας "flex test.l". Άν δεν βγάλει κάτι πάει να πεί ότι όλα πήγαν καλά έως εδώ, διαφορετικά κάναμε κάποιο λάθος.
Στη συνέχεια το flex θα παράγει το αρχείο "lex.yy.c" το οποίο είναι και ο ΛΑ μας, έτσι τον κάνουμε compile με τον gcc ώς εξής: "gcc -lbf lex.yy.c" , για να δούμε αν έχει σφάλματα. Άν δέν έχει τότε είμαστε έτοιμοι να τον τρέξουμε και να δούμε τι αποτελέσματα δίνει για κάθε είσοδο, αλλιώς πρέπει να γυρίσουμε στον κώδικα του test.l που γράψαμε πρίν και να δούμε τι κάναμε λάθος. Είναι αρκετά δύσκολη διαδικασία γι αυτό και δεν ασχολούνται αρκετοί συνάδελφοι.
Άν αποφασίσετε να ασχοληθείτε να ξέρετε ότι μπορείτε να βρείτε σημαντικές πληροφορίες και μέσα στο βιβλίο, καλό διάβασμα!
No comments:
Post a Comment