cách chính xác để giải quyết vấn đề này trong ANTLR là gì:Làm thế nào để đối phó với giá trị danh sách trở lại trong ANTLR
tôi có một quy tắc ngữ pháp đơn giản, nói cho một danh sách với một số tùy ý của các yếu tố.
list
: '[]'
| '[' value (COMMA value)* ']'
Nếu tôi muốn gán giá trị trả lại cho danh sách và có giá trị đó là danh sách giá trị trả về thực tế từ quá trình sản xuất, cách thích hợp để thực hiện điều đó là gì? Các phương án Tôi đang giải trí bao gồm:
- tạo ngăn xếp của riêng tôi trong phạm vi toàn cầu để theo dõi các danh sách này
- Cố gắng kiểm tra các nút cây bên dưới tôi và trích xuất thông tin như vậy
- Tiếp cận nó trong một số cách trơn tru và thú vị mà tôi hy vọng tìm hiểu về việc tôi có thể dễ dàng truy cập vào danh sách như vậy từ bên trong hành động liên quan đến quy tắc.
Tôi đoán câu hỏi là: Làm thế nào để những đứa trẻ tuyệt vời làm điều đó?
(FYI Tôi đang sử dụng API python cho ANTLR, nhưng nếu bạn đánh tôi với một ngôn ngữ khác, tôi có thể xử lý đó)
Và điều đó cũng rất gần với giao diện của nó trong Java. Cảm ơn! Tuy nhiên, Antlr yêu cầu tôi chỉ định tên cho mỗi "giá trị": a = expr {$ valueList.add ($ a.value);} (b = expr {$ valueList.add ($ b.value);}) * –