Skip to content

match式の仕様を見直したい #381

@marihachi

Description

@marihachi

Related to #359

主に中置演算子(infix)の構文とぶつかる問題があるため。

以下のようなコードがあるとき

match x {
  1 => "a"
  2 => "b"
  * => "c"
}

"b" *以降の部分が中置演算子として解釈されて、構文エラーになる

これまでは中置演算の途中で改行をはさめないように(エスケープすれば可能)することで、
ぶつかるのをなんとか回避していたが、いっそ仕様を変えてしまいたい。

余談:
新しいパーサーではスペーシングの1つである改行を特別扱いしたくないという気持ちがある
パーサーの複雑化を招く原因になると思う

区切り文字を置けば中置演算子と干渉しなくなる。

コンマ区切り?

match x {
  1 => "a",
  2 => "b",
  * => "c",
}

セミコロン区切り?

match x {
  1 => "a";
  2 => "b";
  * => "c";
}

行頭にキーワードを置いても良さそう
この場合は区切り不要にできる

match x {
  case 1 => "a"
  case 2 => "b"
  default => "c"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions