YAML::PP::Grammar(3) User Contributed Perl Documentation YAML::PP::Grammar(3) NAME YAML::PP::Grammar - YAML grammar GRAMMAR This is the Grammar in YAML # START OF YAML INLINE # DO NOT CHANGE THIS # This grammar is automatically generated from etc/grammar.yaml --- NODETYPE_NODE: DASH: match: cb_seqstart EOL: { new: FULLNODE } WS: { new: FULLNODE } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } NODETYPE_SCALAR_OR_MAP: # Flow nodes can follow tabs WS: { new: FULLMAPVALUE_INLINE } ALIAS: match: cb_alias EOL: { match: cb_send_alias_from_stack } WS: COLON: match: cb_insert_map_alias EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } QUESTION: match: cb_questionstart EOL: { new: FULLNODE } WS: { new: FULLNODE } QUOTED: match: cb_take_quoted EOL: { match: cb_send_scalar } WS: COLON: match: cb_insert_map EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } COLON: match: cb_insert_map EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } QUOTED_MULTILINE: match: cb_quoted_multiline EOL: { } PLAIN: match: cb_start_plain EOL: match: cb_send_scalar WS: COLON: match: cb_insert_map EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } COLON: match: cb_insert_map EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } PLAIN_MULTI: match: cb_send_plain_multi EOL: { } COLON: match: cb_insert_empty_map EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } BLOCK_SCALAR: match: cb_send_block_scalar EOL: { } FLOWSEQ_START: match: cb_start_flowseq new: NEWFLOWSEQ FLOWMAP_START: match: cb_start_flowmap new: NEWFLOWMAP DOC_END: match: cb_end_document EOL: { } DOC_START: match: cb_end_doc_start_document EOL: { new: FULLNODE } WS: { new: FULLNODE } EOL: new: NODETYPE_SCALAR_OR_MAP NODETYPE_COMPLEX: COLON: match: cb_complexcolon EOL: { new: FULLNODE } WS: { new: FULLNODE } DEFAULT: match: cb_empty_complexvalue new: NODETYPE_MAP EOL: new: NODETYPE_COMPLEX RULE_FULLFLOWSCALAR: ANCHOR: match: cb_anchor EOL: { new: RULE_FULLFLOWSCALAR_ANCHOR } DEFAULT: { new: RULE_FULLFLOWSCALAR_ANCHOR } TAG: match: cb_tag EOL: { new: RULE_FULLFLOWSCALAR_TAG } DEFAULT: { new: RULE_FULLFLOWSCALAR_TAG } DEFAULT: { new: RULE_FLOWSCALAR } RULE_FULLFLOWSCALAR_ANCHOR: WS: { new: RULE_FULLFLOWSCALAR_ANCHOR } TAG: match: cb_tag WS: { new: RULE_FLOWSCALAR } EOL: { new: RULE_FLOWSCALAR } DEFAULT: { new: RULE_FLOWSCALAR } RULE_FULLFLOWSCALAR_TAG: WS: { new: RULE_FULLFLOWSCALAR_TAG } ANCHOR: match: cb_anchor WS: { new: RULE_FLOWSCALAR } EOL: { new: RULE_FLOWSCALAR } DEFAULT: { new: RULE_FLOWSCALAR } RULE_FLOWSCALAR: FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ } FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP } ALIAS: { match: cb_send_alias, return: 1 } QUOTED: match: cb_take_quoted EOL: { match: cb_send_scalar } WS: { match: cb_send_scalar, return: 1 } DEFAULT: { match: cb_send_scalar, return: 1 } QUOTED_MULTILINE: { match: cb_quoted_multiline, return: 1 } PLAIN: match: cb_start_plain EOL: { match: cb_send_scalar } DEFAULT: { match: cb_send_scalar, return: 1 } PLAIN_MULTI: { match: cb_send_plain_multi, return: 1 } FLOW_COMMA: { match: cb_empty_flow_mapkey, return: 1 } FLOWMAP_END: match: cb_end_flowmap_empty return: 1 FLOWSEQ: FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ } FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP } ALIAS: { match: cb_send_flow_alias, new: FLOWSEQ_NEXT } PLAIN: match: cb_start_plain EOL: match: cb_send_scalar new: FLOWSEQ_NEXT DEFAULT: new: FLOWSEQ_MAYBE_KEY PLAIN_MULTI: { match: cb_send_plain_multi, new: FLOWSEQ_NEXT } QUOTED: match: cb_take_quoted EOL: match: cb_send_scalar new: FLOWSEQ_NEXT DEFAULT: new: FLOWSEQ_MAYBE_KEY QUOTED_MULTILINE: { match: cb_quoted_multiline, new: FLOWSEQ_NEXT } COLON: WS: match: cb_insert_empty_implicit_flowseq_map new: RULE_FULLFLOWSCALAR EOL: match: cb_insert_empty_implicit_flowseq_map new: RULE_FULLFLOWSCALAR FLOWSEQ_PROPS: FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ } FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP } PLAIN: match: cb_start_plain EOL: match: cb_send_scalar new: FLOWSEQ_NEXT DEFAULT: new: FLOWSEQ_MAYBE_KEY PLAIN_MULTI: { match: cb_send_plain_multi, new: FLOWSEQ_NEXT } QUOTED: match: cb_take_quoted EOL: match: cb_send_scalar new: FLOWSEQ_NEXT DEFAULT: new: FLOWSEQ_MAYBE_KEY QUOTED_MULTILINE: { match: cb_quoted_multiline, new: FLOWSEQ_NEXT } FLOW_COMMA: match: cb_empty_flowseq_comma return: 1 FLOWSEQ_END: match: cb_empty_flowseq_end return: 1 COLON: WS: match: cb_insert_empty_implicit_flowseq_map new: RULE_FULLFLOWSCALAR EOL: match: cb_insert_empty_implicit_flowseq_map new: RULE_FULLFLOWSCALAR FLOWSEQ_EMPTY: FLOW_COMMA: match: cb_empty_flowseq_comma return: 1 FLOWSEQ_END: match: cb_empty_flowseq_end return: 1 FLOWSEQ_NEXT: WS: { new: FLOWSEQ_NEXT } EOL: { new: FLOWSEQ_NEXT } FLOW_COMMA: match: cb_flow_comma return: 1 FLOWSEQ_END: match: cb_end_flowseq return: 1 FLOWSEQ_MAYBE_KEY: WS: { new: FLOWSEQ_MAYBE_KEY } COLON: WS: match: cb_insert_implicit_flowseq_map new: RULE_FULLFLOWSCALAR EOL: match: cb_insert_implicit_flowseq_map new: RULE_FULLFLOWSCALAR DEFAULT: match: cb_insert_implicit_flowseq_map new: RULE_FULLFLOWSCALAR DEFAULT: new: FLOWSEQ_NEXT FLOWMAP_CONTENT: FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ } FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP } ALIAS: { match: cb_send_alias, return: 1 } PLAIN: { match: cb_flowkey_plain, return: 1 } PLAIN_MULTI: { match: cb_send_plain_multi, return: 1 } QUOTED: { match: cb_flowkey_quoted, return: 1 } QUOTED_MULTILINE: { match: cb_quoted_multiline, return: 1 } COLON: WS: match: cb_empty_flow_mapkey new: RULE_FULLFLOWSCALAR EOL: match: cb_empty_flow_mapkey new: RULE_FULLFLOWSCALAR FLOWMAP_PROPS: FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ } FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP } PLAIN: { match: cb_flowkey_plain, return: 1 } PLAIN_MULTI: { match: cb_send_plain_multi, return: 1 } QUOTED: { match: cb_flowkey_quoted, return: 1 } QUOTED_MULTILINE: { match: cb_quoted_multiline, return: 1 } COLON: WS: match: cb_empty_flow_mapkey new: RULE_FULLFLOWSCALAR EOL: match: cb_empty_flow_mapkey new: RULE_FULLFLOWSCALAR FLOW_COMMA: match: cb_empty_flowmap_key_value return: 1 FLOWMAP_END: match: cb_end_empty_flowmap_key_value return: 1 FLOWMAP_EMPTYKEY: FLOW_COMMA: match: cb_empty_flowmap_key_value return: 1 FLOWMAP_END: match: cb_end_empty_flowmap_key_value return: 1 NEWFLOWSEQ: EOL: { new: NEWFLOWSEQ } WS: { new: NEWFLOWSEQ } ANCHOR: match: cb_anchor WS: { new: NEWFLOWSEQ_ANCHOR_SPC } EOL: { new: NEWFLOWSEQ_ANCHOR_SPC } DEFAULT: { new: NEWFLOWSEQ_ANCHOR } TAG: match: cb_tag WS: { new: NEWFLOWSEQ_TAG_SPC } EOL: { new: NEWFLOWSEQ_TAG_SPC } DEFAULT: { new: NEWFLOWSEQ_TAG } FLOWSEQ_END: match: cb_end_flowseq return: 1 DEFAULT: { new: FLOWSEQ } NODETYPE_FLOWSEQ: EOL: { new: NODETYPE_FLOWSEQ } WS: { new: NODETYPE_FLOWSEQ } FLOWSEQ_END: match: cb_end_flowseq return: 1 DEFAULT: { new: NEWFLOWSEQ } NODETYPE_FLOWMAPVALUE: WS: { new: NODETYPE_FLOWMAPVALUE } EOL: { new: NODETYPE_FLOWMAPVALUE } COLON: match: cb_flow_colon WS: { new: RULE_FULLFLOWSCALAR } EOL: { new: RULE_FULLFLOWSCALAR } DEFAULT: { new: RULE_FULLFLOWSCALAR } FLOW_COMMA: match: cb_empty_flowmap_value return: 1 FLOWMAP_END: match: cb_end_flowmap_empty return: 1 NEWFLOWSEQ_ANCHOR: DEFAULT: { new: FLOWSEQ_EMPTY } NEWFLOWSEQ_TAG: DEFAULT: { new: FLOWSEQ_EMPTY } NEWFLOWSEQ_ANCHOR_SPC: WS: { new: NEWFLOWSEQ_ANCHOR_SPC } EOL: { new: NEWFLOWSEQ_ANCHOR_SPC } TAG: match: cb_tag WS: { new: FLOWSEQ_PROPS } EOL: { new: FLOWSEQ_PROPS } DEFAULT: { new: FLOWSEQ_EMPTY } DEFAULT: { new: FLOWSEQ_PROPS } NEWFLOWSEQ_TAG_SPC: WS: { new: NEWFLOWSEQ_TAG_SPC } EOL: { new: NEWFLOWSEQ_TAG_SPC } ANCHOR: match: cb_anchor WS: { new: FLOWSEQ_PROPS } EOL: { new: FLOWSEQ_PROPS } DEFAULT: { new: FLOWSEQ_EMPTY } DEFAULT: { new: FLOWSEQ_PROPS } NEWFLOWMAP_ANCHOR: DEFAULT: { new: FLOWMAP_EMPTYKEY } NEWFLOWMAP_TAG: DEFAULT: { new: FLOWMAP_EMPTYKEY } NEWFLOWMAP_ANCHOR_SPC: WS: { new: NEWFLOWMAP_ANCHOR_SPC } EOL: { new: NEWFLOWMAP_ANCHOR_SPC } TAG: match: cb_tag WS: { new: FLOWMAP_PROPS } EOL: { new: FLOWMAP_PROPS } DEFAULT: { new: FLOWMAP_EMPTYKEY } DEFAULT: { new: FLOWMAP_PROPS } NEWFLOWMAP_TAG_SPC: WS: { new: NEWFLOWMAP_TAG_SPC } EOL: { new: NEWFLOWMAP_TAG_SPC } ANCHOR: match: cb_anchor WS: { new: FLOWMAP_PROPS } EOL: { new: FLOWMAP_PROPS } DEFAULT: { new: FLOWMAP_EMPTYKEY } DEFAULT: { new: FLOWMAP_PROPS } NEWFLOWMAP: EOL: { new: NEWFLOWMAP } WS: { new: NEWFLOWMAP } QUESTION: { match: cb_flow_question, new: FLOWMAP_EXPLICIT_KEY } DEFAULT: { new: FLOWMAP } FLOWMAP_EXPLICIT_KEY: WS: { new: FLOWMAP_EXPLICIT_KEY } EOL: { new: FLOWMAP_EXPLICIT_KEY } FLOWMAP_END: match: cb_end_empty_flowmap_key_value return: 1 FLOW_COMMA: match: cb_empty_flowmap_key_value return: 1 DEFAULT: { new: FLOWMAP } FLOWMAP: EOL: { new: FLOWMAP } WS: { new: FLOWMAP } ANCHOR: match: cb_anchor WS: { new: NEWFLOWMAP_ANCHOR_SPC } EOL: { new: NEWFLOWMAP_ANCHOR_SPC } DEFAULT: { new: NEWFLOWMAP_ANCHOR } TAG: match: cb_tag WS: { new: NEWFLOWMAP_TAG_SPC } EOL: { new: NEWFLOWMAP_TAG_SPC } DEFAULT: { new: NEWFLOWMAP_TAG } FLOWMAP_END: match: cb_end_flowmap return: 1 COLON: WS: match: cb_empty_flow_mapkey new: RULE_FULLFLOWSCALAR EOL: match: cb_empty_flow_mapkey new: RULE_FULLFLOWSCALAR DEFAULT: { new: FLOWMAP_CONTENT } NODETYPE_FLOWMAP: EOL: { new: NODETYPE_FLOWMAP } WS: { new: NODETYPE_FLOWMAP } FLOWMAP_END: match: cb_end_flowmap return: 1 FLOW_COMMA: { match: cb_flow_comma, new: NEWFLOWMAP } DEFAULT: { new: NEWFLOWMAP } END_FLOW: EOL: match: cb_end_outer_flow return: 1 RULE_MAPKEY: QUESTION: match: cb_question EOL: { new: FULLNODE } WS: { new: FULLNODE } ALIAS: match: cb_send_alias_key WS: COLON: EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } QUOTED: match: cb_take_quoted_key WS: COLON: EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } COLON: EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } PLAIN: match: cb_mapkey WS: COLON: match: cb_send_mapkey EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } COLON: match: cb_send_mapkey EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } COLON: match: cb_empty_mapkey EOL: { new: FULLNODE } WS: { new: FULLMAPVALUE_INLINE } DOC_END: match: cb_end_document EOL: { } DOC_START: match: cb_end_doc_start_document EOL: { new: FULLNODE } WS: { new: FULLNODE } EOL: new: RULE_MAPKEY NODETYPE_SEQ: DASH: match: cb_seqitem EOL: { new: FULLNODE } WS: { new: FULLNODE } DOC_END: match: cb_end_document EOL: { } DOC_START: match: cb_end_doc_start_document EOL: { new: FULLNODE } WS: { new: FULLNODE } EOL: new: NODETYPE_SEQ NODETYPE_MAP: ANCHOR: match: cb_anchor WS: TAG: match: cb_tag WS: { new: RULE_MAPKEY } DEFAULT: { new: RULE_MAPKEY } TAG: match: cb_tag WS: ANCHOR: match: cb_anchor WS: { new: RULE_MAPKEY } DEFAULT: { new: RULE_MAPKEY } DEFAULT: { new: RULE_MAPKEY } FULLNODE_ANCHOR: TAG: match: cb_tag EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR } WS: ANCHOR: match: cb_anchor WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } ANCHOR: match: cb_anchor WS: TAG: match: cb_tag WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } EOL: { new: FULLNODE_ANCHOR } DEFAULT: { new: NODETYPE_NODE } FULLNODE_TAG: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR } WS: TAG: match: cb_tag WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP, } TAG: match: cb_tag WS: ANCHOR: match: cb_anchor WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } EOL: { new: FULLNODE_TAG } DEFAULT: { new: NODETYPE_NODE } FULLNODE_TAG_ANCHOR: ANCHOR: match: cb_anchor WS: TAG: match: cb_tag WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } TAG: match: cb_tag WS: ANCHOR: match: cb_anchor WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } EOL: { new: FULLNODE_TAG_ANCHOR } DEFAULT: { new: NODETYPE_NODE } FULLNODE: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_ANCHOR } WS: TAG: match: cb_tag EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR } WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } TAG: match: cb_tag EOL: { match: cb_property_eol, new: FULLNODE_TAG } WS: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR } WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } EOL: { new: FULLNODE } DEFAULT: { new: NODETYPE_NODE } FULLMAPVALUE_INLINE: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_ANCHOR } WS: TAG: match: cb_tag EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR } WS: { new: NODETYPE_MAPVALUE_INLINE } DEFAULT: { new: NODETYPE_MAPVALUE_INLINE } TAG: match: cb_tag EOL: { match: cb_property_eol, new: FULLNODE_TAG } WS: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR } WS: { new: NODETYPE_MAPVALUE_INLINE } DEFAULT: { new: NODETYPE_MAPVALUE_INLINE } DEFAULT: { new: NODETYPE_MAPVALUE_INLINE } NODETYPE_MAPVALUE_INLINE: ALIAS: match: cb_send_alias EOL: { } QUOTED: match: cb_take_quoted EOL: { match: cb_send_scalar } QUOTED_MULTILINE: match: cb_quoted_multiline EOL: { } PLAIN: match: cb_start_plain EOL: match: cb_send_scalar PLAIN_MULTI: match: cb_send_plain_multi EOL: { } BLOCK_SCALAR: match: cb_send_block_scalar EOL: { } FLOWSEQ_START: match: cb_start_flowseq new: NEWFLOWSEQ FLOWMAP_START: match: cb_start_flowmap new: NEWFLOWMAP DOC_END: match: cb_end_document EOL: { } DOCUMENT_END: DOC_END: match: cb_end_document EOL: { } DOC_START: match: cb_end_doc_start_document EOL: { new: FULLNODE } WS: { new: FULLNODE } EOL: new: DOCUMENT_END STREAM: DOC_END: match: cb_end_document_empty EOL: { } DOC_START: match: cb_doc_start_explicit EOL: { new: FULLNODE } WS: { new: FULLNODE } YAML_DIRECTIVE: match: cb_set_yaml_version_directive EOL: { new: DIRECTIVE } WS: { new: DIRECTIVE } RESERVED_DIRECTIVE: match: cb_reserved_directive EOL: { new: DIRECTIVE } WS: { new: DIRECTIVE } TAG_DIRECTIVE: match: cb_tag_directive EOL: { new: DIRECTIVE } WS: { new: DIRECTIVE } EOL: new: STREAM DEFAULT: match: cb_doc_start_implicit new: FULLNODE DIRECTIVE: DOC_START: match: cb_doc_start_explicit EOL: { new: FULLNODE } WS: { new: FULLNODE } YAML_DIRECTIVE: match: cb_set_yaml_version_directive EOL: { new: DIRECTIVE } WS: { new: DIRECTIVE } RESERVED_DIRECTIVE: match: cb_reserved_directive EOL: { new: DIRECTIVE } WS: { new: DIRECTIVE } TAG_DIRECTIVE: match: cb_tag_directive EOL: { new: DIRECTIVE } WS: { new: DIRECTIVE } EOL: new: DIRECTIVE # END OF YAML INLINE perl v5.38.2 2024-02-14 YAML::PP::Grammar(3)