{-# LANGUAGE OverloadedStrings #-}
module Pdf.Content.Ops
(
Op(..),
Expr(..),
Operator,
toOp
)
where
import Pdf.Core
import Data.ByteString (ByteString)
type Operator = (Op, [Object])
data Op
= Op_q
| Op_Q
| Op_cm
| Op_w
| Op_J
| Op_j
| Op_M
| Op_d
| Op_ri
| Op_i
| Op_gs
| Op_m
| Op_l
| Op_c
| Op_v
| Op_y
| Op_h
| Op_re
| Op_S
| Op_s
| Op_f
| Op_F
| Op_f_star
| Op_B
| Op_B_star
| Op_b
| Op_b_star
| Op_n
| Op_W
| Op_W_star
| Op_BT
| Op_ET
| Op_Tc
| Op_Tw
| Op_Tz
| Op_TL
| Op_Tf
| Op_Tr
| Op_Ts
| Op_Td
| Op_TD
| Op_Tm
| Op_T_star
| Op_Tj
| Op_apostrophe
| Op_quote
| Op_TJ
| Op_d0
| Op_d1
| Op_CS
| Op_cs
| Op_SC
| Op_SCN
| Op_sc
| Op_scn
| Op_G
| Op_g
| Op_RG
| Op_rg
| Op_K
| Op_k
| Op_sh
| Op_BI
| Op_ID
| Op_EI
| Op_Do
| Op_MP
| Op_DP
| Op_BMC
| Op_BDC
| Op_EMC
| Op_BX
| Op_EX
| UnknownOp ByteString
deriving (Int -> Op -> ShowS
[Op] -> ShowS
Op -> String
(Int -> Op -> ShowS)
-> (Op -> String) -> ([Op] -> ShowS) -> Show Op
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Op] -> ShowS
$cshowList :: [Op] -> ShowS
show :: Op -> String
$cshow :: Op -> String
showsPrec :: Int -> Op -> ShowS
$cshowsPrec :: Int -> Op -> ShowS
Show, Op -> Op -> Bool
(Op -> Op -> Bool) -> (Op -> Op -> Bool) -> Eq Op
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Op -> Op -> Bool
$c/= :: Op -> Op -> Bool
== :: Op -> Op -> Bool
$c== :: Op -> Op -> Bool
Eq)
data Expr
= Obj Object
| Op Op
deriving (Int -> Expr -> ShowS
[Expr] -> ShowS
Expr -> String
(Int -> Expr -> ShowS)
-> (Expr -> String) -> ([Expr] -> ShowS) -> Show Expr
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Expr] -> ShowS
$cshowList :: [Expr] -> ShowS
show :: Expr -> String
$cshow :: Expr -> String
showsPrec :: Int -> Expr -> ShowS
$cshowsPrec :: Int -> Expr -> ShowS
Show, Expr -> Expr -> Bool
(Expr -> Expr -> Bool) -> (Expr -> Expr -> Bool) -> Eq Expr
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Expr -> Expr -> Bool
$c/= :: Expr -> Expr -> Bool
== :: Expr -> Expr -> Bool
$c== :: Expr -> Expr -> Bool
Eq)
toOp :: ByteString -> Op
toOp :: ByteString -> Op
toOp ByteString
"q" = Op
Op_q
toOp ByteString
"Q" = Op
Op_Q
toOp ByteString
"cm" = Op
Op_cm
toOp ByteString
"w" = Op
Op_w
toOp ByteString
"J" = Op
Op_J
toOp ByteString
"j" = Op
Op_j
toOp ByteString
"M" = Op
Op_M
toOp ByteString
"d" = Op
Op_d
toOp ByteString
"ri" = Op
Op_ri
toOp ByteString
"i" = Op
Op_i
toOp ByteString
"gs" = Op
Op_gs
toOp ByteString
"m" = Op
Op_m
toOp ByteString
"l" = Op
Op_l
toOp ByteString
"c" = Op
Op_c
toOp ByteString
"v" = Op
Op_v
toOp ByteString
"y" = Op
Op_y
toOp ByteString
"h" = Op
Op_h
toOp ByteString
"re" = Op
Op_re
toOp ByteString
"S" = Op
Op_S
toOp ByteString
"s" = Op
Op_s
toOp ByteString
"f" = Op
Op_f
toOp ByteString
"F" = Op
Op_F
toOp ByteString
"f*" = Op
Op_f_star
toOp ByteString
"B" = Op
Op_B
toOp ByteString
"B*" = Op
Op_B_star
toOp ByteString
"b" = Op
Op_b
toOp ByteString
"b*" = Op
Op_b_star
toOp ByteString
"n" = Op
Op_n
toOp ByteString
"W" = Op
Op_W
toOp ByteString
"W*" = Op
Op_W_star
toOp ByteString
"BT" = Op
Op_BT
toOp ByteString
"ET" = Op
Op_ET
toOp ByteString
"Tc" = Op
Op_Tc
toOp ByteString
"Tw" = Op
Op_Tw
toOp ByteString
"Tz" = Op
Op_Tz
toOp ByteString
"TL" = Op
Op_TL
toOp ByteString
"Tf" = Op
Op_Tf
toOp ByteString
"Tr" = Op
Op_Tr
toOp ByteString
"Ts" = Op
Op_Ts
toOp ByteString
"Td" = Op
Op_Td
toOp ByteString
"TD" = Op
Op_TD
toOp ByteString
"Tm" = Op
Op_Tm
toOp ByteString
"T*" = Op
Op_T_star
toOp ByteString
"Tj" = Op
Op_Tj
toOp ByteString
"'" = Op
Op_apostrophe
toOp ByteString
"\"" = Op
Op_quote
toOp ByteString
"TJ" = Op
Op_TJ
toOp ByteString
"d0" = Op
Op_d0
toOp ByteString
"d1" = Op
Op_d1
toOp ByteString
"CS" = Op
Op_CS
toOp ByteString
"cs" = Op
Op_cs
toOp ByteString
"SC" = Op
Op_SC
toOp ByteString
"SCN" = Op
Op_SCN
toOp ByteString
"sc" = Op
Op_sc
toOp ByteString
"scn" = Op
Op_scn
toOp ByteString
"G" = Op
Op_G
toOp ByteString
"g" = Op
Op_g
toOp ByteString
"RG" = Op
Op_RG
toOp ByteString
"rg" = Op
Op_rg
toOp ByteString
"K" = Op
Op_K
toOp ByteString
"k" = Op
Op_k
toOp ByteString
"sh" = Op
Op_sh
toOp ByteString
"BI" = Op
Op_BI
toOp ByteString
"ID" = Op
Op_ID
toOp ByteString
"EI" = Op
Op_EI
toOp ByteString
"Do" = Op
Op_Do
toOp ByteString
"MP" = Op
Op_MP
toOp ByteString
"DP" = Op
Op_DP
toOp ByteString
"BMC" = Op
Op_BMC
toOp ByteString
"BDC" = Op
Op_BDC
toOp ByteString
"EMC" = Op
Op_EMC
toOp ByteString
"BX" = Op
Op_BX
toOp ByteString
"EX" = Op
Op_EX
toOp ByteString
str = ByteString -> Op
UnknownOp ByteString
str