golangに似た文法の言語
# 基本
go run ./cmd/arrtty/main.go <filepath>
# フィボナッチ, n項目の値を終了コードとして返却
# デフォルトでn=10
go run ./cmd/arrtty/main.go ./examples/fib.txt
# exit code == 55
- preprocess
- tokenize : 文字列を分類し切り分ける
- parse : 構文解析を行い読み込むことのできるコードか確認する(ここで生成されたnodeはassembleまで使用される)
- analyze : 意味解析を行い型が一致しているかを確認する
- assemble
- link : 意味解析された複数の意味ノード?を組み合わせ欠損のない意味ノードを作成する
- compile : 欠損のない意味ノードからバーチャルマシン用の命令を作成する
- vm : 命令を実行するスタックマシン
- NOP
- ADD
- SUB
- CMP
- LT
- GT
- LE
- GE
- JMP
- JZ
- JNZ
- JE
- JNE
- JL
- JLE
- JG
- JGE
- CALL
- RET
- PUSH
- POP
- MOV
- MSG
- LEN
- SYSCALL
- WRITE
- STDOUT
- STDERR
- FILE
- READ
- STDIN
- FILE
- WRITE
- EXIT