MixalisDev Δημοσ. 3 Μαρτίου 2016 Δημοσ. 3 Μαρτίου 2016 (επεξεργασμένο) Καλησπερα θα ηθελα να φτιαξω εναν συντακτικο αναλυτη (LL(1) κατα προτιμηση επειδη ξερω πως δουλευει αν υπαρχει κατι πιο ευκολο δεκτο ) ο οποιος θα ελεγχει μια κανονικη εκγφραση αν ειναι σωστη... Δεν ξερω ομως πως βγαινει η γραμματικη..σε αυτο θα ηθελα βοηθεια αρχικα Επεξ/σία 7 Μαρτίου 2016 από MixalisDev
lion2486 Δημοσ. 3 Μαρτίου 2016 Δημοσ. 3 Μαρτίου 2016 Υπαρχουν διαφορα εργαλεια που τους δινεις την LL γραμματικη σου και κατασκευαζουν τον αναλυτη.
gon1332 Δημοσ. 3 Μαρτίου 2016 Δημοσ. 3 Μαρτίου 2016 http://www.codeproject.com/Articles/841749/Syntax-analysis-an-example Δε ξέρω αν θα βρεις εύκολα εργαλειο που να παραγει κώδικα για LL(1). Δε νομίζω να υπάρχει νόημα.
M2000 Δημοσ. 3 Μαρτίου 2016 Δημοσ. 3 Μαρτίου 2016 Από τον σύνδεσμο που έδωσε ο gon1332 βλέπουμε ένα πίνακα κανόνων. Αυτός ο πίνακας σου δείχνει κάθε γραμμή και μια συνάρτηση, όπου δίπλα σε <> είναι οι κλήσεις σε άλλες, όπου αν αποτύχει η πρώτη πάμε στη δεύτερη αν υπάρχει κάθετος. Αν έχουμε αποτυχία και τέλειωσαν οι επιλογές τότε η έκφρασή είναι λάθος. Ο αλγόριθμος τελειώνει με επιτυχία όταν εξαντληθεί, καταναλωθεί...η προς εξέταση έκφρασή. Οι παράμετροι για όλες τις επιμέρους συναρτήσεις είναι ίδιες, θέση στο κείμενο της έκφρασης. Για να κάνεις έλεγχο δεν χρειάζεται να παράγεις tokens. Το δένδρο σχηματίζεται με τις κλήσεις των συναρτήσεων και η επιστροφή true η false καθώς και αν υπάρχει υπόλοιπο για έλεγχο είναι αυτό που καθορίζει την ροή εκτέλεσης.
MixalisDev Δημοσ. 4 Μαρτίου 2016 Μέλος Δημοσ. 4 Μαρτίου 2016 Ευχαριστω για τις απαντησεις σας..αλλα μπερδευτικα καπως Φαινεται λιγο δυσκολος ο συνατκτικος αναλυτης LL(1) εχετε να μου προτινεται κατι αλλο?
gon1332 Δημοσ. 4 Μαρτίου 2016 Δημοσ. 4 Μαρτίου 2016 Έχεις κάποια γραμματική; Αν έχεις τότε μπορείς να χρησιμοποιήσεις κάποιον compiler-compiler, πχ flex/bison, ο οποίος σου παράγει αυτόματα κώδικα για συντακτική ανάλυση, αλλά όχι για LL(1) προφανώς. Αν θυμάμαι καλά GLR.
defacer Δημοσ. 4 Μαρτίου 2016 Δημοσ. 4 Μαρτίου 2016 Δεν ξερω ομως πως βγαινει η γραμματικη..σε αυτο θα ηθελα βοηθεια αρχικα Βασικά απ' ότι μου φαίνεται το θέμα σου είναι ο ορισμός της γραμματικής και όχι ο ίδιος ο parser που είναι μέσες άκρες απλή περίπτωση. Ίσως ακόμα και το αν γίνεται να ορίσεις LL(1) γραμματική για τη γλώσσα που θες να είναι συζητήσιμο. Οπότε μήπως να ξεκινήσεις μιλώντας για τη γλώσσα;
M2000 Δημοσ. 4 Μαρτίου 2016 Δημοσ. 4 Μαρτίου 2016 Μήπως να βγάλει και ένα α από το τίτλο συν-α-τακτικού αναλυτή; 3
groot Δημοσ. 5 Μαρτίου 2016 Δημοσ. 5 Μαρτίου 2016 Μήπως να βγάλει και ένα α από το τίτλο συν-α-τακτικού αναλυτή; Μέχρι να το γράψεις.. δεν το είχα παρατηρήσει!
MixalisDev Δημοσ. 5 Μαρτίου 2016 Μέλος Δημοσ. 5 Μαρτίου 2016 Βασικά απ' ότι μου φαίνεται το θέμα σου είναι ο ορισμός της γραμματικής και όχι ο ίδιος ο parser που είναι μέσες άκρες απλή περίπτωση. Ίσως ακόμα και το αν γίνεται να ορίσεις LL(1) γραμματική για τη γλώσσα που θες να είναι συζητήσιμο. Οπότε μήπως να ξεκινήσεις μιλώντας για τη γλώσσα; Ναι βασικα αυτο ειναι το προβλημα πως θα βγαλω την γραμματικη...μετα θα βγαλω να FIRST και τα FOLLOW και απο αυτα θα βγει το πινακακι..οπως κανει και στο βιβιλιο που εχω Θελω να αγνωριζει κανονικες εκφρασεις που θα εχουν τα συμβολα +,*,|,(,) (Εχω το βιβλιο του Σκορδαλακη Μεταγλωτηστες)
M2000 Δημοσ. 5 Μαρτίου 2016 Δημοσ. 5 Μαρτίου 2016 Είναι για άσκηση να παραδόσεις ή το κάνεις από χόμπι;
MixalisDev Δημοσ. 5 Μαρτίου 2016 Μέλος Δημοσ. 5 Μαρτίου 2016 Είναι για άσκηση να παραδόσεις ή το κάνεις από χόμπι; Απο χομπι...ειμαι σε σχολη πληροφορικης αλλα δεν με υποχρεωσε κανεις να το κανω απλα λεω να μαθω και τιποτα 1
M2000 Δημοσ. 5 Μαρτίου 2016 Δημοσ. 5 Μαρτίου 2016 Οκ. Γιατί πρέπει να είναι compiler και όχι interpreter αυτό που θες να αναγνωρίζει εκφράσεις; Δεν είναι πιο εύκολο να φτιάξεις διερμηνευτή; 1
gon1332 Δημοσ. 5 Μαρτίου 2016 Δημοσ. 5 Μαρτίου 2016 Δεν το έχω δοκιμάσει, αλλά ρίξε μία ματιά. Το άλλο που έχω δοκιμάσει και δουλεύει καλά δεν το βρίσκω.
MixalisDev Δημοσ. 7 Μαρτίου 2016 Μέλος Δημοσ. 7 Μαρτίου 2016 Δεν ειναι απαραίτητο να ειναι compiler απλα με interpreter δεν εχω δει καθόλου εμενα με ενδιαφέρει να ελέγχει μια κανονική έκφραση
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα