1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
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
import Debug.Trace
hello :: BuiltinFunc
hello = BuiltinFunc $ trace "hllo prlg"
addBuiltins :: PrlgEnv ()
addBuiltins = do
a1 <- findStruct "a" 1
a <- findAtom "a"
b <- findAtom "b"
c <- findAtom "c"
b0 <- findStruct "b" 0
any1 <- findStruct "any" 1
eq2 <- findStruct "=" 2
hello0 <- findStruct "hello" 0
modify $ \s ->
s
{ defs =
M.fromList
[ (eq2, [[U (LocalRef 0 Nothing), U (LocalRef 0 Nothing), 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]
])
, (any1, [[U (VoidRef Nothing), NoGoal]])
, (hello0, [[Builtin hello]])
]
, ops = [(O.xfy "," 1000), (O.xfx "=" 700)]
}
|