Safe Haskell | None |
---|---|
Language | Haskell2010 |
Parse Dhall tokens. Even though we don't have a tokenizer per-se this
Synopsis
- endOfLine :: Parser Text
- validCodepoint :: Int -> Bool
- whitespace :: Parser ()
- lineComment :: Parser Text
- lineCommentPrefix :: Parser Text
- blockComment :: Parser Text
- nonemptyWhitespace :: Parser ()
- bashEnvironmentVariable :: Parser Text
- posixEnvironmentVariable :: Parser Text
- data ComponentType
- text :: Text -> Parser Text
- char :: Char -> Parser Char
- file_ :: ComponentType -> Parser File
- label :: Parser Text
- anyLabelOrSome :: Parser Text
- anyLabel :: Parser Text
- labels :: Parser [Text]
- httpRaw :: Parser URL
- hexdig :: Char -> Bool
- identifier :: Parser Var
- hexNumber :: Parser Int
- signPrefix :: Num a => Parser (a -> a)
- doubleLiteral :: Parser Double
- doubleInfinity :: Parser Double
- naturalLiteral :: Parser Natural
- integerLiteral :: Parser Integer
- dateFullYear :: Parser Integer
- dateMonth :: Parser Int
- dateMday :: Parser Int
- timeHour :: Parser Int
- timeMinute :: Parser Int
- timeSecond :: Parser Pico
- timeSecFrac :: Parser (Pico, Word)
- _Optional :: Parser ()
- _if :: Parser ()
- _then :: Parser ()
- _else :: Parser ()
- _let :: Parser ()
- _in :: Parser ()
- _as :: Parser ()
- _using :: Parser ()
- _merge :: Parser ()
- _toMap :: Parser ()
- _showConstructor :: Parser ()
- _assert :: Parser ()
- _Some :: Parser ()
- _None :: Parser ()
- _NaturalFold :: Parser ()
- _NaturalBuild :: Parser ()
- _NaturalIsZero :: Parser ()
- _NaturalEven :: Parser ()
- _NaturalOdd :: Parser ()
- _NaturalToInteger :: Parser ()
- _NaturalShow :: Parser ()
- _NaturalSubtract :: Parser ()
- _IntegerClamp :: Parser ()
- _IntegerNegate :: Parser ()
- _IntegerShow :: Parser ()
- _IntegerToDouble :: Parser ()
- _DoubleShow :: Parser ()
- _ListBuild :: Parser ()
- _ListFold :: Parser ()
- _ListLength :: Parser ()
- _ListHead :: Parser ()
- _ListLast :: Parser ()
- _ListIndexed :: Parser ()
- _ListReverse :: Parser ()
- _Bool :: Parser ()
- _Natural :: Parser ()
- _Integer :: Parser ()
- _Double :: Parser ()
- _Text :: Parser ()
- _TextReplace :: Parser ()
- _TextShow :: Parser ()
- _Date :: Parser ()
- _Time :: Parser ()
- _TimeZone :: Parser ()
- _List :: Parser ()
- _True :: Parser ()
- _False :: Parser ()
- _NaN :: Parser ()
- _Type :: Parser ()
- _Kind :: Parser ()
- _Sort :: Parser ()
- _Location :: Parser ()
- _equal :: Parser ()
- _or :: Parser ()
- _plus :: Parser ()
- _textAppend :: Parser ()
- _listAppend :: Parser ()
- _and :: Parser ()
- _times :: Parser ()
- _doubleEqual :: Parser ()
- _notEqual :: Parser ()
- _dot :: Parser ()
- _openBrace :: Parser ()
- _closeBrace :: Parser ()
- _openBracket :: Parser ()
- _closeBracket :: Parser ()
- _openAngle :: Parser ()
- _closeAngle :: Parser ()
- _bar :: Parser ()
- _comma :: Parser ()
- _openParens :: Parser ()
- _closeParens :: Parser ()
- _colon :: Parser ()
- _at :: Parser ()
- _equivalent :: Parser CharacterSet
- _missing :: Parser ()
- _importAlt :: Parser ()
- _combine :: Parser CharacterSet
- _combineTypes :: Parser CharacterSet
- _prefer :: Parser CharacterSet
- _lambda :: Parser CharacterSet
- _forall :: Parser CharacterSet
- _arrow :: Parser CharacterSet
- _doubleColon :: Parser ()
- _with :: Parser ()
Documentation
whitespace :: Parser () Source #
Parse 0 or more whitespace characters (including comments)
This corresponds to the whsp
rule in the official grammar
lineComment :: Parser Text Source #
Parse a Dhall's single-line comment, starting from `--` and until the last character of the line before the end-of-line character
lineCommentPrefix :: Parser Text Source #
Same as lineComment
except that this doesn't parse the end-of-line
character
blockComment :: Parser Text Source #
Parsed text doesn't include opening braces
nonemptyWhitespace :: Parser () Source #
Parse 1 or more whitespace characters (including comments)
This corresponds to the whsp1
rule in the official grammar
bashEnvironmentVariable :: Parser Text Source #
Parse a valid Bash environment variable name
This corresponds to the bash-environment-variable
rule in the official
grammar
posixEnvironmentVariable :: Parser Text Source #
Parse a valid POSIX environment variable name, which permits a wider range of characters than a Bash environment variable name
This corresponds to the posix-environment-variable
rule in the official
grammar
data ComponentType Source #
The pathComponent
function uses this type to distinguish whether to parse
a URL path component or a file path component
text :: Text -> Parser Text Source #
A variation on text
that doesn't quote the expected
in error messages
char :: Char -> Parser Char Source #
A variation on char
that doesn't quote the expected
token in error messages
Parse a label (e.g. a variable/field/alternative name)
Rejects labels that match built-in names (e.g. Natural/even
)
This corresponds to the nonreserved-label
rule in the official grammar
anyLabel :: Parser Text Source #
Same as label
except that built-in names are allowed
This corresponds to the any-label
rule in the official grammar
labels :: Parser [Text] Source #
Parse a braced sequence of comma-separated labels
For example, this is used to parse the record projection syntax
This corresponds to the labels
rule in the official grammar
httpRaw :: Parser URL Source #
Parse an HTTP(S) URL without trailing whitespace
This corresponds to the http-raw
rule in the official grammar
hexdig :: Char -> Bool Source #
Parse a hex digit (uppercase or lowercase)
This corresponds to the HEXDIG
rule in the official grammar
identifier :: Parser Var Source #
Parse an identifier (i.e. a variable or built-in)
Variables can have an optional index to disambiguate shadowed variables
This corresponds to the identifier
rule from the official grammar
signPrefix :: Num a => Parser (a -> a) Source #
Parse a leading +
or -
sign
doubleLiteral :: Parser Double Source #
Parse a Double
literal
This corresponds to the double-literal
rule from the official grammar
doubleInfinity :: Parser Double Source #
Parse a signed Infinity
This corresponds to the minus-infinity-literal
and plus-infinity-literal
rules from the official grammar
naturalLiteral :: Parser Natural Source #
Parse a Natural
literal
This corresponds to the natural-literal
rule from the official grammar
integerLiteral :: Parser Integer Source #
Parse an Integer
literal
This corresponds to the integer-literal
rule from the official grammar
dateFullYear :: Parser Integer Source #
Parse a 4-digit year
This corresponds to the date-fullyear
rule from the official grammar
dateMonth :: Parser Int Source #
Parse a 2-digit month
This corresponds to the date-month
rule from the official grammar
dateMday :: Parser Int Source #
Parse a 2-digit day of the month
This corresponds to the date-mday
rule from the official grammar
timeHour :: Parser Int Source #
Parse a 2-digit hour
This corresponds to the time-hour
rule from the official grammar
timeMinute :: Parser Int Source #
Parse a 2-digit minute
This corresponds to the time-minute
rule from the official grammar
timeSecond :: Parser Pico Source #
Parse a 2-digit second
This corresponds to the time-second
rule from the official grammar
timeSecFrac :: Parser (Pico, Word) Source #
Parse the fractional component of a second
This corresponds to the time-secfrac
rule from the official grammar
_Optional :: Parser () Source #
Parse the Optional
built-in
This corresponds to the Optional
rule from the official grammar
Parse the if
keyword
This corresponds to the if
rule from the official grammar
Parse the then
keyword
This corresponds to the then
rule from the official grammar
Parse the else
keyword
This corresponds to the else
rule from the official grammar
Parse the let
keyword
This corresponds to the let
rule from the official grammar
Parse the in
keyword
This corresponds to the in
rule from the official grammar
Parse the as
keyword
This corresponds to the as
rule from the official grammar
Parse the using
keyword
This corresponds to the using
rule from the official grammar
Parse the merge
keyword
This corresponds to the merge
rule from the official grammar
Parse the toMap
keyword
This corresponds to the toMap
rule from the official grammar
_showConstructor :: Parser () Source #
Parse the showConstructor
keyword
This corresponds to the showConstructor
rule from the official grammar
Parse the assert
keyword
This corresponds to the assert
rule from the official grammar
Parse the Some
built-in
This corresponds to the Some
rule from the official grammar
Parse the None
built-in
This corresponds to the None
rule from the official grammar
_NaturalFold :: Parser () Source #
Parse the Natural/fold
built-in
This corresponds to the Natural-fold
rule from the official grammar
_NaturalBuild :: Parser () Source #
Parse the Natural/build
built-in
This corresponds to the Natural-build
rule from the official grammar
_NaturalIsZero :: Parser () Source #
Parse the Natural/isZero
built-in
This corresponds to the Natural-isZero
rule from the official grammar
_NaturalEven :: Parser () Source #
Parse the Natural/even
built-in
This corresponds to the Natural-even
rule from the official grammar
_NaturalOdd :: Parser () Source #
Parse the Natural/odd
built-in
This corresponds to the Natural-odd
rule from the official grammar
_NaturalToInteger :: Parser () Source #
Parse the Natural/toInteger
built-in
This corresponds to the Natural-toInteger
rule from the official grammar
_NaturalShow :: Parser () Source #
Parse the Natural/show
built-in
This corresponds to the Natural-show
rule from the official grammar
_NaturalSubtract :: Parser () Source #
Parse the Natural/subtract
built-in
This corresponds to the Natural-subtract
rule from the official grammar
_IntegerClamp :: Parser () Source #
Parse the Integer/clamp
built-in
This corresponds to the Integer-clamp
rule from the official grammar
_IntegerNegate :: Parser () Source #
Parse the Integer/negate
built-in
This corresponds to the Integer-negate
rule from the official grammar
_IntegerShow :: Parser () Source #
Parse the Integer/show
built-in
This corresponds to the Integer-show
rule from the official grammar
_IntegerToDouble :: Parser () Source #
Parse the Integer/toDouble
built-in
This corresponds to the Integer-toDouble
rule from the official grammar
_DoubleShow :: Parser () Source #
Parse the Double/show
built-in
This corresponds to the Double-show
rule from the official grammar
_ListBuild :: Parser () Source #
Parse the List/build
built-in
This corresponds to the List-build
rule from the official grammar
_ListFold :: Parser () Source #
Parse the List/fold
built-in
This corresponds to the List-fold
rule from the official grammar
_ListLength :: Parser () Source #
Parse the List/length
built-in
This corresponds to the List-length
rule from the official grammar
_ListHead :: Parser () Source #
Parse the List/head
built-in
This corresponds to the List-head
rule from the official grammar
_ListLast :: Parser () Source #
Parse the List/last
built-in
This corresponds to the List-last
rule from the official grammar
_ListIndexed :: Parser () Source #
Parse the List/indexed
built-in
This corresponds to the List-indexed
rule from the official grammar
_ListReverse :: Parser () Source #
Parse the List/reverse
built-in
This corresponds to the List-reverse
rule from the official grammar
Parse the Bool
built-in
This corresponds to the Bool
rule from the official grammar
_Natural :: Parser () Source #
Parse the Natural
built-in
This corresponds to the Natural
rule from the official grammar
_Integer :: Parser () Source #
Parse the Integer
built-in
This corresponds to the Integer
rule from the official grammar
Parse the Double
built-in
This corresponds to the Double
rule from the official grammar
Parse the Text
built-in
This corresponds to the Text
rule from the official grammar
_TextReplace :: Parser () Source #
Parse the Text/replace
built-in
This corresponds to the Text-replace
rule from the official grammar
_TextShow :: Parser () Source #
Parse the Text/show
built-in
This corresponds to the Text-show
rule from the official grammar
Parse the Date
bult-in
This corresponds to the Date
rule from the official grammar
Parse the Time
bult-in
This corresponds to the Time
rule from the official grammar
_TimeZone :: Parser () Source #
Parse the TimeZone
bult-in
This corresponds to the TimeZone
rule from the official grammar
Parse the List
built-in
This corresponds to the List
rule from the official grammar
Parse the True
built-in
This corresponds to the True
rule from the official grammar
Parse the False
built-in
This corresponds to the False
rule from the official grammar
Parse a NaN
literal
This corresponds to the NaN
rule from the official grammar
Parse the Type
built-in
This corresponds to the Type
rule from the official grammar
Parse the Kind
built-in
This corresponds to the Kind
rule from the official grammar
Parse the Sort
built-in
This corresponds to the Sort
rule from the official grammar
_Location :: Parser () Source #
Parse the Location
keyword
This corresponds to the Location
rule from the official grammar
_textAppend :: Parser () Source #
Parse the ++
symbol
_listAppend :: Parser () Source #
Parse the #
symbol
_doubleEqual :: Parser () Source #
Parse the ==
symbol
_openBrace :: Parser () Source #
Parse the {
symbol
_closeBrace :: Parser () Source #
Parse the }
symbol
_openBracket :: Parser () Source #
Parse the [
] symbol
_closeBracket :: Parser () Source #
Parse the ]
symbol
_openAngle :: Parser () Source #
Parse the <
symbol
_closeAngle :: Parser () Source #
Parse the >
symbol
_openParens :: Parser () Source #
Parse the (
symbol
_closeParens :: Parser () Source #
Parse the )
symbol
_equivalent :: Parser CharacterSet Source #
Parse the equivalence symbol (===
or ≡
)
_importAlt :: Parser () Source #
Parse the ?
symbol
_combine :: Parser CharacterSet Source #
Parse the record combine operator (/\
or ∧
)
_combineTypes :: Parser CharacterSet Source #
Parse the record type combine operator (//\\
or ⩓
)
_prefer :: Parser CharacterSet Source #
Parse the record "prefer" operator (//
or ⫽
)
_lambda :: Parser CharacterSet Source #
Parse a lambda (\
or λ
)
_forall :: Parser CharacterSet Source #
Parse a forall (forall
or ∀
)
_arrow :: Parser CharacterSet Source #
Parse a right arrow (->
or →
)
_doubleColon :: Parser () Source #
Parse a double colon (::
)