Tôi có một ngữ pháp mà tôi không biết loại phân tích cú pháp nào tôi cần để phân tích cú pháp khác ngoài tôi không tin rằng ngữ pháp là LL (1). Tôi nghĩ rằng tôi cần một phân tích cú pháp với backtracking hoặc LL (*) của một số loại. Ngữ pháp tôi đã nảy ra (có thể cần một số viết lại) là:Loại trình phân tích cú pháp nào cần thiết cho ngữ pháp này?
S: Rules
Rules: Rule | Rule Rules
Rule: id '=' Ids
Ids: id | Ids id
các ngôn ngữ tôi đang cố gắng để tạo ra trông giống như sau:
abc = def g hi jk lm
xy = aaa bbb ccc ddd eee fff jjj kkk
foo = bar ha ha
Zero hoặc nhiều Rule có chứa một trái số nhận dạng được theo sau bởi một dấu bằng được theo sau bởi một hoặc nhiều số nhận dạng. Phần mà tôi nghĩ rằng tôi sẽ gặp vấn đề khi viết một trình phân tích cú pháp là ngữ pháp cho phép bất kỳ số lượng id nào trong Quy tắc và cách duy nhất để biết khi nào Quy tắc mới bắt đầu là khi nó tìm id =, điều này sẽ yêu cầu backtracking.
Có ai biết phân loại ngữ pháp này và phương pháp phân tích cú pháp tốt nhất, cho một số được viết bằng tay trình phân tích cú pháp không?
Quy tắc cuối cùng không cần thêm 'id' trước hoặc sau 'Id' trên RHS? –