Skip to content

bbo51dog/BboLang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BboLang

文法

b o B Oの4文字のみで表記する。大文字小文字の区別あり。 スペース・改行などは全て無視して何も意味を持たないため、命令ごとに改行して表記するかどうか、パラメータと命令の間に空白を入れるかどうかは自由。

命令一覧

Name OpCode Param Detail
ADD bbbb - スタックの(1番目)+(2番目)
SUB bbbo - スタックの(1番目)-(2番目)
MUL bbob - スタックの(1番目)*(2番目)
DIV bboo - スタックの(1番目)/(2番目)
PUSH bobb 数値リテラル スタックにプッシュ
POP bobo - スタックトップを破棄
ECHO_CHAR oobb - スタックトップを文字として標準出力(数値をASCIIコードで文字に変換)
ECHO_INT oobo - スタックトップを数字として標準出力

リテラル

Bで囲うとリテラルを表す。

数値リテラル

bが1、oが0を表し、2進数で表記。 (例) BboobB => 1001 => 9

実行

Nimbleを利用してインタプリタをビルドします。

$ git clone https://github.com/bbo51dog/BboLang.git
Cloning into 'BboLang'...
~~~
$ cd BboLang
$ nimble build
  Verifying dependencies for [email protected]
   Building bbolang/bbolang using c backend

ビルド後、BboLang/bin/下に実行可能ファイルが作成されます。 nimble insatallでインストールすれば他ディレクトリからでも使えます。

$ nimble install
  Verifying dependencies for [email protected]
 Installing [email protected]
   Building bbolang/bbolang using c backend
   Success: bbolang installed successfully.

BboLang実行

$ bbolang example.bbolang
 output...

Example

HelloWorld

bobbBbooboooB
oobb
bobbBbboobobB
oobb
bobbBbbobbooB
oobb
bobbBbbobbooB
oobb
bobbBbbobbbbB
oobb
bobbBbobbooB
oobb
bobbBboooooB
oobb
bobbBbobobbbB
oobb
bobbBbbobbbbB
oobb
bobbBbbbooboB
oobb
bobbBbbobbooB
oobb
bobbBbboobooB
oobb
bobbBboooobB
oobb
$ bbolang HelloWorld.bbolang
Hello, World!

bobbB~~Bでスタックに文字コードをpushし、oobbで文字を出力。 (ループが実装されていないため1文字毎に出力。いつかラベルなど実装するかもしれません。)

四則演算

bobbBbboB
bobbBbooB
bbob
bobbBbbB
bbbb
oobo
$ bbolang Calculate.bbolang
27

6 * 4 + 3の結果を出力。

Packages

No packages published

Languages