summaryrefslogtreecommitdiff
path: root/compiler.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler.hs')
-rw-r--r--compiler.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler.hs b/compiler.hs
index d63f7bf..64b887c 100644
--- a/compiler.hs
+++ b/compiler.hs
@@ -4,10 +4,8 @@ module Compiler(IRProgram, compileProgram) where
import Control.Monad.Except
import Control.Monad.State.Strict
import Data.List
-import Data.Maybe
import qualified Data.Map.Strict as Map
import qualified Data.Set as Set
-import Debug.Trace
import AST
import Intermediate
@@ -220,11 +218,16 @@ genTValue (TVString s) nextnext = do
addIns (r, IData i)
setTerm $ IJmp nextnext
return r
+genTValue (TVQuoted v) nextnext = do
+ i <- dataTableAdd v
+ r <- genTemp
+ addIns (r, IData i)
+ setTerm $ IJmp nextnext
+ return r
genTValue (TVDefine name value) nextnext = do
dref <- genTemp
defineAdd name dref
vref <- genTValue value nextnext
- -- traceShowM ("tvdefine_refs", dref, vref, name, value)
addIns (dref, IAssign vref)
return RNone
genTValue (TVLambda args body closure) nextnext = do