diff options
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 |