これはなに

言語名はPrimo、ChatGPTに決めてもらいました
動的型付けインタプリタ言語で、Rustで実装してます
https://github.com/Netetra/primo-lang.git
programs/以下にコード例があります

使用したcrate

  • rust-peg
    • 構文のパースからAST生成までをしてます
  • rstest
    • テスト書くとき使いました

文法

bool型、整数型、文字列型があります
true false 10 "Hello"

条件式

==!=しか実装していません
Python同様andornotが使えます

変数定義

let x = 10;

代入

x = 20;

print文

print "Hello World!", "\n";

,区切りで複数の値を出力できます

if文

if hoge {}
elif huga {}
else {}

loop文

Rustから輸入してきました

loop {
  next;
  break;
}

関数定義

fn add(a, b) {
  return a + b;
}

Hello World!

fn main() {
	print "Hello World!";
}

FizzBuzz

fn main() {
    let i = 1;
    let max = 100;

    loop {
        if i == max {
            break;
        }

        if i % 3 == 0 and i % 5 == 0 {
            print "FizzBuzz\n";
        }
        elif i % 3 == 0 {
            print "Fizz\n";
        }
        elif i % 5 == 0 {
            print "Buzz\n";
        }
        else {
            print i, "\n";
        }

        i = i + 1;
    }
}