diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-09-28 21:27:41 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-09-28 21:27:41 -0400 |
| commit | 33276d7898340edef7fa456747f0f8e7b0af4b33 (patch) | |
| tree | ef96f7d3e24fbed97e15599caf482ed5e6b303aa /src | |
| parent | 1e290deb5f670f8a65ee20fe8e095fe5786d1237 (diff) | |
Promote all headerless bodies in a block to the same kind
Diffstat (limited to 'src')
| -rw-r--r-- | src/c.bqn | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -196,10 +196,10 @@ Parse ← {r‿vn‿i‿e‿def←𝕨⋄nv←≠vn hj←gi⊏˜he/hi⋄hd←2=he/hk # Block properties - uru←(rev⊏r=3)∧𝕩=3+⊑bI # _𝕣_ - HS←H(uru+(0‿3‿5‿6+⊑bI)⍋𝕩)⊸=⋄sp←/hf<𝕩 M bI # Has-special (𝕤𝕩𝕨/𝕣𝕗/𝕘); indices of specials + ss←((rev⊏r=3)∧𝕩=3+⊑bI)+(0‿3‿5‿6+⊑bI)⍋𝕩 # Special name (treat _𝕣_ as 4) + HS←(¯1+`cf)⊏b¬∘PN=⟜ss⋄sp←/hf<𝕩 M bI # Has-special (𝕤𝕩𝕨/𝕣𝕗/𝕘); indices of specials fx←HS 1⋄fr←(fx∨0⊸<)⊸+ft←2(⊣⌈2×⊢)○HS 3 # Body immediacy ¬fx, type ft, role fr - "Invalid special names for block header"_err_(ch/0∾/∘CB) (hr<ch/fr)∨(hm/hl)<hx<ch/fx + "Block header conflicts with special names"_err_(ch/0∾/∘CB) (hr<ch/fr)∨(hm/hl)<hx<ch/fx ft⌈↩1-˜fr↩hr⌾(ch⊸/)fr⋄fx↩hx⊸⌈⌾(ch⊸/)fx "Special name outside of any block"_err_(/{(0=fi)∧𝕩 M bI}∘𝕩) 0<⊑fr "Only blocks with explicit arguments can have multiple bodies"_err_(/CB) 1↓(»⊸∨cq>ch)<cm>fx |
