Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next: 改行できる箇所の追加実装 #590

Merged
merged 4 commits into from
Mar 14, 2024

Conversation

marihachi
Copy link
Contributor

@marihachi marihachi commented Mar 10, 2024

What

パーサーに以下の仕様を追加し実装します:

  • 配列リテラルの[の後および]の前には0個以上の改行を配置する
  • オブジェクトリテラルの{の後および}の前には0個以上の改行を配置する
  • 配列リテラルで1つ以上の連続した改行をセパレータとして使用できる
  • オブジェクトリテラルで1つ以上の連続した改行をセパレータとして使用できる

いくつかテストを追加。


パーサー内でトークンの種類を取得する方法を改善します。

  • プロパティで実装するとType Guardが誤作動する。 → メソッドに変更してType Guardを抑制する。

Why

以下の不具合修正
#396 (comment)

Additional info (optional)

変更箇所が多いのでコミットごとにレビューしてもらう方が良いかもです。

@marihachi marihachi marked this pull request as ready for review March 10, 2024 06:54
@marihachi marihachi changed the title Work/improve parser parser: 改行できる箇所の追加実装 Mar 10, 2024
@marihachi marihachi changed the title parser: 改行できる箇所の追加実装 Next: 改行できる箇所の追加実装 Mar 10, 2024
@FineArchs
Copy link
Member

#396

グループ式内の改行は式内でバックスラッシュを使うと改行できる仕様とぶつかるのでやめておきます

この辺りあまりよく分かっていないので、もう少し詳しくお願いします

@marihachi
Copy link
Contributor Author

marihachi commented Mar 10, 2024

1 + 2のような式の途中で改行を許すと式の意味が変わったり、文として解釈されることがあるので、
式の途中で改行したい場合はバックスラッシュ+改行で改行する
という仕様にしてた気がします。

これは1つの文:

let x = 1 + 1

こうすると、文と式文に分かれてしまう

let x = 1
  + 1

@FineArchs
Copy link
Member

それはそうなんですが、括弧の中には1つの式しか入らないのでその多義性は本来起こらないんですよね
まあ別の機会にまた考えようと思います

@FineArchs
Copy link
Member

パーサーの改修をmarihachiさん(と私)以外がレビューしにくい問題
パーサーの修正は必要なレビューの人数減らします?

@marihachi
Copy link
Contributor Author

@syuilo レビュー可能?👀

@marihachi
Copy link
Contributor Author

marihachi commented Mar 11, 2024

パーサーの改修をmarihachiさん(と私)以外がレビューしにくい問題 パーサーの修正は必要なレビューの人数減らします?

@FineArchs
レビューしにくい問題はどこにありますかね
仕様が把握できないとかでしょうか

@FineArchs
Copy link
Member

それもあるとは思いますが、単純にプログラムとしての複雑性が高いというのが一番大きいと思います。
不可抗力なので対策が難しそう…

@salano-ym
Copy link
Member

局所的な変更であればレビューは可能かと思います

@marihachi
Copy link
Contributor Author

マージ条件を満たしたのでマージします

@marihachi marihachi merged commit eafd83c into aiscript-next Mar 14, 2024
4 checks passed
@marihachi marihachi deleted the work/improve-parser branch March 14, 2024 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants