NAME
YAML::PP::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
---
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