{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE StrictData #-} module Language.Cimple.Tokens ( LexemeClass (..) ) where import Data.Aeson (FromJSON, ToJSON) import GHC.Generics (Generic) data LexemeClass = IdConst | IdFuncType | IdStdType | IdSueType | IdVar | KwBreak | KwCase | KwConst | KwContinue | KwDefault | KwDo | KwElse | KwEnum | KwExtern | KwFor | KwGoto | KwIf | KwReturn | KwSizeof | KwStatic | KwStaticAssert | KwStruct | KwSwitch | KwTypedef | KwUnion | KwVla | KwVoid | KwWhile | LitFalse | LitTrue | LitChar | LitInteger | LitString | LitSysInclude | PctAmpersand | PctAmpersandAmpersand | PctAmpersandEq | PctArrow | PctAsterisk | PctAsteriskEq | PctCaret | PctCaretEq | PctColon | PctComma | PctEllipsis | PctEMark | PctEMarkEq | PctEq | PctEqEq | PctGreater | PctGreaterEq | PctGreaterGreater | PctGreaterGreaterEq | PctLBrace | PctLBrack | PctLess | PctLessEq | PctLessLess | PctLessLessEq | PctLParen | PctMinus | PctMinusEq | PctMinusMinus | PctPeriod | PctPercent | PctPercentEq | PctPipe | PctPipeEq | PctPipePipe | PctPlus | PctPlusEq | PctPlusPlus | PctQMark | PctRBrace | PctRBrack | PctRParen | PctSemicolon | PctSlash | PctSlashEq | PctTilde | PpDefine | PpDefined | PpElif | PpElse | PpEndif | PpIf | PpIfdef | PpIfndef | PpInclude | PpNewline | PpUndef | CmtBlock | CmtIndent | CmtStart | CmtStartBlock | CmtStartDoc | CmtSpdxCopyright | CmtSpdxLicense | CmtCode | CmtWord | CmtRef | CmtEnd | Error | Eof deriving (Int -> LexemeClass -> ShowS [LexemeClass] -> ShowS LexemeClass -> String (Int -> LexemeClass -> ShowS) -> (LexemeClass -> String) -> ([LexemeClass] -> ShowS) -> Show LexemeClass forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [LexemeClass] -> ShowS $cshowList :: [LexemeClass] -> ShowS show :: LexemeClass -> String $cshow :: LexemeClass -> String showsPrec :: Int -> LexemeClass -> ShowS $cshowsPrec :: Int -> LexemeClass -> ShowS Show, LexemeClass -> LexemeClass -> Bool (LexemeClass -> LexemeClass -> Bool) -> (LexemeClass -> LexemeClass -> Bool) -> Eq LexemeClass forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: LexemeClass -> LexemeClass -> Bool $c/= :: LexemeClass -> LexemeClass -> Bool == :: LexemeClass -> LexemeClass -> Bool $c== :: LexemeClass -> LexemeClass -> Bool Eq, (forall x. LexemeClass -> Rep LexemeClass x) -> (forall x. Rep LexemeClass x -> LexemeClass) -> Generic LexemeClass forall x. Rep LexemeClass x -> LexemeClass forall x. LexemeClass -> Rep LexemeClass x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep LexemeClass x -> LexemeClass $cfrom :: forall x. LexemeClass -> Rep LexemeClass x Generic, Eq LexemeClass Eq LexemeClass -> (LexemeClass -> LexemeClass -> Ordering) -> (LexemeClass -> LexemeClass -> Bool) -> (LexemeClass -> LexemeClass -> Bool) -> (LexemeClass -> LexemeClass -> Bool) -> (LexemeClass -> LexemeClass -> Bool) -> (LexemeClass -> LexemeClass -> LexemeClass) -> (LexemeClass -> LexemeClass -> LexemeClass) -> Ord LexemeClass LexemeClass -> LexemeClass -> Bool LexemeClass -> LexemeClass -> Ordering LexemeClass -> LexemeClass -> LexemeClass forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: LexemeClass -> LexemeClass -> LexemeClass $cmin :: LexemeClass -> LexemeClass -> LexemeClass max :: LexemeClass -> LexemeClass -> LexemeClass $cmax :: LexemeClass -> LexemeClass -> LexemeClass >= :: LexemeClass -> LexemeClass -> Bool $c>= :: LexemeClass -> LexemeClass -> Bool > :: LexemeClass -> LexemeClass -> Bool $c> :: LexemeClass -> LexemeClass -> Bool <= :: LexemeClass -> LexemeClass -> Bool $c<= :: LexemeClass -> LexemeClass -> Bool < :: LexemeClass -> LexemeClass -> Bool $c< :: LexemeClass -> LexemeClass -> Bool compare :: LexemeClass -> LexemeClass -> Ordering $ccompare :: LexemeClass -> LexemeClass -> Ordering Ord) instance FromJSON LexemeClass instance ToJSON LexemeClass