Skip to content

lmntal/lmint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lmint

LMNtal interpreter

使い方

コンパイル

./compile.sh

実行

./lmint < {LMNtal program}

TODO

空のBody

a :- . に対応

Parseのエラー処理

  • ファイル最後の. 忘れでセグフォ

最適化

  • 「未決定アトムがない」をfor文ではなく簡単なカウントでできそう

Guard

RuleLinkに型制約やGuard制約を設ける

Docker化

オプション

  • トレース実行
  • ランダム実行
  • グラフ 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のデータは配列管理でもいいのではないか

atomlistの追加方法改良

失敗したアトムを末尾に入れる

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published