tôi đang tạo ra một cây phân tích cú pháp mà sẽ chứa các biểu thức tương tự nhưunary Và Binary Trừ trong Parse Tree
3 - 4 * 8
hoặc
8 * -5
hoặc
-(10 * 1)
Tôi cần một cách để phân biệt giữa unary và nhị phân trừ đi. Cách ngữ pháp của tôi bây giờ là nhị phân trừ đi đạt được đầu tiên, nhưng tôi đang nghĩ đến việc thay đổi điều đó và thêm một biến cờ giữ biến cuối cùng.
Ex: nếu nó là 5 - 6
Lá cờ đang nắm giữ 5 và nếu nó thấy trừ và cờ là một số các skip unary và đi đến nhị phân.
Tuy nhiên tôi không chắc chắn cách thực hiện điều này trong C++
Mọi trợ giúp sẽ được đánh giá cao.
Cảm ơn
Bạn có nghĩa là một cách để phân biệt chúng như bạn đang làm phân tích cú pháp, hoặc một cách để phân biệt chúng trong phân tích cú pháp cây? Trong cây phân tích cú pháp, nó tầm thường - chỉ có các toán tử 'UNARY_MINUS' và' BINARY_MINUS' riêng biệt. Nếu bạn có nghĩa là bạn đang phân tích cú pháp, một trừ đi đơn nhất xảy ra khi bạn đang mong đợi một toán hạng, chứ không phải toán tử. –
Trong trình phân tích cú pháp của tôi, tôi muốn nó phân biệt giữa -5 và 4 -5. Phần tiếp theo của tôi chuyển đổi lá của cây này thành cây AST (đang hoạt động) nhưng trình phân tích cú pháp của tôi thấy mọi thứ dưới dạng nhị phân trừ (4 - 5). – Dfranc3373