summary refs log tree commit diff stats
path: root/src/cratera/compiler.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/cratera/compiler.lua')
-rw-r--r--src/cratera/compiler.lua24
1 files changed, 2 insertions, 22 deletions
diff --git a/src/cratera/compiler.lua b/src/cratera/compiler.lua
index 5e9b0b5..ab4e2bf 100644
--- a/src/cratera/compiler.lua
+++ b/src/cratera/compiler.lua
@@ -73,30 +73,10 @@ finish[parser.EOZ] = function(state, token)
     local tk = table.remove(results)
     if tk == TK.FLT then
         local token = table.remove(results)
-        local extra, num, den = 1, token, 1
-        assert(token == token and token >= 0, "NYI") -- the tokenizer should never output NaNs or negative values
-        if token == math.huge then -- the tokenizer *can* output math.huge tho
-            num, den = 1, 0
-        else
-            while num ~= math.floor(num) do
-                num = num * 2 -- always safe (I think)
-                local oldden = den
-                den = den * 2
-                if den == math.huge then -- subnormals or something?
-                    extra = oldden
-                    den = 2
-                end
-            end
-        end
-        table.insert(state, string.format('((%d/%d)/%d)', num, den, extra))
+        table.insert(state, token)
     elseif tk == TK.INT then
         local v = table.remove(results)
-        if v == math.mininteger then
-            -- corner case ( https://github.com/lua/lua/commit/707b0ba6e2dbfd58cf1167dae0e17975904b18aa )
-            table.insert(state, string.format('0x%x', v))
-        else
-            table.insert(state, string.format('(%d)', v)) -- may be negative (overflow)
-        end
+        table.insert(state, v)
     elseif tk == TK.STRING then
         -- lua tends to use a backslash and a newline but we already do newline processing,
         -- so we need to replace the escaped newline ("\\\n") with a newline escape ("\\n").