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 --- RULE_ALIAS_KEY_OR_NODE: ALIAS: match: cb_start_alias EOL: { match: cb_got_scalar, new: END } WS: COLON: match: cb_insert_map EOL: { new: FULLNODE, return: 1 } WS: { new: FULLMAPVALUE, return: 1 } RULE_COMPLEX: QUESTION: match: cb_questionstart EOL: { new: FULLNODE, return: 1 } WS: { new: FULLNODE, return: 1 } NODETYPE_COMPLEX: COLON: match: cb_complexcolon EOL: { new: FULLNODE, return: 1 } WS: { new: FULLNODE, return: 1 } DEFAULT: match: cb_empty_complexvalue QUESTION: match: cb_question EOL: { new: FULLNODE, return: 1 } WS: { new: FULLNODE, return: 1 } DEFAULT: { new: FULL_MAPKEY } RULE_SINGLEQUOTED_KEY_OR_NODE: SINGLEQUOTE: match: cb_start_quoted SINGLEQUOTED: match: cb_take SINGLEQUOTE: EOL: { match: cb_got_scalar, new: END } COLON: match: cb_insert_map EOL: { new: FULLNODE, return: 1 } WS: { new: FULLMAPVALUE, return: 1 } WS: COLON: match: cb_insert_map EOL: { new: FULLNODE, return: 1 } WS: { new: FULLMAPVALUE, return: 1 } SINGLEQUOTED_LINE: match: cb_take EOL: { fetch: 1, new: MULTILINE_SINGLEQUOTED } MULTILINE_SINGLEQUOTED: SINGLEQUOTED_LINE: match: cb_take EOL: { fetch: 1, new: MULTILINE_SINGLEQUOTED } SINGLEQUOTE: EOL: { match: cb_got_scalar, new: END } EOL: { match: cb_empty_quoted_line, fetch: 1, new: MULTILINE_SINGLEQUOTED } RULE_DOUBLEQUOTED_KEY_OR_NODE: DOUBLEQUOTE: match: cb_start_quoted DOUBLEQUOTED: match: cb_take DOUBLEQUOTE: EOL: { match: cb_got_scalar, new: END } WS: COLON: match: cb_insert_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } DEFAULT: { match: cb_got_scalar, new: ERROR } COLON: match: cb_insert_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } DEFAULT: { new: ERROR } DOUBLEQUOTED_LINE: match: cb_take EOL: { fetch: 1, new: MULTILINE_DOUBLEQUOTED } MULTILINE_DOUBLEQUOTED: DOUBLEQUOTED_LINE: match: cb_take EOL: { fetch: 1, new: MULTILINE_DOUBLEQUOTED } DOUBLEQUOTE: EOL: { match: cb_got_scalar, new: END } EOL: { match: cb_empty_quoted_line, fetch: 1, new: MULTILINE_DOUBLEQUOTED } RULE_PLAIN_KEY_OR_NODE: SCALAR: match: cb_start_plain COMMENT: match: cb_got_scalar EOL: { new: END } EOL: { match: cb_got_multiscalar, new: END } WS: COLON: match: cb_insert_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } COLON: match: cb_insert_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } COLON: match: cb_insert_map EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } RULE_PLAIN: SCALAR: match: cb_start_plain COMMENT: match: cb_got_multiscalar EOL: { new: END } EOL: { match: cb_got_multiscalar, new: END } NODETYPE_MAP: QUESTION: match: cb_question EOL: { new: FULLNODE , return: 1} WS: { new: FULLNODE , return: 1} ALIAS: match: cb_mapkey_alias WS: COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } DOUBLEQUOTE: DOUBLEQUOTED: match: cb_doublequoted_key DOUBLEQUOTE: WS: COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } SINGLEQUOTE: SINGLEQUOTED: match: cb_singlequoted_key SINGLEQUOTE: WS: COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } SCALAR: match: cb_mapkey WS: COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } COLON: EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } COLON: match: cb_empty_mapkey EOL: { new: FULLNODE , return: 1} WS: { new: FULLMAPVALUE, return: 1 } RULE_SEQSTART: DASH: match: cb_seqstart EOL: { new: FULLNODE , return: 1} WS: { new: FULLNODE , return: 1} NODETYPE_SEQ: DASH: match: cb_seqitem EOL: { new: FULLNODE , return: 1} WS: { new: FULLNODE , return: 1} RULE_BLOCK_SCALAR: LITERAL: match: cb_block_scalar new: RULE_BLOCK_SCALAR_HEADER FOLDED: match: cb_block_scalar new: RULE_BLOCK_SCALAR_HEADER 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: { new: END, 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: { new: END, return: 1 } FULL_MAPKEY: ANCHOR: match: cb_anchor WS: TAG: match: cb_tag WS: { new: NODETYPE_MAP } DEFAULT: { new: NODETYPE_MAP } TAG: match: cb_tag WS: ANCHOR: match: cb_anchor WS: { new: NODETYPE_MAP } DEFAULT: { new: NODETYPE_MAP } DEFAULT: { new: NODETYPE_MAP } 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_NODE } DEFAULT: { new: NODETYPE_NODE } ANCHOR: match: cb_anchor WS: TAG: match: cb_tag WS: { new: NODETYPE_NODE } DEFAULT: { new: NODETYPE_NODE } 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_NODE } DEFAULT: { new: NODETYPE_NODE, } TAG: match: cb_tag WS: ANCHOR: match: cb_anchor WS: { new: NODETYPE_NODE } DEFAULT: { new: NODETYPE_NODE } DEFAULT: { new: NODETYPE_NODE } FULLNODE_TAG_ANCHOR: ANCHOR: match: cb_anchor WS: TAG: match: cb_tag WS: { new: NODETYPE_NODE } DEFAULT: { new: NODETYPE_NODE } TAG: match: cb_tag WS: ANCHOR: match: cb_anchor WS: { new: NODETYPE_NODE } DEFAULT: { new: NODETYPE_NODE } 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_NODE } DEFAULT: { new: NODETYPE_NODE } 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_NODE } DEFAULT: { new: NODETYPE_NODE } DEFAULT: { new: PREVIOUS } # 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.