Giter Site home page Giter Site logo

bbolang's Introduction

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の結果を出力。

bbolang's People

Contributors

bbo51dog avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.