aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-09-11 23:07:47 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-09-11 23:07:47 -0400
commitd413a59b090b823bcbffc6f4cdde29291d372f41 (patch)
tree52e8e307d39814a4197e54e333acfa0bf50c3826 /src
parentf4500953ef8fa54451302dddbf1d7d85e9deae7c (diff)
Separate number/null and string literal processing
Diffstat (limited to 'src')
-rw-r--r--src/c.bqn9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/c.bqn b/src/c.bqn
index 12789450..9f262c2b 100644
--- a/src/c.bqn
+++ b/src/c.bqn
@@ -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⟩
}