feat: 配列/Mapリテラル糖衣構文の実装とネームスペース解決の改善計画
- ArrayLiteral/MapLiteralのAST定義追加
- パーサーで[...]と{...}構文をサポート
- MIR Builderでnew Box() + push/setへのdesugaring実装
- テストケースとスモークスクリプト追加
- CURRENT_TASK.mdにネームスペース解決Phase-1計画を追記
- 3段階解決順序(ローカル→エイリアス→プラグイン)の設計合意
This commit is contained in:
11
apps/tests/array_literal_basic.nyash
Normal file
11
apps/tests/array_literal_basic.nyash
Normal file
@ -0,0 +1,11 @@
|
||||
static box Main {
|
||||
main(args) {
|
||||
local console = new ConsoleBox()
|
||||
local x = 1
|
||||
// array literal sugar
|
||||
local arr = [x, 2, 3]
|
||||
console.println(arr.size())
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
11
apps/tests/map_literal_basic.nyash
Normal file
11
apps/tests/map_literal_basic.nyash
Normal file
@ -0,0 +1,11 @@
|
||||
static box Main {
|
||||
main(args) {
|
||||
local console = new ConsoleBox()
|
||||
// map literal sugar (string keys)
|
||||
local m = {"name": "Alice", "age": 25}
|
||||
console.println(m.size())
|
||||
console.println(m.get("name"))
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
10
apps/tests/map_literal_ident_key.nyash
Normal file
10
apps/tests/map_literal_ident_key.nyash
Normal file
@ -0,0 +1,10 @@
|
||||
static box Main {
|
||||
main(args) {
|
||||
local console = new ConsoleBox()
|
||||
local m = {name: "A", age: 2,}
|
||||
console.println(m.size())
|
||||
console.println(m.get("name"))
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user