From 55c329800dccb344cbecfcc3ec618d0bace46b82 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Thu, 20 Aug 2020 10:40:16 -0400 Subject: Check for undeclared identifiers --- src/c.bqn | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/c.bqn b/src/c.bqn index 72a58ac0..f3530fb5 100644 --- a/src/c.bqn +++ b/src/c.bqn @@ -89,6 +89,9 @@ ErrMismatchedBrackets←{ Msg ← >○≠◶⟨"opening"_mis_ 0, "closing"_mis_ 1˜⟩ 0 !˜ 𝕨 (Lcs<⌊○≠)◶⟨Msg,"Malformed bracket nesting"⟩ 𝕩 } +ErrUndeclared←{ + 0 !˜ "Undeclared identifier"∾(1<≠𝕩)/"s" +} Parse ← {nv‿r←𝕨 g←⍋pd←+`p←𝕩(Mׯ1⋆2|-⟜⊑)bB⋄br←p×𝕩M 2≍˜2+⊑bB p(=⟜1⊸/ErrMismatchedBrackets⍟≢1-˜=⟜¯1⊸/)○(g⊸⊏)𝕩 @@ -131,7 +134,8 @@ Parse ← {nv‿r←𝕨 d←id⊏dec←idm∧ad∧asn⋄lc←FC dec ig←⍋(⊏⟜(¯1∾c/gf)∾d⊸/⊏((≠𝕩)∾b⊏gf)˜)id⊏fi ig↩<⟜(≠id)⊸/(⍋+`∘⊏⟜(d∾-/˜d))⊸⊏(⍋⊏⟜(∾⟜(d⊸/)idx))⊸⊏ig - ui←d(⌈`↕∘≠⊸×)⊸⊏⌾(ig⊸⊏)id + d⊏˜↩ig⋄ErrUndeclared∘/˜⍟(0∨´⊢)⟜(d<(≠↑0∾⊢)⊸≠)ig⊏idx + ui←(⌈`↕∘≠⊸×d)⊸⊏⌾(ig⊸⊏)id ii←(ui⊏(fi⊏fsc)-(⌈`c⊸×)⊸¬+`dec)∾((sp⊏fi)⊏3×2|ft)++⟜(0⊸≤)2+sp⊏xv idor←∾3⥊