Tôi có phân tích cú pháp biểu hiện đơn giản như sau:số Parsing với nhiều chữ số trong Prolog
expr(+(T,E))-->term(T),"+",expr(E).
expr(T)-->term(T).
term(*(F,T))-->factor(F),"*",term(T).
term(F)-->factor(F).
factor(N)-->nat(N).
factor(E)-->"(",expr(E),")".
nat(0)-->"0".
nat(1)-->"1".
nat(2)-->"2".
nat(3)-->"3".
nat(4)-->"4".
nat(5)-->"5".
nat(6)-->"6".
nat(7)-->"7".
nat(8)-->"8".
nat(9)-->"9".
Tuy nhiên điều này chỉ hỗ trợ số 1 chữ số. Làm cách nào để phân tích cú pháp các số có nhiều chữ số trong trường hợp này?
Bạn đang sử dụng prolog nào? Dones của tôi không có "->" nghĩ iirc. (SWI-Prolog) – InsertNickHere
Tôi đang sử dụng SWI-Prolog, quá ^^ – ubuntudroid
Huh. Nó nên là: - thay vào đó? * scratchhead * – InsertNickHere