{
"name": "toml",
"rules": {
"document": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pair"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
}
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "table"
},
{
"type": "SYMBOL",
"name": "table_array_element"
}
]
}
}
]
},
"comment": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "[^\\u0000-\\u0008\\u000a-\\u001f\\u007f]"
}
}
]
}
}
},
"table": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dotted_key"
},
{
"type": "SYMBOL",
"name": "_key"
}
]
},
{
"type": "STRING",
"value": "]"
},
{
"type": "SYMBOL",
"name": "_line_ending_or_eof"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pair"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
}
}
]
},
"table_array_element": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "[["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dotted_key"
},
{
"type": "SYMBOL",
"name": "_key"
}
]
},
{
"type": "STRING",
"value": "]]"
},
{
"type": "SYMBOL",
"name": "_line_ending_or_eof"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pair"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
}
}
]
},
"pair": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_inline_pair"
},
{
"type": "SYMBOL",
"name": "_line_ending_or_eof"
}
]
},
"_inline_pair": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dotted_key"
},
{
"type": "SYMBOL",
"name": "_key"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_inline_value"
}
]
},
"_key": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "bare_key"
},
{
"type": "SYMBOL",
"name": "quoted_key"
}
]
},
"dotted_key": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dotted_key"
},
{
"type": "SYMBOL",
"name": "_key"
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_key"
}
]
},
"bare_key": {
"type": "PATTERN",
"value": "[A-Za-z0-9_-]+"
},
"quoted_key": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_basic_string"
},
{
"type": "SYMBOL",
"name": "_literal_string"
}
]
},
"_inline_value": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "integer"
},
{
"type": "SYMBOL",
"name": "float"
},
{
"type": "SYMBOL",
"name": "boolean"
},
{
"type": "SYMBOL",
"name": "offset_date_time"
},
{
"type": "SYMBOL",
"name": "local_date_time"
},
{
"type": "SYMBOL",
"name": "local_date"
},
{
"type": "SYMBOL",
"name": "local_time"
},
{
"type": "SYMBOL",
"name": "array"
},
{
"type": "SYMBOL",
"name": "inline_table"
}
]
},
"string": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_basic_string"
},
{
"type": "SYMBOL",
"name": "_multiline_basic_string"
},
{
"type": "SYMBOL",
"name": "_literal_string"
},
{
"type": "SYMBOL",
"name": "_multiline_literal_string"
}
]
},
"_basic_string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\u0000-\\u0008\\u000a-\\u001f\\u0022\\u005c\\u007f]"
}
}
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "\""
}
}
]
},
"_multiline_basic_string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\"\"\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\u0000-\\u0008\\u000a-\\u001f\\u0022\\u005c\\u007f]"
}
}
},
{
"type": "SYMBOL",
"name": "_multiline_basic_string_content"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "\\r?\\n"
}
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_escape_line_ending"
},
"named": true,
"value": "escape_sequence"
}
]
}
},
{
"type": "SYMBOL",
"name": "_multiline_basic_string_end"
}
]
},
"escape_sequence": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "\\\\([btnfr\"\\\\]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})"
}
},
"_escape_line_ending": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\\\"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
}
},
"_literal_string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\u0000-\\u0008\\u000a-\\u001f\\u0027\\u007f]"
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "'"
}
}
]
},
"_multiline_literal_string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'''"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\u0000-\\u0008\\u000a-\\u001f\\u0027\\u007f]"
}
}
},
{
"type": "SYMBOL",
"name": "_multiline_literal_string_content"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "\\r?\\n"
}
}
]
}
},
{
"type": "SYMBOL",
"name": "_multiline_literal_string_end"
}
]
},
"integer": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[+-]?(0|[1-9](_?[0-9])*)"
},
{
"type": "PATTERN",
"value": "0x[0-9a-fA-F](_?[0-9a-fA-F])*"
},
{
"type": "PATTERN",
"value": "0o[0-7](_?[0-7])*"
},
{
"type": "PATTERN",
"value": "0b[01](_?[01])*"
}
]
},
"float": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[+-]?(0|[1-9](_?[0-9])*)"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[.][0-9](_?[0-9])*"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[.][0-9](_?[0-9])*"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "PATTERN",
"value": "[+-]?[0-9](_?[0-9])*"
}
]
}
]
}
]
}
]
}
},
{
"type": "PATTERN",
"value": "[+-]?(inf|nan)"
}
]
},
"boolean": {
"type": "PATTERN",
"value": "true|false"
},
"offset_date_time": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])"
},
{
"type": "PATTERN",
"value": "[ tT]"
},
{
"type": "PATTERN",
"value": "([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)([.][0-9]+)?"
},
{
"type": "PATTERN",
"value": "([zZ])|([+-]([01][0-9]|2[0-3]):[0-5][0-9])"
}
]
}
},
"local_date_time": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])"
},
{
"type": "PATTERN",
"value": "[ tT]"
},
{
"type": "PATTERN",
"value": "([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)([.][0-9]+)?"
}
]
}
},
"local_date": {
"type": "PATTERN",
"value": "([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])"
},
"local_time": {
"type": "PATTERN",
"value": "([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)([.][0-9]+)?"
},
"array": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "\\r?\\n"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_inline_value"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "\\r?\\n"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "\\r?\\n"
}
},
{
"type": "SYMBOL",
"name": "_inline_value"
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "\\r?\\n"
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "REPEAT",
"content": {
"type": "PATTERN",
"value": "\\r?\\n"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"inline_table": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_inline_pair"
},
"named": true,
"value": "pair"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_inline_pair"
},
"named": true,
"value": "pair"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
},
"extras": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "PATTERN",
"value": "[ \\t]"
}
],
"conflicts": [],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "_line_ending_or_eof"
},
{
"type": "SYMBOL",
"name": "_multiline_basic_string_content"
},
{
"type": "SYMBOL",
"name": "_multiline_basic_string_end"
},
{
"type": "SYMBOL",
"name": "_multiline_literal_string_content"
},
{
"type": "SYMBOL",
"name": "_multiline_literal_string_end"
}
],
"inline": [],
"supertypes": []
}