diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-17 17:44:10 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-17 17:44:10 -0400 |
| commit | 70eb691d6e2aa099536f267a1e87de12b94b31cf (patch) | |
| tree | 11826ee652fac4f6025d9641b4d132de90ecbb03 /src | |
| parent | 11e1818ce71794546004413b5427c4ad42c605cb (diff) | |
Check for unknown characters (including unclosed quotes)
Diffstat (limited to 'src')
| -rw-r--r-- | src/c.bqn | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -21,7 +21,14 @@ charGroups←⟨ " "∾tab # Whitespace # #'" eliminated during tokenization ⟩ -CharCode←(∾charGroups){g←⍋𝕗⋄g⊏˜1-˜(g⊏𝕗)⍋⊢} +ErrUnknownChars←{ + "Unclosed quote"!¬∨´⟨''','"'⟩∊𝕩 + ⟨"Unknown character","s"/˜1<≠𝕩,": ",𝕩⟩∾⊸!0 +} +CharCode←(∾charGroups){ + Chk ← ⊢⊣ErrUnknownChars∘(≠/⊣)⍟≢⟜(⊏⟜𝕗) + g←⍋𝕗 ⋄ ⊢ Chk g⊏˜1-˜1⌈(g⊏𝕗)⍋⊢ +} bF‿bM‿bC‿bS‿bG‿bB‿bL‿bO‿bI‿bD‿bN‿bA‿bW←≍¨˜⟜(+`≠↑0∾⊢)≠¨charGroups bA_e←4+⊑bA M←1⊸⊑(0⊸≤∧>)-⟜⊑ @@ -40,7 +47,7 @@ Tokenize←{ lu←⍷lit←𝕩⊔˜1-˜(+`ToI⊑˘cb)×≠`ToI cb cl←f/ToI⊑∘⌽˘cb - c←CharCode f/𝕩 + c←CharCode⌾((¬cl)⊸/) f/𝕩 w←(≠↑0∾⊢)⊸<l←c M (⊑bD)≍+´1⊑¨bD‿bN‿bA i←(1-˜l×+`w)⊔c na←≠alph⋄us←¯1++´bA |
