yumemi/gen/reader/clauses
Service の allow 句(who / at / owner)を読む。読みへ allow 句を入れる判断
(emit/sql)だけが使う。Actor と gen/allow の生成(hw-2)とは別の口に置く。
句の形は allow.Clause(who: .., at: .., owner: ..) と、who だけの略記
(allow.Anyone = at: AnyPhase, owner: NoOwner)。略記と読むのは、大文字で始まる
構成子(Anyone / allow.AsMuse)と、allow の import の別名への参照
(allow.staff、gen/allow/* の句)だけ。定数の参照(published_only、
other.clauses)・関数呼び出し・spread・List でない allow: は、中身を読まずに
「絞らない句」と取り違えると allow 句が SQL から黙って消えるので、捨てずに
UnreadClause で持つ ── 入れる時に exit 4 で名指しするため。
Values
pub fn read(
units: List(source.Unit),
) -> List(#(String, List(model.Clause)))
Service の module 名 -> allow 句。service const が無い、または allow が
List でない Service は載せない(その検査は reader の subjects_of が持つ)。