Add printc and exit builtin functions
This commit is contained in:
@ -36,6 +36,8 @@ allocate MachineConfiguration{..} = fmap function
|
||||
SubtractionQuadruple (operand operand1) (operand operand2) (Store temporaryRegister)
|
||||
quadruple (NegationQuadruple operand1 _) =
|
||||
NegationQuadruple (operand operand1) (Store temporaryRegister)
|
||||
quadruple (ProductQuadruple operand1 operand2 _) =
|
||||
ProductQuadruple (operand operand1) (operand operand2) (Store temporaryRegister)
|
||||
operand :: Operand Variable -> Operand (Store r)
|
||||
operand (IntOperand x) = IntOperand x
|
||||
operand (VariableOperand _) = VariableOperand (Store temporaryRegister)
|
||||
|
@ -30,11 +30,11 @@ data Quadruple v
|
||||
| AddQuadruple (Operand v) (Operand v) v
|
||||
| SubtractionQuadruple (Operand v) (Operand v) v
|
||||
| NegationQuadruple (Operand v) v
|
||||
| ProductQuadruple (Operand v) (Operand v) v
|
||||
{-| GoToQuadruple Label
|
||||
| AssignQuadruple Operand Variable
|
||||
| ArrayQuadruple Variable Operand Variable
|
||||
| ArrayAssignQuadruple Operand Operand Variable
|
||||
| ProductQuadruple Operand Operand Variable
|
||||
| DivisionQuadruple Operand Operand Variable
|
||||
| EqualQuadruple Operand Operand Label
|
||||
| NonEqualQuadruple Operand Operand Label
|
||||
|
Reference in New Issue
Block a user