LMNtal interpreter
./compile.sh
./lmint < {LMNtal program}
a :- . に対応
- ファイル最後の. 忘れでセグフォ
- 「未決定アトムがない」をfor文ではなく簡単なカウントでできそう
RuleLinkに型制約やGuard制約を設ける
- トレース実行
- ランダム実行
- グラフ no dump
- パース情報dump
- バックトラック回数dump
- ルール実行時間dump
int, float, string のデータをどこに管理するかというと、int と string は最悪functorのどっちかをいじればいいが、floatのことを考えるとむずかしい?
そこで、Atomクラスに静的な vector, vector, vector を用意して、そのindex だけもつ <"string", 142> のように あまりに不要な要素の割合が高くなったら、どうする?
そもそも、atomlistがstd::listなのはfindatomでforで回すからであって、 それをしないint, float, stringのデータは配列管理でもいいのではないか
失敗したアトムを末尾に入れる