Copyright | © Oren Ben-Kiki 2007 © Herbert Valerio Riedel 2015-2018 |
---|---|
License | GPL-2.0-or-later |
Safe Haskell | Safe |
Language | Haskell2010 |
Tokenizer for the YAML 1.2 syntax as defined in http://yaml.org/spec/1.2/spec.html.
Synopsis
- tokenize :: ByteString -> Bool -> [Token]
- data Token = Token {}
- data Code
- = Bom
- | Text
- | Meta
- | Break
- | LineFeed
- | LineFold
- | Indicator
- | White
- | Indent
- | DirectivesEnd
- | DocumentEnd
- | BeginEscape
- | EndEscape
- | BeginComment
- | EndComment
- | BeginDirective
- | EndDirective
- | BeginTag
- | EndTag
- | BeginHandle
- | EndHandle
- | BeginAnchor
- | EndAnchor
- | BeginProperties
- | EndProperties
- | BeginAlias
- | EndAlias
- | BeginScalar
- | EndScalar
- | BeginSequence
- | EndSequence
- | BeginMapping
- | EndMapping
- | BeginPair
- | EndPair
- | BeginNode
- | EndNode
- | BeginDocument
- | EndDocument
- | BeginStream
- | EndStream
- | Error
- | Unparsed
- | Detected
- data Encoding
Documentation
tokenize :: ByteString -> Bool -> [Token] Source #
converts the Unicode input
(using the UTF-8, UTF-16 (LE or BE), or UTF-32 (LE or BE) encoding)
to a list of tokenize
input emit_unparsedToken
according to the YAML 1.2 specification.
Errors are reported as tokens with
, and the
unparsed text following an error may be attached as a final Error
:: Code
Unparsed
token
(if the emit_unparsed argument is True
). Note that tokens are available
"immediately", allowing for streaming of large YAML files with
memory requirements depending only on the YAML nesting level.
Parsed token.
Instances
Token
codes.
Bom | BOM, contains " |
Text | Content text characters. |
Meta | Non-content (meta) text characters. |
Break | Separation line break. |
LineFeed | Line break normalized to content line feed. |
LineFold | Line break folded to content space. |
Indicator | Character indicating structure. |
White | Separation white space. |
Indent | Indentation spaces. |
DirectivesEnd | Document start marker. |
DocumentEnd | Document end marker. |
BeginEscape | Begins escape sequence. |
EndEscape | Ends escape sequence. |
BeginComment | Begins comment. |
EndComment | Ends comment. |
BeginDirective | Begins directive. |
EndDirective | Ends directive. |
BeginTag | Begins tag. |
EndTag | Ends tag. |
BeginHandle | Begins tag handle. |
EndHandle | Ends tag handle. |
BeginAnchor | Begins anchor. |
EndAnchor | Ends anchor. |
BeginProperties | Begins node properties. |
EndProperties | Ends node properties. |
BeginAlias | Begins alias. |
EndAlias | Ends alias. |
BeginScalar | Begins scalar content. |
EndScalar | Ends scalar content. |
BeginSequence | Begins sequence content. |
EndSequence | Ends sequence content. |
BeginMapping | Begins mapping content. |
EndMapping | Ends mapping content. |
BeginPair | Begins mapping key:value pair. |
EndPair | Ends mapping key:value pair. |
BeginNode | Begins complete node. |
EndNode | Ends complete node. |
BeginDocument | Begins document. |
EndDocument | Ends document. |
BeginStream | Begins YAML stream. |
EndStream | Ends YAML stream. |
Error | Parsing error at this point. |
Unparsed | Unparsed due to errors (or at end of test). |
Detected | Detected parameter (for testing). |
Instances
Generic Code Source # | |||||
Defined in Data.YAML.Token
| |||||
Show Code Source # | |||||
NFData Code Source # | Since: 0.2.0 | ||||
Defined in Data.YAML.Token | |||||
Eq Code Source # | |||||
type Rep Code Source # | |||||
Defined in Data.YAML.Token type Rep Code = D1 ('MetaData "Code" "Data.YAML.Token" "HsYAML-0.2.1.2-5QnIVi3cktj3Prnkxvfyh5" 'False) (((((C1 ('MetaCons "Bom" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Text" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Meta" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Break" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LineFeed" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "LineFold" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Indicator" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "White" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Indent" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DirectivesEnd" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DocumentEnd" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "BeginEscape" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EndEscape" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BeginComment" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "EndComment" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BeginDirective" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "EndDirective" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BeginTag" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EndTag" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "BeginHandle" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "EndHandle" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BeginAnchor" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "EndAnchor" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BeginProperties" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "EndProperties" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BeginAlias" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EndAlias" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "BeginScalar" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "EndScalar" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BeginSequence" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "EndSequence" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BeginMapping" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EndMapping" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "BeginPair" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EndPair" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BeginNode" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "EndNode" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BeginDocument" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "EndDocument" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BeginStream" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EndStream" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Error" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Unparsed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Detected" 'PrefixI 'False) (U1 :: Type -> Type))))))) |
Denotes the Unicode Transformation Format (UTF) used for serializing the YAML document
UTF8 | UTF-8 encoding (or ASCII) |
UTF16LE | UTF-16 little endian |
UTF16BE | UTF-16 big endian |
UTF32LE | UTF-32 little endian |
UTF32BE | UTF-32 big endian |
Instances
Generic Encoding Source # | |||||
Defined in Data.YAML.Token.Encoding
| |||||
Show Encoding Source # |
| ||||
NFData Encoding Source # | Since: 0.2.0 | ||||
Defined in Data.YAML.Token.Encoding | |||||
Eq Encoding Source # | |||||
type Rep Encoding Source # | |||||
Defined in Data.YAML.Token.Encoding type Rep Encoding = D1 ('MetaData "Encoding" "Data.YAML.Token.Encoding" "HsYAML-0.2.1.2-5QnIVi3cktj3Prnkxvfyh5" 'False) ((C1 ('MetaCons "UTF8" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UTF16LE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UTF16BE" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "UTF32LE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UTF32BE" 'PrefixI 'False) (U1 :: Type -> Type)))) |