Skip to content

Commit

Permalink
エラー型を追加 (#323)
Browse files Browse the repository at this point in the history
* in progress

* update test

* change error name

* update docs

* api extraction
  • Loading branch information
FineArchs authored Sep 9, 2023
1 parent 0b84e23 commit 87fe3d0
Show file tree
Hide file tree
Showing 8 changed files with 1,122 additions and 1,065 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
- 指定時間待機する関数`Core:sleep`を追加
- `exists 変数名` の構文で変数が存在するか判定できるように
- オブジェクトを添字で参照できるように(`object['index']`のように)
- 「エラー型(`error`)」を導入
- `Json:parse`がパース失敗時にエラー型の値を返すように

# 0.15.0
- Mathを強化
Expand Down
14 changes: 13 additions & 1 deletion docs/get-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ this is a comment
<tr><td>オブジェクト</td><td><code>obj</code></td><td><code>{ foo: "bar"; a: 42; }</code></td></tr>
<tr><td>null</td><td><code>null</code></td><td><code>null</code></td></tr>
<tr><td>関数</td><td><code>fn</code></td><td><code>@(x) { x }</code></td></tr>
<tr><td>エラー</td><td><code>error</code></td><td><code>(TODO)</code></td></tr>
</table>

## 変数
Expand Down Expand Up @@ -256,4 +257,15 @@ AiScriptファイルにメタデータを埋め込める機能です。
version: 42
keywords: ["foo" "bar" "baz"]
}
```
```

## エラー型
一部の標準関数は実行失敗時にエラー型の値を返します。
これによりエラー処理を行うことができます。
```
@validate(str){
let v=Json:parse(str)
if (Core:type(v)=='error') print(v.name)
else print('successful')
}
```
12 changes: 10 additions & 2 deletions docs/std.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ AiScriptのバージョンです。
JSONを生成します。

### @Json:parse(_json_: str): value
JSONをパースします。
JSONをパースします。 引数がJSONとしてパース可能性でない場合、エラー型の値(`name`=`'not_json'`)を返します。

### @Json:parsable(_str_: str): bool
文字列がJSONとしてパース可能であるかの判定を行います。
文字列がJSONとしてパース可能であるかの判定を行います。歴史的理由により存在しています

## :: Date

Expand Down Expand Up @@ -236,6 +236,14 @@ _codepoint_ は 0 以上、10FFFF<sub>16</sub> 以下である必要がありま
### @Obj:copy(_v_: obj): obj
オブジェクトのコピーを生成します。

## :: Error

### @(_v_: error).name(): str
エラーの識別子となる文字列を返します。

### @(_v_: error).info(): value
エラーに付加情報がある場合、それを返します。

## :: Async

### @Async:interval(_interval_: num, _callback_: fn, _immediate_?: bool): fn
Expand Down
Loading

0 comments on commit 87fe3d0

Please sign in to comment.