Prim

Plain source file: Prim.hs (Feb 13, 2001)

Prim is imported by: Gcode, GcodeLow, GcodeLowC, GcodeMem, GcodeOpt1, PosCode.

module Prim where

import Machine

data PrimOp = OpWord | OpFloat | OpDouble deriving (Eq)
 
data Prim =
      ADD	PrimOp
    | SUB	PrimOp
    | MUL	PrimOp
    | ABS	PrimOp
    | SIGNUM    PrimOp
    | EXP	PrimOp
    | LOG	PrimOp
    | SQRT	PrimOp
    | SIN	PrimOp
    | COS	PrimOp
    | TAN	PrimOp
    | ASIN	PrimOp
    | ACOS	PrimOp
    | ATAN	PrimOp
    | SLASH	PrimOp
    | CMP_EQ	PrimOp	-- EQ is used by 1.3 in in Ordering
    | CMP_NE	PrimOp
    | CMP_LT	PrimOp	-- LT is used by 1.3 in in Ordering
    | CMP_LE	PrimOp
    | CMP_GT	PrimOp	-- GT is used by 1.3 in in Ordering
    | CMP_GE	PrimOp
    | NEG	PrimOp
    | QUOT
    | REM
    | AND
    | OR
    | NOT
    | ORD
    | CHR
    | SEQ
    | STRING   -- NR
    | HGETS    -- MW
    | HGETC    -- NR
    | HPUTC    -- NR
    -- -- | QUOTREM	-- WITHDRAWN
    -- -- | DIVMOD	-- WITHDRAWN
    -- -- | DIV		-- WITHDRAWN
    -- -- | MOD		-- WITHDRAWN
    deriving (Eq)

strPrim (ADD    op) 	= strPrimOp "ADD"    op
strPrim (SUB    op) 	= strPrimOp "SUB"    op
strPrim (MUL    op) 	= strPrimOp "MUL"    op
strPrim (ABS    op) 	= strPrimOp "ABS"    op
strPrim (SIGNUM op) 	= strPrimOp "SIGNUM" op
strPrim (EXP    op) 	= strPrimOp "EXP"    op
strPrim (LOG    op) 	= strPrimOp "LOG"    op
strPrim (SQRT   op) 	= strPrimOp "SQRT"   op
strPrim (SIN    op) 	= strPrimOp "SIN"    op
strPrim (COS    op) 	= strPrimOp "COS"    op
strPrim (TAN    op) 	= strPrimOp "TAN"    op
strPrim (ASIN   op) 	= strPrimOp "ASIN"   op
strPrim (ACOS   op) 	= strPrimOp "ACOS"   op
strPrim (ATAN   op) 	= strPrimOp "ATAN"   op
strPrim (SLASH  op) 	= strPrimOp "SLASH"  op
strPrim (CMP_EQ op) 	= strPrimOp "EQ"     op
strPrim (CMP_NE op) 	= strPrimOp "NE"     op
strPrim (CMP_LT op) 	= strPrimOp "LT"     op
strPrim (CMP_LE op) 	= strPrimOp "LE"     op
strPrim (CMP_GT op) 	= strPrimOp "GT"     op
strPrim (CMP_GE op) 	= strPrimOp "GE"     op
strPrim (NEG    op) 	= strPrimOp "NEG"    op
strPrim QUOT		= "QUOT"
strPrim REM 		= "REM"
strPrim AND 		= "AND"
strPrim OR  		= "OR"
strPrim NOT 		= "NOT"
strPrim ORD 		= "ORD"
strPrim CHR 		= "CHR"
strPrim SEQ 		= "SEQ"
strPrim STRING 		= "STRING"
strPrim HGETS 		= "HGETS"
strPrim HGETC 		= "HGETC"
strPrim HPUTC 		= "HPUTC"

strPrimOp mnem OpWord   = mnem ++ "_W"
strPrimOp mnem OpFloat  = if floatIsDouble
                          then mnem ++ "_D"
                          else mnem ++ "_F"
strPrimOp mnem OpDouble = mnem ++ "_D"

Index

(HTML for this module was generated on May 15, 2003. About the conversion tool.)