Gần đây tôi đã bắt gặp một bài báo mô tả kỹ thuật phân tích cú pháp được đề cập trong tiêu đề. Thật không may, thuật ngữ được sử dụng trong bài báo nói trên có phần vượt quá tầm hiểu biết của tôi, vì vậy tôi đã cố gắng nắm bắt thuật toán xây dựng một cách trực quan hơn. Tôi tin rằng tôi đã thành công ( bài thuyết trình này là nguồn gốc của khoảnh khắc ah-ha), nhưng một xác minh về tính đúng đắn từ một người nào đó quen thuộc với kỹ thuật hoặc thuật ngữ có trong đó sẽ được đánh giá cao.
Tôi sẽ mô tả việc tôi đưa ra giải pháp (nếu nó chính xác, tôi tin rằng nó có thể giúp ích cho những người khác đang cố gắng hiểu kỹ thuật này) và đặt câu hỏi bổ sung sau đó. Để đảm bảo không có sự hiểu lầm, tôi sẽ sử dụng ký hiệu chuẩn sau: , A , B , C , . . . ∈ N , . . . X , Y , Z ∈ N ∪ T , α , β và, như trong giấy, Một i → w để biểu thị số quy tắc i . Tuy nhiên, có lẽ tôi sẽ sử dụng các tên khác nhau cho các khái niệm so với giấy gốc.
Ngoài ra, trong suốt mô tả, quan hệ tương đương được sử dụng.
Xây dựng
Có hai loại mặt hàng bên trong automaton phân tích cú pháp: LR đơn giản (0) mặt hàng có dạng mà tôi gọi là mặt hàng thay đổi và các mặt hàng có dạng A i → alpha ∙ beta , m , n mà tôi gọi là quyết tâm vật phẩm ; những nói phân tích cú pháp để đẩy n ký tự sao lưu các dòng đầu vào và sau đó giảm số quy tắc m khi biểu tượng đầu tiên của β .
Tất nhiên, đây chỉ là một bản phác thảo; trên thực tế, việc đóng cửa nhà nước phải được tính toán trước và chỉ sau đó chúng ta mới có thể xử lý các chuyển đổi / thay đổi và nghị quyết.
Câu hỏi
Rõ ràng, điều đầu tiên là liệu quy trình được mô tả ở trên có chính xác hay không.
Và cuối cùng là về giải quyết xung đột. Bài viết mô tả tốt những gì cấu thành sự bất cập trong máy tự động giải quyết thay đổi; Có cách nào để giải quyết những bất cập này, tương tự như cách giải quyết xung đột trong trình phân tích cú pháp LR truyền thống không? Có thể một cái gì đó như giải quyết xung đột kiểu yacc thông qua quyền ưu tiên và kết hợp có thể được thực hiện trong trình tạo trình phân tích cú pháp ShRe không?
Cảm ơn nếu bạn đọc tất cả điều này và bất kỳ câu trả lời sẽ được đánh giá rất cao :)