module Compiler.PsInstruction
( PsInstruction(..)
) where
import Compiler.Instruction (Instruction)
import Data.Text (Text)
data PsInstruction
= Real Instruction
| LabelDef Text
| JumpLabel Text
| JumpIfFalseLabel Text
| JumpIfTrueLabel Text
| CallLabel Text
| TailCallLabel Text
| MakeClosureLabel Text Int
| GetFuncAddrLabel Text
deriving (Int -> PsInstruction -> ShowS
[PsInstruction] -> ShowS
PsInstruction -> String
(Int -> PsInstruction -> ShowS)
-> (PsInstruction -> String)
-> ([PsInstruction] -> ShowS)
-> Show PsInstruction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PsInstruction -> ShowS
showsPrec :: Int -> PsInstruction -> ShowS
$cshow :: PsInstruction -> String
show :: PsInstruction -> String
$cshowList :: [PsInstruction] -> ShowS
showList :: [PsInstruction] -> ShowS
Show, PsInstruction -> PsInstruction -> Bool
(PsInstruction -> PsInstruction -> Bool)
-> (PsInstruction -> PsInstruction -> Bool) -> Eq PsInstruction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PsInstruction -> PsInstruction -> Bool
== :: PsInstruction -> PsInstruction -> Bool
$c/= :: PsInstruction -> PsInstruction -> Bool
/= :: PsInstruction -> PsInstruction -> Bool
Eq)