1.6 KiB
1.6 KiB
構文と字句
この章では、表層構文の方針をまとめる。 厳密な EBNF は未確定であり、今後このファイルに詳細化する。
コメント
コメントは # から行末までとする。
# comment
host = "127.0.0.1"; # trailing comment
セミコロン
オブジェクトフィールド、let 束縛、match 分岐はセミコロンで区切る。 末尾セミコロンは許可する。
{
host = "127.0.0.1";
port = 8000;
}
識別子
識別子の厳密な字句規則は未確定である。
慣習としては lower_snake、lowerCamel、UpperCamel を使える想定とする。
my_config
mkConfig
IPv4Address
パス参照
ドットによるフィールド参照を許可する。
config.host
config.feature_hoge.enable
オブジェクト内では、ドットパスによるフィールド定義も許可する。
{
feature_hoge.enable = false;
}
これは以下と同じ構造を表す。
{
feature_hoge = {
enable = false;
};
}
予約語候補
以下は予約語または予約構文として扱う候補である。
let
in
match
import
default
true
false
rec
rec の扱いは未確定である。
演算子
主要な演算子は以下である。
& 制約合成
// patch 合成
default fallback 指定
=> 関数
. フィールド参照 / ドットパス定義
演算子の優先順位は未確定である。 詳細は 合成演算子 で定義する。