Tôi đang tìm một định nghĩa rõ ràng về "mã thông báo", "trình phân tích cú pháp" và "từ vựng" là gì và chúng có liên quan với nhau như thế nào (ví dụ: trình phân tích cú pháp sử dụng mã thông báo hoặc ngược lại)? Tôi cần tạo một chương trình sẽ đi qua các tệp nguồn c / h để trích xuất khai báo và định nghĩa dữ liệu.
Tôi đã tìm kiếm các ví dụ và có thể tìm thấy một số thông tin, nhưng tôi thực sự vật lộn để nắm bắt các khái niệm cơ bản như quy tắc ngữ pháp, cây phân tích cú pháp và cây cú pháp trừu tượng và cách chúng liên quan với nhau. Cuối cùng, các khái niệm này cần được lưu trữ trong một chương trình thực tế, nhưng 1) chúng trông như thế nào, 2) có những triển khai chung.
Tôi đã xem Wikipedia về các chủ đề và chương trình như Lex và Yacc, nhưng chưa bao giờ trải qua lớp biên dịch (chuyên ngành EE) Tôi cảm thấy khó hiểu hoàn toàn những gì đang diễn ra.