2008-05-01から1ヶ月間の記事一覧

LR parser on Prolog (cont'd - tree)

LR parser on Prolog - 鯨飲馬食コードで書いたLR parserの出力は導出規則の番号の列になっていた。前回も挙げた例だとこんな感じ。 | ?- lr([pron,v,det,n,p,det,n,$],Out). Out = [1,6,2,8,3,3,5] ? ; Out = [1,7,8,3,6,3,5] ? ; noこのリストはスタックと…

LR parser on Prolog (cont'd - compile)

前回LR parser on Prolog - 鯨飲馬食コードで書いたものを、Prologを用いてコンパイル(?)するようなもののメモ。少し前「Prologのファイル入出力は変態だ」という意見を聞いたんだけど、どうなんだろう。先にコードを貼り付けておく。 rule_compile(In_Fi…

LR parser on Prolog

PrologでLR構文解析器を書いたので、自分のためのメモ代わりに。手続き的であまり論理型言語っぽくない書き方だけど。 lr(Ws):- start_state(S), lr([S],Ws,[],_). lr(Ws,Out):- start_state(S), lr([S],Ws,[],Out). lr(Ss,Ws,Os,Out):- Ss=[S|_], Ws=[W|Ws0…