72 lines
1.6 KiB
Markdown
72 lines
1.6 KiB
Markdown
|
|
# Nyash文法改革仕様書
|
|||
|
|
|
|||
|
|
このフォルダには、Phase 12.7で決定されたNyash文法改革の仕様書が含まれています。
|
|||
|
|
|
|||
|
|
## 📄 ドキュメント一覧
|
|||
|
|
|
|||
|
|
### 📝 最終決定事項
|
|||
|
|
- **[grammar-reform-final-decision.txt](grammar-reform-final-decision.txt)** - 文法改革の最終決定
|
|||
|
|
- 予約語15個への削減
|
|||
|
|
- peek構文の導入
|
|||
|
|
- birth統一コンストラクタ
|
|||
|
|
- フィールド宣言の明示化
|
|||
|
|
|
|||
|
|
### 📐 技術仕様
|
|||
|
|
- **[grammar-technical-spec.txt](grammar-technical-spec.txt)** - 詳細な技術仕様書
|
|||
|
|
- 構文のBNF定義
|
|||
|
|
- パーサー実装ガイド
|
|||
|
|
- 後方互換性の考慮事項
|
|||
|
|
|
|||
|
|
## 🎯 文法改革の要点
|
|||
|
|
|
|||
|
|
### 15個の予約語
|
|||
|
|
```
|
|||
|
|
box, new, me, public, if, else, loop, break, continue,
|
|||
|
|
peek, return, import, from, birth, fn
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 主要な変更点
|
|||
|
|
|
|||
|
|
#### 1. peek構文(switch/case代替)
|
|||
|
|
```nyash
|
|||
|
|
peek value {
|
|||
|
|
"hello" => print("Hi!")
|
|||
|
|
42 => print("The answer")
|
|||
|
|
else => print("Other")
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 2. birth統一(コンストラクタ)
|
|||
|
|
```nyash
|
|||
|
|
box Life {
|
|||
|
|
init { name, energy }
|
|||
|
|
|
|||
|
|
birth(lifeName) { // すべてのBoxでbirth使用
|
|||
|
|
me.name = lifeName
|
|||
|
|
me.energy = 100
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 3. fn{}でFunctionBox作成
|
|||
|
|
```nyash
|
|||
|
|
local add = fn{a, b => a + b}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 4. フィールド宣言の明示化
|
|||
|
|
```nyash
|
|||
|
|
box Person {
|
|||
|
|
init { name, age } // フィールドを明示的に宣言
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔄 実装状況
|
|||
|
|
|
|||
|
|
- ✅ 仕様決定完了
|
|||
|
|
- ✅ ChatGPT5による基本実装
|
|||
|
|
- 🔄 テスト作成中
|
|||
|
|
- 📅 完全移行(Phase 12.7-B)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
詳細な実装については、implementation/フォルダを参照してください。
|