An interpreter for ROOPLPP in OCaml
-
OCaml
-
ocamlfind
-
ocamlyacc
-
extlib
-
OUnit(テストケースを実行する場合)
-
php(オンラインインタープリタを使用する場合)
-
npm(オンラインインタープリタを使用する場合)
- 本リポジトリをダウンロード
git clone https://github.com/yokoyama-lab/ROOPLPP-interpreter.git
- OCamlやその他の必要なものをインストール
sudo apt update
sudo apt install opam
opam init
opam update
opam switch
opam install extlib ocamlfind
- ディレクトリsrcに移動し,makeする
cd ROOPLPP-interpreter/src
make
- ディレクトリsrc内で以下のコマンドを打つことでROOPL++プログラムが書かれたファイルを実行できる.(以下のコマンドでは,example/fib.rplppが実行される)
./rplpp ../example/fib.rplpp
- 実行時にオプションで-libraryを指定することで標準ライブラリ(library/Library.rplpp)を読みこむことができる.
./rplpp -library ../example/ ...
- 実行時にオプションで-inverseを指定することで逆プログラムを表示させることができる.(以下のコマンドでは,example/fib.rplppの逆プログラムが表示される)
./rplpp -inverse ../example/fib.rplpp
- phpをインストール
sudo apt install php
- ディレクトリwebに移動し,ディレクトリprogramsを作成
cd ../web
mkdir programs
- ディレクトリprogramsのアクセス権を変更
mkdir program
chmod 777 programs
- フロント側で使用するファイルを作成
npm install
npm run build
- ディレクトリweb内で以下のコマンドを打ち,ローカルサーバを起動
php -S localhost:9000
-
ブラウザで "http://localhost:9000" を開くと,ROOPL++のオンラインインタープリタが表示される
-
ページ下のExecuteを押すとプログラムを実行できる
- 単体テストフレームワークのOUnitをインストール
opam install ounit
- ディレクトリtestに移動
cd test
- 以下のようにタイプすると,ファイルeval_test.ml内のテストケースが実行される.
make test_eval