diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-09-11 23:07:47 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-09-11 23:07:47 -0400 |
| commit | d413a59b090b823bcbffc6f4cdde29291d372f41 (patch) | |
| tree | 52e8e307d39814a4197e54e333acfa0bf50c3826 | |
| parent | f4500953ef8fa54451302dddbf1d7d85e9deae7c (diff) | |
Separate number/null and string literal processing
| -rw-r--r-- | src/c.bqn | 9 | ||||
| -rw-r--r-- | wc.bqn | 2 |
2 files changed, 6 insertions, 5 deletions
@@ -58,7 +58,7 @@ Tokenize←{ c/˜↩¬(≠↑1∾(c∊2‿4+⊑bB)∨⊢)⊸∧c M bS⋄c/˜↩¬(1↓1∾˜c∊3‿5+⊑bB)∧c M bS ic←(vi⊸≤∧<⟜ie)c⋄t←ti⌾(ic⊸/)(vi⌊c)⊏charRole c+↩5×c M 5≍˜⊑bI - ⟨c,t,+´¬in,((in/iu)⊏id)∾lu⟩ + ⟨c,t,+´¬in,(in/iu)⊏id,lu⟩ } ReadNum←{ @@ -71,7 +71,8 @@ ReadNum←{ m←(n=⊑)◶⟨Pos,-·Pos 1⊸↓⟩e↑𝕩 𝕩×⟜(10⋆·Int(e+1)↓⊣)˜⍟(e<≠𝕩)m } -LitVal←(⊑⟨⊑bU,''','"'⟩⊐⊏)◶⟨@,1⊸⊑,1⊸↓,ReadNum⟩ +LitVal←((⊑bU)=⊑)◶⟨ReadNum,@⟩ +StrVal←('"'=⊑)◶⟨1⊸⊑,1⊸↓⟩ LEBv ← { @@ -150,8 +151,8 @@ Parse ← {nv‿r←𝕨 } Compile←{ - ⟨t,r,nVar,lits⟩←Tokenize𝕩 + ⟨t,r,nVar,lits,strs⟩←Tokenize𝕩 ⟨bc,u,blk⟩←nVar‿r Parse t - o←(u-(vi+nVar-≠𝕨)×u≥vi)⊏𝕨∾LitVal¨lits + o←(u-(vi+nVar-≠𝕨)×u≥vi)⊏∾⟨𝕨,LitVal¨lits,StrVal¨strs⟩ ⟨bc,o,blk⟩ } @@ -47,7 +47,7 @@ fntab←⍉(0¨tab1)∾tab1≍tab2 f64←127-3 GenFn←{ - ⟨t,r,nVar,lits⟩←Tokenize𝕩 + ⟨t,r,nVar,lits,strs⟩←Tokenize𝕩 nLoc←nVar-𝕨⊢0 t⊏˜↩⍋+`-˝(2‿3+⊑bB)=⌜t nd←+´c←t=3+⊑bB |
