Skip to content

HMasataka/monkey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monkey プログラミング言語

Go で実装された Monkey プログラミング言語のインタプリタです。

はじめに

ビルド

go build -o monkey

実行

./monkey

これにより、Monkey のコードを入力して、すぐに結果を確認できるインタラクティブな REPL が起動します。

ビルドせずに直接実行することもできます:

go run main.go

言語機能

Monkey は以下の機能をサポートしています:

  • 整数とブール値: 基本的なスカラー型
  • 文字列: 文字列リテラルと操作
  • 配列: 配列リテラルとインデックスアクセス
  • ハッシュマップ: キー・バリューデータ構造
  • 演算子: 算術、比較、論理演算子
  • 関数: ファーストクラスの関数とクロージャ
  • 条件分岐: if/else
  • return 文: 関数からの早期リターン
  • 変数束縛: let による変数代入
  • 組み込み関数: len()puts()first()last()rest()push()

使用例

let x = 5;
let y = 10;
x + y

let add = fn(a, b) { a + b };
add(5, 3)

let arr = [1, 2, 3, 4, 5];
arr[0]
len(arr)

let person = {"name": "Alice", "age": 30};
person["name"]

テスト

# すべてのテストを実行
go test ./...

# 詳細出力でテストを実行
go test -v ./...

# 特定パッケージのテストを実行
go test -v ./evaluator
go test -v ./parser
go test -v ./lexer

アーキテクチャ

インタプリタは以下の 3 段階のパイプラインに従っています:

  1. Lexer: ソースコードをトークン化
  2. Parser: 抽象構文木(AST)を構築
  3. Evaluator: AST を実行するツリーウォーキングインタプリタ

詳細なアーキテクチャドキュメントは CLAUDE.md を参照してください。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages