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: { node: FULLNODE , return: 1} WS: { node: FULLNODE } DEFAULT: { new: NODETYPE_SCALAR_OR_MAP } NODETYPE_SCALAR_OR_MAP: ALIAS: match: cb_alias EOL: { match: cb_send_alias_from_stack, return: 1 } WS: COLON: match: cb_insert_map_alias EOL: { node: FULLNODE, return: 1 } WS: { node: FULLMAPVALUE_INLINE } QUESTION: match: cb_questionstart EOL: { node: FULLNODE, return: 1 } WS: { node: FULLNODE, return: 1 } SINGLEQUOTE: match: cb_start_quoted SINGLEQUOTED: match: cb_take SINGLEQUOTE: EOL: { match: cb_send_scalar, return: 1 } COLON: match: cb_insert_map EOL: { node: FULLNODE, return: 1 } WS: { node: FULLMAPVALUE_INLINE, return: 1 } WS: COLON: match: cb_insert_map EOL: { node: FULLNODE, return: 1 } WS: { node: FULLMAPVALUE_INLINE, return: 1 } SINGLEQUOTED_LINE: match: cb_take EOL: { match: cb_fetch_tokens_quoted, new: MULTILINE_SINGLEQUOTED } DOUBLEQUOTE: match: cb_start_quoted DOUBLEQUOTED: match: cb_take DOUBLEQUOTE: EOL: { match: cb_send_scalar, return: 1 } WS: COLON: match: cb_insert_map EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } COLON: match: cb_insert_map EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } DOUBLEQUOTED_LINE: match: cb_take EOL: { match: cb_fetch_tokens_quoted, new: MULTILINE_DOUBLEQUOTED } PLAIN: match: cb_start_plain COMMENT: match: cb_send_scalar EOL: { return: 1 } EOL: { match: cb_fetch_tokens_plain, new: RULE_PLAIN_MULTI } WS: COLON: match: cb_insert_map EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } COLON: match: cb_insert_map EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } COLON: match: cb_insert_empty_map EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } LITERAL: match: cb_block_scalar new: RULE_BLOCK_SCALAR_HEADER FOLDED: match: cb_block_scalar new: RULE_BLOCK_SCALAR_HEADER 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: { node: FULLNODE, return: 1 } WS: { node: FULLNODE, return: 1 } DEFAULT: match: cb_empty_complexvalue new: NODETYPE_MAP MULTILINE_SINGLEQUOTED: SINGLEQUOTED_LINE: match: cb_take EOL: { match: cb_fetch_tokens_quoted, new: MULTILINE_SINGLEQUOTED } SINGLEQUOTE: EOL: { match: cb_send_scalar, return: 1 } DEFAULT: { match: cb_send_scalar, return: 1 } EOL: { match: cb_empty_quoted_line, new: MULTILINE_SINGLEQUOTED } MULTILINE_DOUBLEQUOTED: DOUBLEQUOTED_LINE: match: cb_take EOL: { match: cb_fetch_tokens_quoted, new: MULTILINE_DOUBLEQUOTED } DOUBLEQUOTE: EOL: { match: cb_send_scalar, return: 1 } DEFAULT: { match: cb_send_scalar, return: 1 } EOL: { match: cb_empty_quoted_line, new: MULTILINE_DOUBLEQUOTED } RULE_FULLFLOWSCALAR: ANCHOR: match: cb_anchor WS: TAG: match: cb_tag WS: { new: RULE_FLOWSCALAR } DEFAULT: { new: RULE_FLOWSCALAR } EOL: { new: RULE_FULLFLOWSCALAR_ANCHOR, return: 1 } DEFAULT: { new: RULE_FLOWSCALAR } TAG: match: cb_tag WS: ANCHOR: match: cb_anchor WS: { new: RULE_FLOWSCALAR } DEFAULT: { new: RULE_FLOWSCALAR } EOL: { new: RULE_FULLFLOWSCALAR_TAG, return: 1 } DEFAULT: { new: RULE_FLOWSCALAR } DEFAULT: { new: RULE_FLOWSCALAR } 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 DEFAULT: { new: NEWFLOWSEQ } FLOWMAP_START: match: cb_start_flowmap DEFAULT: { new: NEWFLOWMAP } ALIAS: match: cb_send_alias return: 1 SINGLEQUOTE: match: cb_start_quoted SINGLEQUOTED: match: cb_take SINGLEQUOTE: EOL: { match: cb_send_scalar, return: 1 } WS: { match: cb_send_scalar, return: 1 } SINGLEQUOTED_LINE: match: cb_take EOL: { match: cb_fetch_tokens_quoted, new: MULTILINE_SINGLEQUOTED } DOUBLEQUOTE: match: cb_start_quoted DOUBLEQUOTED: match: cb_take DOUBLEQUOTE: EOL: { match: cb_send_scalar, return: 1 } WS: { match: cb_send_scalar, return: 1 } DEFAULT: { match: cb_send_scalar, return: 1 } DOUBLEQUOTED_LINE: match: cb_take EOL: { match: cb_fetch_tokens_quoted, new: MULTILINE_DOUBLEQUOTED } PLAIN: match: cb_start_plain EOL: { match: cb_fetch_tokens_plain, new: RULE_PLAIN_MULTI_FLOW } COMMENT: match: cb_send_scalar return: 1 DEFAULT: match: cb_send_scalar return: 1 # DEFAULT: { match: cb_empty_flowmap_value, return: 1 } NEWFLOWSEQ: EOL: { new: NEWFLOWSEQ, return: 1 } WS: { new: NEWFLOWSEQ } FLOWSEQ_END: match: cb_end_flowseq EOL: { return: 1 } DEFAULT: { return: 1 } DEFAULT: { new: RULE_FULLFLOWSCALAR } NODETYPE_FLOWSEQ: EOL: { new: NODETYPE_FLOWSEQ, return: 1 } WS: { new: NODETYPE_FLOWSEQ } FLOWSEQ_END: match: cb_end_flowseq EOL: { return: 1 } DEFAULT: { return: 1 } FLOW_COMMA: { match: cb_flow_comma, new: NEWFLOWSEQ } NODETYPE_FLOWMAPVALUE: COLON: match: cb_flow_colon WS: { new: RULE_FULLFLOWSCALAR } EOL: { new: RULE_FULLFLOWSCALAR, return: 1 } DEFAULT: { new: RULE_FULLFLOWSCALAR } WS: { new: NODETYPE_FLOWMAPVALUE } DEFAULT: match: cb_empty_flowmap_value return: 1 NEWFLOWMAP: EOL: { new: NEWFLOWMAP, return: 1 } WS: { new: NEWFLOWMAP } FLOWMAP_END: match: cb_end_flowmap EOL: { return: 1 } DEFAULT: { return: 1 } DEFAULT: { new: RULE_FULLFLOWSCALAR } 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: RULE_FULLFLOWSCALAR } RULE_PLAIN_MULTI: END: { match: cb_send_scalar, return: 1 } EOL: { match: cb_empty_plain, new: RULE_PLAIN_MULTI } WS: PLAIN: match: cb_take EOL: { match: cb_fetch_tokens_plain, new: RULE_PLAIN_MULTI } COMMENT: EOL: { match: cb_send_scalar, return: 1 } INDENT: WS: PLAIN: match: cb_take EOL: { match: cb_fetch_tokens_plain, new: RULE_PLAIN_MULTI } COMMENT: EOL: { match: cb_send_scalar, return: 1 } RULE_PLAIN_MULTI_FLOW: END: { match: cb_send_scalar, return: 1 } EOL: { match: cb_empty_plain, new: RULE_PLAIN_MULTI } WS: PLAIN: match: cb_take EOL: { match: cb_fetch_tokens_plain, new: RULE_PLAIN_MULTI } COMMENT: EOL: { match: cb_send_scalar, return: 1 } INDENT: WS: PLAIN: match: cb_take EOL: { match: cb_fetch_tokens_plain, new: RULE_PLAIN_MULTI_FLOW } COMMENT: EOL: { match: cb_send_scalar, return: 1 } DEFAULT: { match: cb_send_scalar, return: 1 } DEFAULT: { match: cb_send_scalar, return: 1 } DEFAULT: { match: cb_send_scalar, return: 1 } RULE_MAPKEY: QUESTION: match: cb_question EOL: { node: FULLNODE , return: 1} WS: { node: FULLNODE , return: 1} ALIAS: match: cb_send_alias WS: COLON: EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } DOUBLEQUOTE: match: cb_start_quoted DOUBLEQUOTED: match: cb_take DOUBLEQUOTE: match: cb_send_mapkey WS: COLON: EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } COLON: EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } SINGLEQUOTE: match: cb_start_quoted SINGLEQUOTED: match: cb_take SINGLEQUOTE: match: cb_send_mapkey WS: COLON: EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } COLON: EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } PLAIN: match: cb_mapkey WS: COLON: match: cb_send_mapkey EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } COLON: match: cb_send_mapkey EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } COLON: match: cb_empty_mapkey EOL: { node: FULLNODE , return: 1} WS: { node: FULLMAPVALUE_INLINE, return: 1 } NODETYPE_SEQ: DASH: match: cb_seqitem EOL: { node: FULLNODE , return: 1} WS: { node: FULLNODE } RULE_BLOCK_SCALAR_HEADER: BLOCK_SCALAR_INDENT: match: cb_add_block_scalar_indent BLOCK_SCALAR_CHOMP: match: cb_add_block_scalar_chomp EOL: match: cb_fetch_tokens_block_scalar new: RULE_BLOCK_SCALAR_START EOL: match: cb_fetch_tokens_block_scalar new: RULE_BLOCK_SCALAR_START BLOCK_SCALAR_CHOMP: match: cb_add_block_scalar_chomp BLOCK_SCALAR_INDENT: match: cb_add_block_scalar_indent EOL: match: cb_fetch_tokens_block_scalar new: RULE_BLOCK_SCALAR_START EOL: match: cb_fetch_tokens_block_scalar new: RULE_BLOCK_SCALAR_START EOL: match: cb_fetch_tokens_block_scalar new: RULE_BLOCK_SCALAR_START RULE_BLOCK_SCALAR_START: EOL: { match: cb_block_scalar_empty_line, new: RULE_BLOCK_SCALAR_START } INDENT: match: cb_block_scalar_start_indent EOL: { match: cb_block_scalar_empty_line, new: RULE_BLOCK_SCALAR_START } BLOCK_SCALAR_CONTENT: match: cb_block_scalar_start_content EOL: { match: cb_fetch_tokens_block_scalar, new: RULE_BLOCK_SCALAR_CONTENT } END: { match: cb_send_scalar, return: 1 } RULE_BLOCK_SCALAR_CONTENT: EOL: { match: cb_block_scalar_empty_line, new: RULE_BLOCK_SCALAR_CONTENT } INDENT: EOL: { match: cb_block_scalar_empty_line, new: RULE_BLOCK_SCALAR_CONTENT } BLOCK_SCALAR_CONTENT: match: cb_block_scalar_content EOL: { match: cb_fetch_tokens_block_scalar, new: RULE_BLOCK_SCALAR_CONTENT } END: { match: cb_send_scalar, return: 1 } 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 } SINGLEQUOTE: match: cb_start_quoted SINGLEQUOTED: match: cb_take SINGLEQUOTE: EOL: { match: cb_send_scalar, return: 1 } SINGLEQUOTED_LINE: match: cb_take EOL: { match: cb_fetch_tokens_quoted, new: MULTILINE_SINGLEQUOTED } DOUBLEQUOTE: match: cb_start_quoted DOUBLEQUOTED: match: cb_take DOUBLEQUOTE: EOL: { match: cb_send_scalar, return: 1 } DOUBLEQUOTED_LINE: match: cb_take EOL: { match: cb_fetch_tokens_quoted, new: MULTILINE_DOUBLEQUOTED } PLAIN: match: cb_start_plain COMMENT: match: cb_send_scalar EOL: { return: 1 } EOL: { match: cb_fetch_tokens_plain, new: RULE_PLAIN_MULTI } LITERAL: match: cb_block_scalar new: RULE_BLOCK_SCALAR_HEADER FOLDED: match: cb_block_scalar new: RULE_BLOCK_SCALAR_HEADER 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.