From c6bdf07d6e2ca4d1c641bc67e3eb9cbb3c5f9458 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 24 May 2021 21:57:11 -0400 Subject: Cleaner undefined identifier test --- src/c.bqn | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/c.bqn b/src/c.bqn index a299da3f..d2d050e7 100644 --- a/src/c.bqn +++ b/src/c.bqn @@ -204,12 +204,12 @@ Parse ← {r‿vn‿i‿e←𝕨⋄nv←≠vn idn←(idg←df∾≠fsc)⊔dv←d/idv←id⊏xv # Identifier name ID, per-block # Order every referenced identifier, and an undeclaration for each declaration ixf←((1=ic)+idf⊏¯1∾b/gf)∾df⊏(≠𝕩)∾c⊏gf # First order by block index, open for real and closed for virtual - ig←(⍋⊏⟜(ixx←idv∾dv))⊸⊏⍋ixf # Then order by name - {"Redefinition"_err_(𝕩⊏·∾⟜(d⊸/)ID) ¬ixx∨○(»⊸≠𝕩⊸⊏)ixf} (≠d)⊸≤⊸/ig - ig↩<⟜(≠d)⊸/(⍋+`∘⊏⟜(d∾¯1¨dv))⊸⊏ig # Last order by declaration depth + ig←(⍋⊏⟜(ixx←idv∾dv))⊸⊏⍋ixf⋄igf←ig<≠d # Then order by name + {"Redefinition"_err_(𝕩⊏·∾⟜(d⊸/)ID) ¬ixx∨○(»⊸≠𝕩⊸⊏)ixf} igf¬⊸/ig + ig↩(do←⊏⟜igf⊸/⍋ds←+`ig⊏d∾¯1¨dv)⊏ig # Last order by declaration depth d⊏˜↩ig⋄id⊏˜↩ig⋄ic⊏˜↩ig + ("Undefined identifier"Pl/)_err_(ID) 0=do⊏ds ix←(ic<3)∧ia←0