module PDF.Content.Operator.Text ( Operator(..) , signature ) where import PDF.Content.Operator.Common (Signature) import PDF.Object (DirectObject(..)) data Operator = Td | TD | Tm | Tstar -- text positioning | TJ | Tj | Quote | DQuote -- text showing | Tc | Tw | Tz | TL | Tf | Tr | Ts -- text state deriving (Bounded, Enum, Show) signature :: [Signature Operator] signature = [ (Td, \l -> case l of [_, _] -> True ; _ -> False) , (TD, \l -> case l of [_, _] -> True ; _ -> False) , (Tm, \l -> case l of [_, _, _, _, _, _] -> True ; _ -> False) , (Tstar, \l -> case l of [] -> True ; _ -> False) , (TJ, \l -> case l of [Array _] -> True ; _ -> False) , (Tj, \l -> case l of [StringObject _] -> True ; _ -> False) , (Quote, \l -> case l of [StringObject _] -> True ; _ -> False) , (DQuote, \l -> case l of [StringObject _] -> True ; _ -> False) , (Tc, \l -> case l of [_] -> True ; _ -> False) , (Tw, \l -> case l of [_] -> True ; _ -> False) , (Tz, \l -> case l of [_] -> True ; _ -> False) , (TL, \l -> case l of [_] -> True ; _ -> False) , (Tf, \l -> case l of [NameObject _, _] -> True ; _ -> False) , (Tr, \l -> case l of [_] -> True ; _ -> False) , (Ts, \l -> case l of [_] -> True ; _ -> False) ]