diff options
author | tomsmeding <tom.smeding@gmail.com> | 2017-12-13 22:18:43 +0100 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2017-12-13 22:18:43 +0100 |
commit | 3fca4bf68ff8df1639416f0630452272c647cd00 (patch) | |
tree | 6f85fbacbe99611affa5ff6025da1530e40a160a /compiler.hs | |
parent | 897fb17dd6a045a7056e6d6babbbb24748f698f6 (diff) |
Datas
Diffstat (limited to 'compiler.hs')
-rw-r--r-- | compiler.hs | 9 |
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 |