module Builtins where import Code hiding (defs) import Control.Monad.Trans.State.Lazy import qualified Data.Map as M import Env import qualified Operators as O addBuiltins :: PrlgEnv () addBuiltins = do a1 <- findStruct "a" 1 a <- findAtom "a" b <- findAtom "b" c <- findAtom "c" b0 <- findStruct "b" 0 any <- findStruct "any" 1 eq <- findStruct "=" 2 modify $ \s -> s { defs = M.fromList [ (eq, [[U (LocalRef 0), U (LocalRef 0), NoGoal]]) , (a1, [[U (Atom a), NoGoal], [U (Atom b), NoGoal]]) , ( b0 , [ [Goal, U (Struct a1), U (Atom c), LastCall] , [Goal, U (Struct a1), U (Atom b), LastCall] ]) , (any, [[U VoidRef, NoGoal]]) ] , ops = [(O.xfy "," 1000), (O.xfx "=" 700)] }