Tôi đang sử dụng ANTLR (3.2) để phân tích cú pháp một số ngữ pháp khá đơn giản. Thật không may, tôi đã gặp một vấn đề nhỏ. Thực hiện quy tắc follwoing:ANTLR: các toán tử đơn giản và nhị phân khác nhau (ví dụ: dấu trừ)
exp
: NUM
| '(' expression OPERATOR expression ')' -> expression+
| '(' (MINUS | '!') expression ')' -> expression
;
OPERATOR có cùng dấu trừ ('-') như được xác định bằng MINUS. Bây giờ ANTLR dường như không thể đối phó với hai quy tắc này. Nếu tôi loại bỏ một trong hai, tất cả mọi thứ hoạt động tốt.
Bất kỳ ý tưởng nào?
wow, công việc tuyệt vời, cảm ơn bạn rất nhiều! – Christian
@Christian, bạn được chào đón. –
Và làm thế nào là tokenizer phải biết khi đọc một trừ nếu nó tương ứng với một UNARY? –