Safe Haskell | None |
---|
Imparse Cross-platform and -language parser generator.
Text/Imparse/Analysis.hs
Analyzer/validator for Imparse parsers.
- type InitialNonTerminals = [NonTerminal]
- type InitialTerminals = [Terminal]
- type ReachableNonTerminals = [NonTerminal]
- type Characterization = (InitialTerminals, InitialNonTerminals, ReachableNonTerminals)
- data Analysis = Analyzed [Tag] Characterization
- data Tag
- = GrammarRecursive
- | GrammarNonRecursive
- | GrammarLinear
- | GrammarLeftLinear
- | GrammarRightLinear
- | GrammarCFG
- | ProductionBase
- | ProductionNonRecursive
- | ProductionRecursive
- | ProductionInfixPrefixThenDeterministic
- | ProductionDeterministic
- | ProductionDuplicate
- | ProductionUnreachable
- | ChoicesBase
- | ChoicesDeterministic
- | ChoicesNonRecursive
- | ChoicesRecursive
- | ChoicesRecursivePrefixInfix
- | ChoiceBase
- | ChoiceNonRecursive
- | ChoiceRecursive
- | ChoiceRecursivePrefix
- | ChoiceRecursiveInfix
- | ChoiceConstructorDuplicate
- | NonTerminalUnbound
- tag :: Analysis -> [Tag] -> Analysis
- tags :: Annotate a => a Analysis -> [Tag]
- initialTerminals :: Annotate a => a Analysis -> InitialTerminals
- initialNonTerminals :: Annotate a => a Analysis -> InitialNonTerminals
- reachable :: Annotate a => a Analysis -> ReachableNonTerminals
- characterization :: Annotate 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]
- allOps :: Parser Analysis -> [String]
Documentation
type InitialNonTerminals = [NonTerminal]Source
Analysis data structure, instance declarations, accessors, and mutators.
type InitialTerminals = [Terminal]Source
type ReachableNonTerminals = [NonTerminal]Source
Eq Analysis | |
Show Analysis | |
ToHighlights Analysis | |
ToMessages Analysis | Reporting of analysis results. |
Analysis Analysis |
initialTerminals :: Annotate a => a Analysis -> InitialTerminalsSource
initialNonTerminals :: Annotate a => a Analysis -> InitialNonTerminalsSource
reachable :: Annotate a => a Analysis -> ReachableNonTerminalsSource
characterization :: Annotate a => a Analysis -> CharacterizationSource
mapCmb :: (a -> (a, Characterization)) -> [a] -> ([a], Characterization)Source
baseline :: Parser Analysis -> Parser AnalysisSource
Baseline analysis (initial non-/terminals and reachable non-terminals) and its closure (fully recursive characterization of initial and reachable non-/terminals).
infixPrefixOps :: Parser Analysis -> [String]Source
Other useful functions.