diff --git a/semantics.rkt b/semantics.rkt index 28e086e..db972d5 100644 --- a/semantics.rkt +++ b/semantics.rkt @@ -58,6 +58,9 @@ (: lookup-node (-> Heap Addr Node)) (define lookup-node hash-ref) +(: lookup-globals (-> Globals Name Addr)) +(define lookup-globals hash-ref) + (: initialize-heap (-> (Listof CoreScDefn) (Values Heap Globals))) (define (initialize-heap scs) (for/fold ([heap : Heap empty-heap] @@ -70,7 +73,7 @@ (: compile-core (-> (Listof CoreScDefn) State)) (define (compile-core scdefs) (let-values ([(heap globals) (initialize-heap (append scdefs prelude))]) - (State empty-stack empty-dump heap globals empty-stats))) + (State (list (lookup-globals globals 'main)) empty-dump heap globals empty-stats))) (: data-node? (-> Node Boolean)) @@ -100,5 +103,4 @@ (: step-sc (-> State Name (Listof Name) CoreExpr State)) (define (step-sc state sc args body) - (error "to be implemented"))