monkey90 Δημοσ. 18 Φεβρουαρίου 2014 Δημοσ. 18 Φεβρουαρίου 2014 (επεξεργασμένο) Καλησπέρα, παρόλο που στο θεωρητικό κομμάτι είχα καταφέρει να κατανοήσω πως λειτουργούν τώρα στο πρακτικό που υπάρχει και μεγαλύτερη γκάμα συμβόλων νιώθω λες και βρίσκομαι σε λαβύρινθο. Καταρχάς αν υπάρχει κανείς που ξέρει κάποιο καλό site για να δω παραδείγματα που να δουλέβουν στο visual studio 2008 γιατί ψάχνω ψάχνω και αυτά που βρίσκω δε λειτουργούν, συγκεκριμένα εμφανίζουν αυτό "Error 1 error PRJ0019: A tool returned an error code from "Generating lexical analyser..." Project3 Project3". Έχω αρκετές απορίες αλλά να σας δώσω κάποια παραδείγματα. Για να ταιριάζει με οτιδήποτε μέσα σε " " χρησιμοποιώ την παρακάτω έκφραση και δουλέυει με τη λογική πως ξεκινάει με " έπειτε μπορεί να πάρει οτιδήποτε εκτός απο " καμία η περισσότερες φορές και τερματίζει όταν βρει πάλι ". \"(.|\n)*\" Για να ταιριάζει σχόλια μίας γραμμής στη c βρήκα 2 εκδοχές αλλά δε μπορώ να βρώ πως να συμβολίσω το EOF ώστε να έχει ισχή άμα βρίσκεται το σχόλιο στην τελευταία σειρά.H 1η ξεκινέι με // έπειτε παίρνει οτιδήποτε εκτός απο \n καμία η περισσότερες φορές και τερματίζει όταν βρεί οτιδήποτε,εκτοσ απο \n, που να ακολουθείται απο \n. To 2o ξεκινάει απο // παίρνει οτιδήποτε εκτός απο \n καμία η περισσότερες φορές και τερματίζει όταν φτάσει στο τέλος της γραμμής. "//"[^\n]*./\n η "//".*$ Tώρα με τη λογική ότι δουλέυουν αυτά προσπαθώ να φτιάξω regex να ταιριάζει στα σχόλια πολλαπλής γραμμής αλλά έχω κολλήσει κάτι ώρες τώρα. Επίσης για κάποιο λόγο το παρακάτω λειτουργεί σωστά, αν το δοκιμάσω σε κάποιον online regex tester αλλά δε λειτουργεί(παίρνει πολύ περισσότερα από ότι πρέπει) στο visual studio 2008(χρησιμοποιόντας flex και bison). /\*(.|\n)*?\*/ Αν μπορεί κάποιος να μου υποδείξει αν έχω κάνει κάποιο λάθος η κάποια διόρθωση στα προηγούμενα και το πιο συμαντικό κάποιο έμπιστο site με παραδείγματα;Ευχαριστώ. Επεξ/σία 18 Φεβρουαρίου 2014 από monkey90
nilosgr Δημοσ. 19 Φεβρουαρίου 2014 Δημοσ. 19 Φεβρουαρίου 2014 Στο flex μπορεις να κανεις δικες σου κλασεις, πχ LETTER [A-Za-z] DIGIT [0-9] ALPHANUM {LETTER}|{DIGIT} WORD {ALPHANUM}+ Στο παρακατω εχεις λαθος, αφου ΔΕΝ λαμβανεις υποψιν τα quotes αναμεσα σε quotes \"(.|\n)*\" πχ το παρακατω θα αναγνωριστει, επειδη το συμβολο * ειναι greedy --επισης λαβε υποψιν και τα escaped quotes "ενα quote " ενδιαμεσα" Εγω δουλευα ετσι: http://www.codeproject.com/Articles/652229/VS2012-C-project-w-Flex-Bison 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα