5. 構文
5.1 字句
Section titled “5.1 字句”- 1 行 = 1 コマンド。
#は行コメントを開始します。 - 行はコマンドキーワード (位置) で始まります。残りの引数はすべて
key=valueでなければなりません。 位置引数は引数順を覚える必要があり、順序の幻覚や省略に脆弱です。mat=/side=のようなキーは LLM の attention アンカーとして働き、生成を安定させます。決定論的な生成を、わずかなトークン削減 より優先します。
window side=front mat_slot=glass offset=2 y=2 size=2x2 sym=true # OKwindow front G 2 2 2x2 # 禁止 (位置引数)5.2 ネスト
Section titled “5.2 ネスト”ネストは浅く保ちます (struct / def / level / room / theme / site)。深いネストは LLM の生成
ミスを増やします。
5.3 ヘッダ (オプション宣言)
Section titled “5.3 ヘッダ (オプション宣言)”メタデータは意味本体ではなくヘッダに置いてかまいません:
@cairn 2026.06 # オプション。書かれた時点の Cairn 言語バージョン (CalVer)@requires version>=1.20 # capability の下限 (オプション)。推定値との衝突 → E_REQUIRES_CONFLICT@intended_targets ["1.20.4","1.21.4"] # 希望/ヒント。検証記録ではない (検証はロックに記録)@cairnは Cairn 言語自身のバージョン です (README のバージョニング節を参照)。@requires/@intended_targets(Minecraft バージョン) とは 別軸 です。オプションで、将来の コンパイラが正しくパース/警告できるようにする provenance として存在します。@requiresについては バージョンとエディション を参照してください。@intended_targetsは「どの Minecraft バージョン向けに設計したか」のヒントであり、検証済みである という主張ではありません。検証済みターゲットはロックにのみ記録されます。
5.4 セレクタ (P4)
Section titled “5.4 セレクタ (P4)”- 壁セレクタ:
front(+z) /back/left/right。offsetは壁に沿って走り、yは床から (= 0) 測ります。 - 内側参照: 接頭辞付き、例えば
inside.front。 - ブロック、ブロックエンティティ、エンティティはすべて同じセレクタ文法を使います。
5.5 ID、クラス、アドレス
Section titled “5.5 ID、クラス、アドレス”- 重要なメンバは
id=を宣言してかまいません。class=はメンバをグループ化します。 - 未指定のメンバには、コンパイラが意味ベースの安定アドレスを自動付与します (編集モデルは コンポーネント・編集・複数建築)。