YAML::PP::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 , return: 1} 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, return: 1 } WS: COLON: match: cb_insert_map_alias EOL: { new: FULLNODE, return: 1 } WS: { new: FULLMAPVALUE_INLINE } QUESTION: match: cb_questionstart EOL: { new: FULLNODE, return: 1 } WS: { new: FULLNODE } QUOTED: match: cb_take_quoted EOL: { match: cb_send_scalar, return: 1 } WS: COLON: match: cb_insert_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } COLON: match: cb_insert_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } QUOTED_MULTILINE: match: cb_quoted_multiline EOL: { return: 1 } PLAIN: match: cb_start_plain EOL: match: cb_send_scalar return: 1 WS: COLON: match: cb_insert_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } COLON: match: cb_insert_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } PLAIN_MULTI: match: cb_send_plain_multi EOL: { return: 1 } COLON: match: cb_insert_empty_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } BLOCK_SCALAR: match: cb_send_block_scalar EOL: { return: 1 } FLOWSEQ_START: match: cb_start_flowseq DEFAULT: { new: NEWFLOWSEQ } FLOWMAP_START: match: cb_start_flowmap DEFAULT: { new: NEWFLOWMAP } NODETYPE_COMPLEX: COLON: match: cb_complexcolon EOL: { new: FULLNODE, return: 1 } WS: { new: FULLNODE } DEFAULT: match: cb_empty_complexvalue new: NODETYPE_MAP RULE_FULLFLOWSCALAR: ANCHOR: match: cb_anchor EOL: { new: RULE_FULLFLOWSCALAR_ANCHOR, return: 1 } DEFAULT: { new: RULE_FULLFLOWSCALAR_ANCHOR } TAG: match: cb_tag EOL: { new: RULE_FULLFLOWSCALAR_TAG, return: 1 } 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, return: 1 } DEFAULT: { new: RULE_FLOWSCALAR } RULE_FULLFLOWSCALAR_TAG: WS: { new: RULE_FULLFLOWSCALAR_TAG } ANCHOR: match: cb_anchor WS: { new: RULE_FLOWSCALAR } EOL: { new: RULE_FLOWSCALAR, return: 1 } 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, return: 1 } 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, return: 1 } 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 EOL: { return: 1 } DEFAULT: { 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_flow_plain, new: FLOWSEQ_NEXT } PLAIN_MULTI: { match: cb_send_plain_multi, new: FLOWSEQ_NEXT } QUOTED: { match: cb_flowkey_quoted, new: FLOWSEQ_NEXT } QUOTED_MULTILINE: { match: cb_quoted_multiline, new: FLOWSEQ_NEXT } FLOWSEQ_NEXT: WS: { new: FLOWSEQ_NEXT } EOL: { new: FLOWSEQ_NEXT, return: 1 } FLOW_COMMA: match: cb_flow_comma return: 1 FLOWSEQ_END: match: cb_end_flowseq EOL: { return: 1 } DEFAULT: { return: 1 } FLOWMAP: 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 return: 1 NEWFLOWSEQ: EOL: { new: NEWFLOWSEQ, return: 1 } WS: { new: NEWFLOWSEQ } ANCHOR: match: cb_anchor WS: { new: NEWFLOWSEQ_ANCHOR } EOL: { new: NEWFLOWSEQ_ANCHOR, return: 1 } TAG: match: cb_tag WS: { new: NEWFLOWSEQ_TAG } EOL: { new: NEWFLOWSEQ_TAG, return: 1 } FLOWSEQ_END: match: cb_end_flowseq EOL: { return: 1 } DEFAULT: { return: 1 } DEFAULT: { new: FLOWSEQ } NODETYPE_FLOWSEQ: EOL: { new: NODETYPE_FLOWSEQ, return: 1 } WS: { new: NODETYPE_FLOWSEQ } FLOWSEQ_END: match: cb_end_flowseq EOL: { return: 1 } DEFAULT: { return: 1 } DEFAULT: { new: NEWFLOWSEQ } NODETYPE_FLOWMAPVALUE: WS: { new: NODETYPE_FLOWMAPVALUE } EOL: { new: NODETYPE_FLOWMAPVALUE, return: 1 } COLON: match: cb_flow_colon WS: { new: RULE_FULLFLOWSCALAR } EOL: { new: RULE_FULLFLOWSCALAR, return: 1 } DEFAULT: { new: RULE_FULLFLOWSCALAR } FLOW_COMMA: match: cb_empty_flowmap_value return: 1 FLOWMAP_END: match: cb_end_flowmap_empty EOL: { return: 1 } DEFAULT: { return: 1 } NEWFLOWSEQ_ANCHOR: WS: { new: NEWFLOWSEQ_ANCHOR } EOL: { new: NEWFLOWSEQ_ANCHOR, return: 1 } TAG: match: cb_tag WS: { new: FLOWSEQ } EOL: { new: FLOWSEQ, return: 1 } DEFAULT: { new: FLOWSEQ } NEWFLOWSEQ_TAG: WS: { new: NEWFLOWSEQ_TAG } EOL: { new: NEWFLOWSEQ_TAG, return: 1 } ANCHOR: match: cb_anchor WS: { new: FLOWSEQ } EOL: { new: FLOWSEQ, return: 1 } DEFAULT: { new: FLOWSEQ } NEWFLOWMAP_ANCHOR: WS: { new: NEWFLOWMAP_ANCHOR } EOL: { new: NEWFLOWMAP_ANCHOR, return: 1 } TAG: match: cb_tag WS: { new: FLOWMAP } EOL: { new: FLOWMAP, return: 1 } DEFAULT: { new: FLOWMAP } NEWFLOWMAP_TAG: WS: { new: NEWFLOWMAP_TAG } EOL: { new: NEWFLOWMAP_TAG, return: 1 } ANCHOR: match: cb_anchor WS: { new: FLOWMAP } EOL: { new: FLOWMAP, return: 1 } DEFAULT: { new: FLOWMAP } NEWFLOWMAP: EOL: { new: NEWFLOWMAP, return: 1 } WS: { new: NEWFLOWMAP } # TODO QUESTION: { match: cb_flow_question, new: NEWFLOWMAP } ANCHOR: match: cb_anchor WS: { new: NEWFLOWMAP_ANCHOR } EOL: { new: NEWFLOWMAP_ANCHOR, return: 1 } TAG: match: cb_tag WS: { new: NEWFLOWMAP_TAG } EOL: { new: NEWFLOWMAP_TAG, return: 1 } FLOWMAP_END: match: cb_end_flowmap EOL: { return: 1 } DEFAULT: { return: 1 } COLON: WS: match: cb_empty_flow_mapkey new: RULE_FULLFLOWSCALAR EOL: match: cb_empty_flow_mapkey new: RULE_FULLFLOWSCALAR return: 1 DEFAULT: { new: FLOWMAP } NODETYPE_FLOWMAP: EOL: { new: NODETYPE_FLOWMAP, return: 1 } WS: { new: NODETYPE_FLOWMAP } FLOWMAP_END: match: cb_end_flowmap EOL: { return: 1 } DEFAULT: { return: 1 } FLOW_COMMA: { match: cb_flow_comma, new: NEWFLOWMAP } DEFAULT: { new: NEWFLOWMAP } RULE_MAPKEY: QUESTION: match: cb_question EOL: { new: FULLNODE , return: 1} WS: { new: FULLNODE } ALIAS: match: cb_send_alias WS: COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } QUOTED: match: cb_take_quoted_key WS: COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } PLAIN: match: cb_mapkey WS: COLON: match: cb_send_mapkey EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } COLON: match: cb_send_mapkey EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } COLON: match: cb_empty_mapkey EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE_INLINE } NODETYPE_SEQ: DASH: match: cb_seqitem EOL: { new: FULLNODE , return: 1} WS: { new: FULLNODE } 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 , return: 1} 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 } DEFAULT: { new: NODETYPE_NODE } FULLNODE_TAG: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR , return: 1} 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 } 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 } DEFAULT: { new: NODETYPE_NODE } FULLNODE: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_ANCHOR , return: 1} WS: TAG: match: cb_tag EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR , return: 1} WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } TAG: match: cb_tag EOL: { match: cb_property_eol, new: FULLNODE_TAG , return: 1} WS: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR , return: 1} WS: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } DEFAULT: { new: NODETYPE_NODE } FULLMAPVALUE_INLINE: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_ANCHOR , return: 1} WS: TAG: match: cb_tag EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR , return: 1} WS: { new: NODETYPE_MAPVALUE_INLINE } DEFAULT: { new: NODETYPE_MAPVALUE_INLINE } TAG: match: cb_tag EOL: { match: cb_property_eol, new: FULLNODE_TAG , return: 1} WS: ANCHOR: match: cb_anchor EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR , return: 1} WS: { new: NODETYPE_MAPVALUE_INLINE } DEFAULT: { new: NODETYPE_MAPVALUE_INLINE } DEFAULT: { new: NODETYPE_MAPVALUE_INLINE } NODETYPE_MAPVALUE_INLINE: ALIAS: match: cb_send_alias EOL: { return: 1 } QUOTED: match: cb_take_quoted EOL: { match: cb_send_scalar, return: 1 } QUOTED_MULTILINE: match: cb_quoted_multiline EOL: { return: 1 } PLAIN: match: cb_start_plain EOL: match: cb_send_scalar return: 1 PLAIN_MULTI: match: cb_send_plain_multi EOL: { return: 1 } BLOCK_SCALAR: match: cb_send_block_scalar EOL: { return: 1 } FLOWSEQ_START: match: cb_start_flowseq DEFAULT: { new: NEWFLOWSEQ } FLOWMAP_START: match: cb_start_flowmap DEFAULT: { new: NEWFLOWMAP } # END OF YAML INLINE
To install YAML::PP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm YAML::PP
CPAN shell
perl -MCPAN -e shell install YAML::PP
For more information on module installation, please visit the detailed CPAN module installation guide.