Safe Haskell | None |
---|---|
Language | Haskell98 |
Synopsis
- type Path = [String]
- impossible :: a
- field :: Path -> Value -> Parser Value
- parseFrom :: Path -> (Value -> Parser b) -> Value -> Parser b
- chars :: [Char] -> Char -> Parser Char
- char :: Char -> Char -> Parser Char
- class FromChar a where
- class FromString a where
- parseStringJSON :: FromString a => Value -> Parser a
- parseLine :: FromChar a => String -> Parser [a]
- newtype Alpha = Alpha {}
- newtype IntString = IntString {}
- data Rect a = Rect !Int !Int [[a]]
- data Border a = Border [a] [a] [a] [a]
- data BorderedRect a b = BorderedRect !Int !Int [[a]] (Border b)
- parseBorderedRect :: (Char -> Parser a) -> (Char -> Parser b) -> Value -> Parser (BorderedRect a b)
- newtype SpacedRect a = SpacedRect {}
- data Space = Space
- data Blank = Blank
- data Blank' = Blank'
- data Blank'' = Blank''
- data Empty = Empty
- parseCharJSON :: FromChar a => Value -> Parser a
- newtype Either' a b = Either' {}
- listListToMap :: [[a]] -> Grid Coord a
- rectToCoordGrid :: Rect a -> Grid Coord a
- blankToMaybe :: Either Blank a -> Maybe a
- blankToMaybe' :: Either Blank' a -> Maybe a
- blankToMaybe'' :: Either Blank'' a -> Maybe a
- rectToIrregGrid :: Rect (Either Empty a) -> Grid Coord a
- newtype Shaded = Shaded {}
- parseShadedGrid :: Key k => Value -> Parser (Grid k Bool)
- parseCoordGrid :: FromChar a => Value -> Parser (Grid Coord a)
- parseGrid :: (Key k, FromChar a) => Value -> Parser (Grid k a)
- parseGridWith :: Key k => (Char -> Parser a) -> Value -> Parser (Grid k a)
- parseWithReplacement :: FromChar a => (Char -> Maybe a) -> Char -> Parser a
- parseSpacedGrid :: (Key k, FromString a) => Value -> Parser (Grid k a)
- parseCharMap :: FromJSON a => Value -> Parser (Map Char a)
- parseExtGrid' :: (Key k, FromJSON a, FromChar b) => (a -> b) -> Value -> Parser (Grid k b)
- parseExtGrid :: (Key k, FromChar a, FromJSON a) => Value -> Parser (Grid k a)
- parseExtClueGrid :: (Key k, FromChar a, FromJSON a) => Value -> Parser (Grid k (Maybe a))
- fromCoordGrid :: Key k => Grid Coord a -> Grid k a
- fromCoordEdge :: Key k => Edge Coord -> Edge k
- fromCoordEdges :: Key k => [Edge Coord] -> [Edge k]
- parseClueGrid :: (FromChar a, Key k) => Value -> Parser (Grid k (Maybe a))
- parseClueGrid' :: (FromChar a, Key k) => Value -> Parser (Grid k (Maybe a))
- parseSpacedClueGrid :: (Key k, FromString a) => Value -> Parser (Grid k (Maybe a))
- parseIrregGrid :: (Key k, FromChar a) => Value -> Parser (Grid k a)
- parsePlainEdges :: Key k => Value -> Parser [Edge k]
- filterPlainEdges :: Map (Edge k) Char -> [Edge k]
- parseAnnotatedEdges :: (Key k, FromChar a) => Value -> Parser (Map (Edge k) a)
- readEdges :: Grid Coord Char -> Map (Edge Coord) Char
- parseGridChars :: FromChar a => Grid k Char -> Parser (Grid k a)
- parseEdgeGrid :: (FromChar a, FromChar b, FromChar c) => Value -> Parser (Grid N a, Grid C b, Map (Edge N) c)
- parsePlainEdgeGrid :: (FromChar a, FromChar b) => Value -> Parser (Grid N a, Grid C b, [Edge N])
- parseNodeEdges :: FromChar a => Value -> Parser (Grid N a, [Edge N])
- parseCellEdges :: FromChar a => Value -> Parser (Grid C a, [Edge N])
- data HalfDirs = HalfDirs {
- unHalfDirs :: [Dir]
- parseBoxEdges :: Key k => Value -> Parser [Edge k]
- parseEdges :: Key k => Value -> Parser [Edge k]
- newtype Dirs' = Dirs' {}
- parseEdgesFull :: Key k => Value -> Parser [Edge k]
- type ThermoRect = Rect (Either Blank (Either Int Alpha))
- partitionEithers :: Ord k => Map k (Either a b) -> (Map k a, Map k b)
- parseThermos :: Grid C Alpha -> Parser [Thermometer]
- parseThermoGrid :: ThermoRect -> Parser (Grid C (Maybe Int), [Thermometer])
- parseOutsideGrid :: Key k => (Char -> Parser a) -> (Char -> Parser b) -> Value -> Parser (OutsideClues k b, Grid k a)
- parseOutsideGridMap :: (Key k, FromChar a, FromChar b) => (a -> c) -> (b -> d) -> Value -> Parser (OutsideClues k d, Grid k c)
- newtype Tight = Tight {}
- parseTightOutside :: Value -> Parser (OutsideClues C (Maybe Int), Grid C (Tightfit ()))
- newtype PMarkedWord = PMW {
- unPMW :: MarkedWord
- parseNWords :: Int -> String -> Parser [String]
- parseDoublePair :: FromString a => Value -> Parser ((a, a), (a, a))
- parseMarkedLine :: FromCoord a => Value -> Parser (MarkedLine a)
- newtype PMarkedLine a = PML {
- unPML :: MarkedLine a
- newtype PCompassC = PCC {}
- newtype PSlovakClue = PSlovakClue {}
- newtype RefGrid k a = RefGrid {}
- hashmaptomap :: Ord a => HashMap a b -> Map a b
- compose :: Ord b => Map a b -> Map b c -> Maybe (Map a c)
- newtype MaybeMap k a = MM {
- unMaybeMap :: Map k (Maybe a)
- compose' :: Ord b => Map a (Maybe b) -> Map b c -> Maybe (Map a (Maybe c))
- parseAfternoonGrid :: Value -> Parser (Grid C Shade)
- newtype ParseTapaClue = ParseTapaClue {}
- reorientOutside :: OutsideClues k a -> OutsideClues k a
- parseCharOutside :: FromChar a => Value -> Parser (OutsideClues k a)
- parseOutside :: FromJSON a => Value -> Parser (OutsideClues k a)
- parseMultiOutsideClues :: FromJSON a => Value -> Parser (OutsideClues k [a])
- parseCoordLoop :: Value -> Parser VertexLoop
- newtype PFraction = PFraction {}
- parseGreaterClues :: Value -> Parser [GreaterClue]
- parseGreaterClue :: [Char] -> Parser GreaterClue
Documentation
impossible :: a Source #
class FromChar a where Source #
Instances
FromChar Char Source # | |
FromChar Int Source # | |
FromChar () Source # | |
FromChar Dir' Source # | |
FromChar Pentomino Source # | |
FromChar Tree Source # | |
FromChar PlacedTent Source # | |
Defined in Parse.Util | |
FromChar GalaxyCentre Source # | |
Defined in Parse.Util | |
FromChar Relation Source # | |
FromChar PlainNode Source # | |
FromChar MEnd Source # | |
FromChar Crossing Source # | |
FromChar Star Source # | |
FromChar Fish Source # | |
FromChar Black Source # | |
FromChar PrimeDiag Source # | |
FromChar KropkiDot Source # | |
FromChar SlalomDiag Source # | |
Defined in Parse.Util | |
FromChar MasyuPearl Source # | |
Defined in Parse.Util | |
FromChar Tight Source # | |
FromChar Dirs' Source # | |
FromChar HalfDirs Source # | |
FromChar Shaded Source # | |
FromChar Empty Source # | |
FromChar Blank'' Source # | |
FromChar Blank' Source # | |
FromChar Blank Source # | |
FromChar Space Source # | |
FromChar Alpha Source # | |
FromChar a => FromChar (Maybe a) Source # | |
(FromChar a, FromChar b) => FromChar (Either a b) Source # | |
(FromChar a, FromChar b) => FromChar (Either' a b) Source # | |
class FromString a where Source #
parseString :: String -> Parser a Source #
Instances
FromString Char Source # | |
Defined in Parse.Util | |
FromString Int Source # | |
Defined in Parse.Util | |
FromString DigitRange Source # | |
Defined in Parse.Util parseString :: String -> Parser DigitRange Source # | |
FromString Blank Source # | |
Defined in Parse.Util | |
FromChar a => FromString (Tightfit a) Source # | |
Defined in Parse.Util | |
(FromString a, FromString b) => FromString (Either a b) Source # | |
Defined in Parse.Util |
parseStringJSON :: FromString a => Value -> Parser a Source #
Helper to parse strings from number-formatted YAML fields. Somewhat dodgy.
A rectangle. Each row has length w
.
Border [a] [a] [a] [a] |
Instances
Functor Border Source # | |
Foldable Border Source # | This instance might be a lie. |
Defined in Parse.Util fold :: Monoid m => Border m -> m # foldMap :: Monoid m => (a -> m) -> Border a -> m # foldr :: (a -> b -> b) -> b -> Border a -> b # foldr' :: (a -> b -> b) -> b -> Border a -> b # foldl :: (b -> a -> b) -> b -> Border a -> b # foldl' :: (b -> a -> b) -> b -> Border a -> b # foldr1 :: (a -> a -> a) -> Border a -> a # foldl1 :: (a -> a -> a) -> Border a -> a # elem :: Eq a => a -> Border a -> Bool # maximum :: Ord a => Border a -> a # minimum :: Ord a => Border a -> a # | |
Traversable Border Source # | |
Show a => Show (Border a) Source # | |
data BorderedRect a b Source #
BorderedRect !Int !Int [[a]] (Border b) |
Instances
(Show a, Show b) => Show (BorderedRect a b) Source # | |
Defined in Parse.Util showsPrec :: Int -> BorderedRect a b -> ShowS # show :: BorderedRect a b -> String # showList :: [BorderedRect a b] -> ShowS # | |
(FromChar a, FromChar b) => FromJSON (BorderedRect a b) Source # | |
Defined in Parse.Util parseJSON :: Value -> Parser (BorderedRect a b) # parseJSONList :: Value -> Parser [BorderedRect a b] # |
parseBorderedRect :: (Char -> Parser a) -> (Char -> Parser b) -> Value -> Parser (BorderedRect a b) Source #
newtype SpacedRect a Source #
Instances
FromString a => FromJSON (SpacedRect a) Source # | |
Defined in Parse.Util parseJSON :: Value -> Parser (SpacedRect a) # parseJSONList :: Value -> Parser [SpacedRect a] # |
listListToMap :: [[a]] -> Grid Coord a Source #
parseSpacedGrid :: (Key k, FromString a) => Value -> Parser (Grid k a) Source #
parseSpacedClueGrid :: (Key k, FromString a) => Value -> Parser (Grid k (Maybe a)) Source #
parseEdgeGrid :: (FromChar a, FromChar b, FromChar c) => Value -> Parser (Grid N a, Grid C b, Map (Edge N) c) Source #
Parse a grid with edges and values at nodes and in cells.
E.g. o-*-*-o |1|2 3 *-o to a grid of masyu pearls, a grid of integers, and some annotated edges.
parsePlainEdgeGrid :: (FromChar a, FromChar b) => Value -> Parser (Grid N a, Grid C b, [Edge N]) Source #
parseNodeEdges :: FromChar a => Value -> Parser (Grid N a, [Edge N]) Source #
Parse a grid of edges with values at the nodes.
E.g. o-*-*-o | | *-o to a grid of masyu pearls and some edges.
HalfDirs | |
|
parseThermos :: Grid C Alpha -> Parser [Thermometer] Source #
parseThermoGrid :: ThermoRect -> Parser (Grid C (Maybe Int), [Thermometer]) Source #
parseOutsideGrid :: Key k => (Char -> Parser a) -> (Char -> Parser b) -> Value -> Parser (OutsideClues k b, Grid k a) Source #
parseOutsideGridMap :: (Key k, FromChar a, FromChar b) => (a -> c) -> (b -> d) -> Value -> Parser (OutsideClues k d, Grid k c) Source #
newtype PMarkedWord Source #
PMW | |
|
Instances
FromJSON PMarkedWord Source # | |
Defined in Parse.Util parseJSON :: Value -> Parser PMarkedWord # parseJSONList :: Value -> Parser [PMarkedWord] # |
parseDoublePair :: FromString a => Value -> Parser ((a, a), (a, a)) Source #
parseMarkedLine :: FromCoord a => Value -> Parser (MarkedLine a) Source #
newtype PMarkedLine a Source #
PML | |
|
Instances
FromCoord a => FromJSON (PMarkedLine a) Source # | |
Defined in Parse.Util parseJSON :: Value -> Parser (PMarkedLine a) # parseJSONList :: Value -> Parser [PMarkedLine a] # |
newtype PSlovakClue Source #
Instances
FromJSON PSlovakClue Source # | |
Defined in Parse.Util parseJSON :: Value -> Parser PSlovakClue # parseJSONList :: Value -> Parser [PSlovakClue] # |
MM | |
|
Instances
Functor (MaybeMap k) Source # | |
Foldable (MaybeMap k) Source # | |
Defined in Parse.Util fold :: Monoid m => MaybeMap k m -> m # foldMap :: Monoid m => (a -> m) -> MaybeMap k a -> m # foldr :: (a -> b -> b) -> b -> MaybeMap k a -> b # foldr' :: (a -> b -> b) -> b -> MaybeMap k a -> b # foldl :: (b -> a -> b) -> b -> MaybeMap k a -> b # foldl' :: (b -> a -> b) -> b -> MaybeMap k a -> b # foldr1 :: (a -> a -> a) -> MaybeMap k a -> a # foldl1 :: (a -> a -> a) -> MaybeMap k a -> a # toList :: MaybeMap k a -> [a] # null :: MaybeMap k a -> Bool # length :: MaybeMap k a -> Int # elem :: Eq a => a -> MaybeMap k a -> Bool # maximum :: Ord a => MaybeMap k a -> a # minimum :: Ord a => MaybeMap k a -> a # | |
Traversable (MaybeMap k) Source # | |
newtype ParseTapaClue Source #
Instances
FromJSON ParseTapaClue Source # | |
Defined in Parse.Util parseJSON :: Value -> Parser ParseTapaClue # parseJSONList :: Value -> Parser [ParseTapaClue] # |
reorientOutside :: OutsideClues k a -> OutsideClues k a Source #
parseCharOutside :: FromChar a => Value -> Parser (OutsideClues k a) Source #
parseOutside :: FromJSON a => Value -> Parser (OutsideClues k a) Source #
parseMultiOutsideClues :: FromJSON a => Value -> Parser (OutsideClues k [a]) Source #
parseCoordLoop :: Value -> Parser VertexLoop Source #
parseGreaterClues :: Value -> Parser [GreaterClue] Source #
parseGreaterClue :: [Char] -> Parser GreaterClue Source #