aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-12 15:33:48 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-12 17:29:26 -0400
commit1ee8523e41c6e81943fec9fc8c315c2985576880 (patch)
tree65a87b13d965a7793e5ec49dbc970b6e80119009
parent47e649d13e0e3730b3ea6ef51631b89ab989f278 (diff)
Handle complete number format
-rwxr-xr-xdc.bqn14
1 files changed, 12 insertions, 2 deletions
diff --git a/dc.bqn b/dc.bqn
index 8646e312..53808991 100755
--- a/dc.bqn
+++ b/dc.bqn
@@ -62,7 +62,17 @@ Enc2←{2|⌊∘÷⟜2⍟(↕𝕨)𝕩}
Hex←16 Base⟜⌽ (•d∾"ABCDEF")⊸⊐
-ReadNum←10 Base⟜⌽ bD⊸⊐
+ReadNum←{
+ n‿d‿p‿i←bN # ¯.π∞
+ Nat←10 Base⟜⌽ -⟜(⊑bD)
+ Int←(n=⊑)◶⟨Nat,-·Nat 1⊸↓⟩
+ Dec←⊐⟜(<d)⊸(Nat∘↑ + ·(0<≠)◶⟨0,Nat÷10⋆≠⟩+⟜1⊸↓)
+ Pos←(⊑p‿i⊐⊏)◶⟨π,∞,Dec⟩
+ e←⊑𝕩⊐charSet⊐<'e'
+ m←(n=⊑)◶⟨Pos,-·Pos 1⊸↓⟩e↑𝕩
+ 𝕩×⟜(10⋆·Nat(e+1)↓⊣)˜⍟(e<≠𝕩)m
+}
+LitVal←(⊑"'"""⊐⊏)◶⟨1⊸⊑,1⊸↓,ReadNum⟩
GenF64←{
0:8⥊0;
l←2(⌊⋆⁼)𝕩
@@ -158,7 +168,7 @@ prims←⟨
DGenFn←{
⟨t,r,nVar,nLoc,lits⟩←⟨⟩Tokenize𝕩
⟨bc,u⟩←nVar‿r DParse t
- o←(u-(vi+nVar-≠prims)×u≥vi)⊏prims∾ReadNum¨lits
+ o←(u-(vi+nVar-≠prims)×u≥vi)⊏prims∾LitVal¨lits
⟨bc,o,nVar↑•a,⟨⟩⟩
}
DRun←{