Tạo thông báo lỗi cú pháp như thế nào?

Em có đang làm thử một cái trình soạn thảo code sử dụng Syntax Editor của Actipro Winfrom control
Cho em hỏi làm thế nào và sủ dụng những gì để thông báo lỗi cú pháp lên màn hình trong lập trình (ví dụ như thiếu dấu ; thì ngay bên cạnh cạnh đó sẽ xuất hiện dấu gạch đỏ chẳng hạn). Có cần dùng đến trình biên dịch nào đó để thông báo lỗi như bảng Error list giống visual studio không? hay là ta sử dụng Parser, các Grammar của từng ngôn ngữ lập trình?

1 Like

Mấy cái này bạn đọc lý thuyết về lint và nghiên cứu vài tool nguồn mở có sử dụng lint.

6 Likes

Để thực hiện được việc thông báo lỗi cú pháp, cậu không cần tới mức compiler, nhưng nhất thiết cậu cần có:

  • Một bộ phân tích từ vựng (gọi là scanner/lexer): cậu cần tách code của cậu thành các từ vựng
  • Một bộ phân tích cú pháp (Parser): dùng đầu vào là các từ vựng, kết hợp với cấu trúc ngữ pháp của ngôn ngữ (Parser nhất thiết phải biết cấu trúc ngữ pháp của ngôn ngữ xác định đó) để validate cú pháp của code. Tất cả các thông tin lỗi cú pháp sẽ được thông báo do bạn này.

Nếu cậu cần parser cho nhiều ngôn ngữ lập trình (tớ đoán cậu cần), cậu có thể tham khảo antlr project - dùng để generate parser số lượng lớn cho ngôn ngữ mà cậu cần. Cậu cũng nên dễ dàng access được vào một số cây cú pháp của các ngôn ngữ phổ biến ở đó.

Hope it helps!

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?