aiscript icon indicating copy to clipboard operation
aiscript copied to clipboard

🔋 A lightweight scripting language runing on JavaScript

Results 180 aiscript issues
Sort by recently updated
recently updated
newest added

#473 に従い、ドキュメント内の「プリミティブプロパティ」の名称を「組み込みプロパティ」に置き換えます。 また、「第一級オブジェクト」の名称を削除しています。 ソースコード内の変更は別PRで出します。

# What ASTノードをクラス構文で書き換える。聞いた話ではパフォーマンスも良いらしい? キーワードを使ってるフィールド名があるためフィールド名が一部変更される。 任意のASTノードを生成するNODE関数が削除される。 ノードの型チェックが効くようになる。 # Why # Additional info (optional)

interpreter
parser

例えば`arr.=reverse()`なら破壊的、`arr.reverse()`なら非破壊的というように、元の型と返り値の型が同じな全てのプリミティブプロパティにおいて元の値を変更するかどうかを選べるようにしたいです。 破壊的変更なのでNextに組み込みたいです。

enhancement

- Core:とUtil:の違いがわかりにくい など

interpreter

現状だと、先頭(unshift/shiftでできる)と末尾(push/popでできる)以外の要素を挿入・削除するのに配列を一度sliceで切断してくっつけるような手順が必要になります。 少し不便なので、それ用の関数が欲しいです。

interpreter

ドキュメントファイル(.md)とテストコード(.ts)を、それぞれお互いに同名の対応するファイルがあるようにしたいと考えています。 ``` // 例 doc/ get-started.md, syntax.md, std.md, std-math.md, primitive-props.md parser/ scanner.md test/ get-started.ts, syntax.ts, std.ts, std-math.ts, primitive-props.ts, parser.ts // パーサーのドキュメント・テストはひとまず現状維持とする ``` ### Pros - テストが探しやすくなる。 - 足りていないテストを確認しやすくなる。 ### Cons...

オブジェクトとは異なり、任意の値をキーにできる 構文案 ``` let obj = { a: 42 } let map = &{ 1: 42 "adfadgf": "sdfgsfgsfg" obj: "hoge" }

enhancement
interpreter
parser

非常に長い配列をつくり、それに対してメソッドを呼び出すと **ホストごと** フリーズしてしまう。 具体例 ```is let a = [] a[4000000000] = 0 a.shift() ``` ※ shift メソッド以外でもフリーズが発生する

bug

構文が変更されるので、ドキュメントを変更して変更点を分かりやすくしたい 足りない記述も追加する

documentation