yumemi/gen/stop

止まり方。20「差し戻しは『書けない』ことで、型・生成器・不在の3段で成立する」の exit code 表をそのまま持つ。出力が不整合なら 0 で終わってはならない(柏木 P2-2)。

exit分類誰が直すか
0成功──
1生成器の内部エラー / 未実装 / 値の出所生成器または入力元の担当
2構文が読めない生成器の作者
3宣言の不足書き手(Agent)
4宣言の矛盾書き手(Agent)
5語彙の不足framework 保守者
6不可逆な差分framework 保守者

Types

pub type Class {
  Warning
  NotImplemented
  ValueSource
  Syntax
  Missing
  Conflict
  Vocabulary
  Irreversible
}

Constructors

  • Warning

    0 ── 止めない。生成物はそのまま書く。

  • NotImplemented

    1 ── 生成器がまだ書けない。★ からは導けるのに出せないものもここ。

  • ValueSource

    1 ── Page load に必要な値の出所がこの面に無い。

  • Syntax

    2 ── glance が parse できない。

  • Missing

    3 ── 宣言が足りない(key が無い、collection が無い)。

  • Conflict

    4 ── 宣言が矛盾している(from から到達できない列、order 無しの Paged、名前の衝突)。

  • Vocabulary

    5 ── 語彙が足りない。人へ上げる。

  • Irreversible

    6 ── 情報を捨てる差分。人へ上げる。

pub type Note {
  Note(class: Class, text: String)
}

Constructors

  • Note(class: Class, text: String)

Values

pub fn code(class: Class) -> Int
pub fn label(class: Class) -> String
pub fn line(note: Note) -> String

1行の綴り。_diagnostics.txt と stderr の両方で同じ形を使う。

pub fn report(notes: List(Note)) -> String
pub fn worst(notes: List(Note)) -> Int

止まる理由が複数あるときは、人へ上げる側を先に返す(6 → 5 → 4 → 3 → 2 → 1)。 CI は exit code だけを見て振り分けるので、一番遠くへ運ぶ理由を残す。

✨ Search Document