aboutsummaryrefslogtreecommitdiff
path: root/Sil/Compile.dcl
blob: 4857ba906d4da3faa980f8caf0e4d910e2f042f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
definition module Sil.Compile

from StdFile import class <<<
from StdOverloaded import class toString

from Data.Error import :: MaybeError

from ABC.Assembler import :: Assembler, :: Statement, instance <<< Assembler

from Sil.Syntax import :: Program, :: Name, :: Expression
from Sil.Types import :: Type, :: TypeError

:: CompileError
	= UndefinedName Name
	| VariableLabel
	| FunctionOnStack
	| TypeError TypeError Expression
	| CouldNotDeduceType Expression
	| TypeMisMatch Type Expression
	| UnknownError

instance toString CompileError

compile :: Program -> MaybeError CompileError Assembler