diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-20 13:54:30 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-20 13:54:30 -0400 |
| commit | 7a7cc09523a03d6ca4158bb8959c44a840dfbe9f (patch) | |
| tree | 7b29f538fbce6de5921da933f946f41658801886 /src | |
| parent | 55c329800dccb344cbecfcc3ec618d0bace46b82 (diff) | |
Check for multiple definitions in the same scope
Diffstat (limited to 'src')
| -rw-r--r-- | src/c.bqn | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -90,7 +90,7 @@ ErrMismatchedBrackets←{ 0 !˜ 𝕨 (Lcs<⌊○≠)◶⟨Msg,"Malformed bracket nesting"⟩ 𝕩 } ErrUndeclared←{ - 0 !˜ "Undeclared identifier"∾(1<≠𝕩)/"s" + 0 !˜ "Undefined identifier"∾(1<≠𝕩)/"s" } Parse ← {nv‿r←𝕨 g←⍋pd←+`p←𝕩(Mׯ1⋆2|-⟜⊑)bB⋄br←p×𝕩M 2≍˜2+⊑bB @@ -132,8 +132,10 @@ Parse ← {nv‿r←𝕨 dr←/s>o+`⊸⊏0∾lo⋄rt←/𝕩=2+⊑bB 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 + ixf←(⊏⟜(¯1∾c/gf)∾d⊸/⊏((≠𝕩)∾b⊏gf)˜)id⊏fi + ig←(⍋⊏⟜(ixx←∾⟜(d⊸/)idx))⊸⊏⍋ixf + "Multiple definitions" ! 1∧´ixx∨○((≠↑0∾⊢)⊸≠((≠id)⊸≤⊸/ig)⊏⊢)ixf + ig↩<⟜(≠id)⊸/(⍋+`∘⊏⟜(d∾-/˜d))⊸⊏ig 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 |
