{- | Module : Text.Highlighting.Kate.Definitions Copyright : Copyright (C) 2008 John MacFarlane License : GNU GPL, version 2 or above Maintainer : John MacFarlane Stability : alpha Portability : portable Definitions for data structures needed by highlighting-kate. -} module Text.Highlighting.Kate.Definitions where import qualified Data.Map as Map -- | A stack of context names for each language. (Language-specific context -- stacks must be maintained because of IncludeRules.) type ContextStack = Map.Map String [String] -- | State for syntax parser. data SyntaxState = SyntaxState { synStContexts :: ContextStack -- ^ Stack of contexts , synStLanguage :: String -- ^ Language being parsed , synStCurrentLine :: String -- ^ Contents of current line , synStCharsParsedInLine :: Int -- ^ Num characters parsed in line , synStPrevChar :: Char -- ^ Last character parsed , synStCaseSensitive :: Bool -- ^ Language is case-sensitive , synStKeywordCaseSensitive :: Bool -- ^ Keywords are case-sensitive , synStCaptures :: [String] -- ^ List of regex captures from -- last capturing match } deriving (Read, Show) -- | A pair consisting of a list of attributes and some text. type LabeledSource = ([String], String) -- | A line of source, list of labeled source items. type SourceLine = [LabeledSource]