diff options
Diffstat (limited to 'lib/rites/rite_of/precedence_of.mli')
| -rw-r--r-- | lib/rites/rite_of/precedence_of.mli | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/rites/rite_of/precedence_of.mli b/lib/rites/rite_of/precedence_of.mli new file mode 100644 index 0000000..dfee504 --- /dev/null +++ b/lib/rites/rite_of/precedence_of.mli @@ -0,0 +1,40 @@ +(** The Tabula dierum liturgicorum of the 2002 Missale Romanum -- 13 numbered + entries in three parts -- plus Normae n. 60's occurrence and transfer + rules. The OF counterpart of {!Rite_ef.Precedence_ef}, and deliberately + the same shape. + + Every citation names its document ("Normae n. N" or "IGMR n. N"): the + 2002 Missal carries both, independently numbered from 1. *) + +open Colitur_kernel + +(** Returned for a candidate shape the Tabula has no row for. [max_int], so an + unclassified candidate always loses. Task 4's property asserts this is + never reached by anything {!Rite_of.Temporal_of} constructs. *) +val unclassified : int + +(** The universal (General Roman Calendar) layer id. Not a Normae citation: + the Tabula distinguishes universal entries (3, 7, 10) from proper ones + (4, 8, 11), and [Celebration.t.layer] is the only field carrying that + distinction. *) +val universal_layer : string + +(** Prefix marking a candidate as belonging to a PROPER (diocesan, national or + religious) calendar -- Tabula entries 4, 8 and 11. + + NO SHIPPED DATA PRODUCES THIS. Phase 3 transcribes the General Roman + Calendar only (the spec's own universal-calendar-only discipline), so + entries 4, 8 and 11 are unreachable on shipped data and are exercised in + tests by synthetic candidates alone. They are transcribed anyway for two + reasons: the transcription of a 13-entry table should be complete rather + than silently 10 entries long, and a user [--overlay] carrying a local + patron becomes correct without a later edit here. *) +val proper_prefix : string + +(** [band ctx c]: the Tabula's own entry number for [c], TIMES TEN (entry 1 -> + 10, entry 13 -> 130); lower wins. {!unclassified} for a shape with no row. + + The ×10 scaling matches {!Rite_ef.Precedence_ef.band} and exists for the + same reason: a future sub-rank fits between neighbours without rescaling + the table. *) +val band : Vocab_of.season Precedence.context -> Vocab_of.rank Precedence.candidate -> int |
