這可能聽起來很奇怪,但它是在一個解析器使用,我希望能夠解析形式如何在prolog中寫一個方括號?
富[巴]
因此,這將在一個列表來表示的東西爲:
[富,[,酒吧,[] 也許這樣的詞將在DCG寫成:
x --> id [[] arg []]
問題是方括號是一個保留字符,所以我怎麼能在prolog中表示這個?
這可能聽起來很奇怪,但它是在一個解析器使用,我希望能夠解析形式如何在prolog中寫一個方括號?
富[巴]
因此,這將在一個列表來表示的東西爲:
[富,[,酒吧,[] 也許這樣的詞將在DCG寫成:
x --> id [[] arg []]
問題是方括號是一個保留字符,所以我怎麼能在prolog中表示這個?
你不能把你的方括號當作原子(即,'['
和']'
)以及其他所有東西嗎?
怎麼樣,對於例如:
label1(T) --> id(X), label2(Y), {T =.. [X, Y]}.
label2(Y) --> ['['], innerexp(Y), [']'].
id(X) --> [X].
innerexp(Y) --> [Y].
執行:
?- phrase(label1(T), [foo, '[', bar, ']'], Rem).
T = foo(bar),
Rem = [].
我如何從文件中的方括號中讀取並將它們放在單個逗號中? – Tom 2010-11-16 01:42:57
這是一個伎倆,謝謝隊友! – Tom 2010-11-16 01:54:00