インタプリタを作ってみた
こんにちは。 今回は、インタプリタを作ってみたので紹介したいともいます。
名前は CON です。まだ、開発を始めたばかりなので出来ることが少ないですが、for や if を使うことはできます。
構文
//Hello world! println "Hello world!" print "Hello world!\n";//セミコロンはなくてもよし //変数 英文字で始まり A-Z a-z 0-9 _ を使っていれば変数です //今のところ、数字しかサポートしていません 0var //NG var1 //OK arr[0] //OK arr2[0, 0] //OK 多次元配列の場合は、コンマでくぎる。 //代入 i = 12 n = i + 2 * (i / 2) // 変数の宣言は必要なし。 //if文 elseも使えます. ifの最後には end を使ってださい. i = 12 if i == 12 println "True" else println "False" end //for文 forと言っていますが、ほとんど while ですw i = 0 for i < 10 println i i = i + 1 //明示的に加算する必要あり endfor // for の最後は endfor で閉じる // 標準関数たち print "Strings" //改行なしで画面に出力 println "Strings" //改行あり 出力 input i //画面から入力し i に代入 now = clock // clock - CPU時間の取得 random = rand // rand - 乱数の取得 xorshift //演算子 + - * / % == != >= <= > < //ぐらいかな?
説明が雑ですいません。 とりあえず FizzBuzz してみます。
s = clock i = 0 for i < 30 if i % 15 == 0 println "FizzBuzz" else if i % 5 == 0 println "Buzz" else if i % 3 == 0 println "Fizz" else println i end i = i + 1 endfor e = clock print "FizzBuzz にかかった時間"; println (e - s) / clock_sec; //こんな感じ
ソースは GitHub で公開中 (スパゲッティww
http://www.github.com/maekawatoshiki/project-con-interpreter-/