aiscript
aiscript copied to clipboard
🔋 A lightweight scripting language runing on JavaScript
以下の部分では普通の `Error` が使われているため、Playgroundでエラーが表示されない https://github.com/aiscript-dev/aiscript/blob/2f103d2d639704b7012763503272ec9d2144f54b/src/parser/plugins/validate-type.ts#L11 ## 例 ``` @(): T {}
#892 でパーサーが名前空間内の属性付き宣言をパースできるようになりましたが、インタープリターの `collectNsMember` では属性が無視されています。 `__eval` 内の宣言についての部分を見ると、右辺の式を評価した後に、宣言に付いている属性を評価して、右辺の値の `attr` パラメータを属性の値に書き換えていることがわかります。 https://github.com/aiscript-dev/aiscript/blob/2f103d2d639704b7012763503272ec9d2144f54b/src/interpreter/index.ts#L651-L662 一方で、 `collectNsMember` の対応する部分を見ると、式を評価した後、そのままスコープに追加していることがわかります。 https://github.com/aiscript-dev/aiscript/blob/2f103d2d639704b7012763503272ec9d2144f54b/src/interpreter/index.ts#L251-L271
`parseExpr` の `isStatic` が `true` のとき、if式などは許容されませんが、ラベルがついていると許容されます。 https://github.com/aiscript-dev/aiscript/blob/2f103d2d639704b7012763503272ec9d2144f54b/src/parser/syntaxes/expressions.ts#L290-L292 ## 例 ``` ### meta_name #label: if true {
Bumps [esbuild](https://github.com/evanw/esbuild) to 0.25.8 and updates ancestor dependencies [esbuild](https://github.com/evanw/esbuild), [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) and [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue). These dependencies need to be updated together. Updates `esbuild` from 0.21.5 to 0.25.8 Release notes Sourced from esbuild's...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.10 to 5.4.21. Release notes Sourced from vite's releases. v5.4.21 Please refer to CHANGELOG.md for details. v5.4.20 Please refer to CHANGELOG.md for details. v5.4.19 Please refer to...
以下のような、配列のスライス記法を提案します。 ``` let a = [0, 1, 2, 3]
# What - 数値リテラルの整数部分または小数部分の0を省略できるようになります。 - 整数でない数値リテラルは、整数部分が0の場合、0を省略して記述できるようになります。 例: `.5` - 整数の数値リテラルは、小数部分の0を省略して記述できるようになります。 例: `5.` # Why #950 # Additional info (optional)
`src/interpreter/index.ts`の`Interpreter`クラスが巨大すぎて開発がしづらい。 `Interpreter`にノードの処理内容を全部持たせるのではなく、ノードの種類ごとに処理内容をファイルに分割したほうがいいかもしれない。