-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Multi-platform parser analyzer and generator. -- -- Multi-platform parser analyzer and generator. @package imparse @version 0.0.0.2 module Text.Imparse.AbstractSyntax type Import = String type NonTerminal = String type Constructor = String type WhitespaceParse = Bool data Parser a Parser :: a -> [Import] -> [Production a] -> Parser a data Production a Production :: a -> NonTerminal -> [Choices a] -> Production a data Choices a Choices :: a -> [Choice a] -> Choices a data Choice a Choice :: a -> (Maybe Constructor) -> Association -> [Element a] -> Choice a type Minimum = Integer type Separator = String type TerminalString = String type RegularExpression = String data Association AssocNone :: Association AssocRight :: Association AssocLeft :: Association AssocFlat :: Association data Element a NonTerminal :: a -> NonTerminal -> Element a Many :: (Element a) -> (Maybe Separator) -> Element a May :: (Element a) -> Element a Indented :: WhitespaceParse -> (Element a) -> Element a Terminal :: Terminal -> Element a Error :: String -> Element a data Terminal Explicit :: String -> Terminal StringLiteral :: Terminal NaturalLiteral :: Terminal DecimalLiteral :: Terminal Identifier :: Terminal Constructor :: Terminal Flag :: Terminal RegExp :: RegularExpression -> Terminal isData :: Element a -> Bool terminals :: Parser a -> [Terminal] productionNonTerminal :: Production a -> NonTerminal instance Eq Association instance Eq Terminal instance Eq a => Eq (Element a) instance Eq a => Eq (Choice a) instance Eq a => Eq (Choices a) instance Eq a => Eq (Production a) instance Eq a => Eq (Parser a) instance Show Terminal instance Show (Element a) instance Show Association instance Show (Choice a) instance Show (Choices a) instance Show (Production a) instance Show (Parser a) instance ToUxADT Terminal instance ToUxADT (Element a) instance ToUxADT (Choice a) instance ToUxADT (Choices a) instance ToUxADT (Production a) instance ToUxADT (Parser a) instance Annotated Element instance Annotated Choice instance Annotated Choices instance Annotated Production instance Annotated Parser module Text.Imparse.Report instance ToReport Terminal instance (ToHighlights a, ToMessages a) => ToReport (Element a) instance (ToHighlights a, ToMessages a) => ToReport (Choice a) instance (ToHighlights a, ToMessages a) => ToReport (Choices a) instance (ToHighlights a, ToMessages a) => ToReport (Production a) instance (ToHighlights a, ToMessages a) => ToReport (Parser a) module Text.Imparse.Parse parseParser :: Analysis a => String -> Either String (Parser a) module Text.Imparse.Analysis type InitialNonTerminals = [NonTerminal] type InitialTerminals = [Terminal] type ReachableNonTerminals = [NonTerminal] type Characterization = (InitialTerminals, InitialNonTerminals, ReachableNonTerminals) data Analysis Analyzed :: [Tag] -> Characterization -> Analysis data Tag GrammarRecursive :: Tag GrammarNonRecursive :: Tag GrammarLinear :: Tag GrammarLeftLinear :: Tag GrammarRightLinear :: Tag GrammarCFG :: Tag ProductionBase :: Tag ProductionNonRecursive :: Tag ProductionRecursive :: Tag ProductionInfixPrefixThenDeterministic :: Tag ProductionDeterministic :: Tag ProductionDuplicate :: Tag ProductionUnreachable :: Tag ChoicesBase :: Tag ChoicesDeterministic :: Tag ChoicesNonRecursive :: Tag ChoicesRecursive :: Tag ChoicesRecursivePrefixInfix :: Tag ChoiceBase :: Tag ChoiceNonRecursive :: Tag ChoiceRecursive :: Tag ChoiceRecursivePrefix :: Tag ChoiceRecursiveInfix :: Tag ChoiceIndentedSuffix :: Tag ChoiceConstructorDuplicate :: Tag NonTerminalUnbound :: Tag tag :: Analysis -> [Tag] -> Analysis tags :: Annotated a => a Analysis -> [Tag] initialTerminals :: Annotated a => a Analysis -> InitialTerminals initialNonTerminals :: Annotated a => a Analysis -> InitialNonTerminals reachable :: Annotated a => a Analysis -> ReachableNonTerminals characterization :: Annotated a => a Analysis -> Characterization combine :: [Characterization] -> Characterization mapCmb :: (a -> (a, Characterization)) -> [a] -> ([a], Characterization) baseline :: Parser Analysis -> Parser Analysis closure :: Parser Analysis -> Parser Analysis tagging :: Parser Analysis -> Parser Analysis analyze :: Parser Analysis -> Parser Analysis infixPrefixOps :: Parser Analysis -> [String] instance Eq Tag instance Show Tag instance Eq Analysis instance Show Analysis instance ToHighlights Tag instance ToMessages Tag instance ToHighlights Analysis instance ToMessages Analysis instance Analysis Analysis module Text.Imparse.Compile.Haskell toLowerFirst :: String -> String toAbstractSyntax :: String -> Parser a -> Compile String () toDatatype :: Parser a -> Compile String () toRichReport :: String -> Parser a -> Compile String () toReportFuns :: Parser a -> Compile String () toParsec :: String -> Parser Analysis -> Compile String () toParsecDefs :: Parser Analysis -> Compile String () module Text.Imparse type HaskellModulePrefix = String data OutputTarget HTML :: OutputTarget ASCII :: OutputTarget UXADT :: OutputTarget HASKELL :: HaskellModulePrefix -> OutputTarget emitHaskell :: [OutputTarget] -> Maybe HaskellModulePrefix parseShow :: String -> IO () parse :: String -> IO (Maybe (Parser Analysis)) nothing :: IO () createDirectoryIfNotExists :: FilePath -> IO () removeIfExists :: FilePath -> IO () fileNamePrefix :: String -> String fileNameDir :: String -> String writeAndPutStr :: String -> String -> String -> IO () procWrite :: [OutputTarget] -> Maybe String -> IO () usage :: IO () cmd :: [OutputTarget] -> [String] -> IO () instance Eq OutputTarget