Ο λεξικός αναλυτής χρειάζεται για να σαρώσει και να αναγνωρίσει μόνο ένα πεπερασμένο σύνολο έγκυρων συμβολοσειρών/κουπονιού/λεξήματος που ανήκουν στη γλώσσα που χρησιμοποιείται. Αναζητά το μοτίβο που ορίζεται από τους γλωσσικούς κανόνες. Οι κανονικές εκφράσεις έχουν τη δυνατότητα να εκφράζουν πεπερασμένες γλώσσες ορίζοντας ένα μοτίβο για πεπερασμένες σειρές συμβόλων.
Γιατί χρειαζόμαστε έναν λεξικό αναλυτή;
Ο ρόλος του Lexical Analyzer
Η πρώτη φάση ενός μεταγλωττιστή. Λεξιλογική ανάλυση: διαδικασία λήψης μιας συμβολοσειράς εισόδου χαρακτήρων (όπως ο πηγαίος κώδικας ενός προγράμματος υπολογιστή) και η παραγωγή μιας ακολουθίας συμβόλων που ονομάζονται λεξικά διακριτικά ή απλώς διακριτικά, τα οποία μπορεί να χειρίζονται πιο εύκολα από έναν αναλυτή.
Ποιος είναι ο ρόλος του λεξικού αναλυτή στον μεταγλωττιστή;
Μετά τη λήψη μιας εντολής get-next-tohen από τον αναλυτή, ο λεξικός αναλυτής διαβάζει χαρακτήρες εισόδου μέχρι να μπορέσει να αναγνωρίσει το επόμενο διακριτικό. οι μάρκες επηρεάζουν τις αποφάσεις ανάλυσης, … οι ιδιότητες επηρεάζουν τη μετάφραση των διακριτικών.
Τι δημιουργεί ένας λεξικός αναλυτής;
Ο λεξικός αναλυτής (που δημιουργείται αυτόματα από ένα εργαλείο όπως το lex ή χειροποίητος) διαβάζει σε μια ροή χαρακτήρων, προσδιορίζει τα λεξικά στη ροή και τα κατηγοριοποιεί σε διακριτικά. Αυτό ονομάζεται tokenizing. Εάν το lexer βρει ένα μη έγκυρο διακριτικό, θα αναφέρει ένα σφάλμα.
Τι χρειάζεται ο λεξικός αναλυτής και ο συντακτικός αναλυτής σε διαφορετική φάση;
Ένας λεξιλογικός αναλυτής είναι μια αντιστοίχιση προτύπων. Μια ανάλυση σύνταξης περιλαμβάνει το σχηματισμό ενός δέντρου για τον εντοπισμό παραμορφώσεων στη σύνταξη του προγράμματος. Λιγότερο περίπλοκες προσεγγίσεις χρησιμοποιούνται συχνά για λεξιλογική ανάλυση. Η συντακτική ανάλυση απαιτεί μια πολύ πιο σύνθετη προσέγγιση.