2018-06-11 20:18:00 +00:00
|
|
|
{
|
|
|
|
"name": "html",
|
|
|
|
"rules": {
|
|
|
|
"fragment": {
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_node"
|
|
|
|
}
|
|
|
|
},
|
2018-06-11 23:56:33 +00:00
|
|
|
"doctype": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<!"
|
|
|
|
},
|
|
|
|
{
|
2018-08-30 18:28:22 +00:00
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[Dd][Oo][Cc][Tt][Yy][Pp][Ee]"
|
|
|
|
},
|
|
|
|
"named": false,
|
|
|
|
"value": "doctype"
|
2018-06-11 23:56:33 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[^>]+"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ">"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-06-11 20:18:00 +00:00
|
|
|
"_node": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
2018-06-11 23:56:33 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "doctype"
|
|
|
|
},
|
2018-06-11 20:18:00 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "text"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-06-12 19:20:13 +00:00
|
|
|
"name": "element"
|
2018-06-11 20:18:00 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-06-12 19:20:13 +00:00
|
|
|
"name": "erroneous_end_tag"
|
2018-06-11 23:56:33 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "raw_element"
|
2018-06-11 20:18:00 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"element": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-06-11 22:12:01 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "start_tag"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_node"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "end_tag"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_implicit_end_tag"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
2018-06-11 20:18:00 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "self_closing_tag"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-06-11 23:56:33 +00:00
|
|
|
"raw_element": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_raw_start_tag"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "start_tag"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-06-12 19:20:13 +00:00
|
|
|
"name": "raw_text"
|
2018-06-11 23:56:33 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "end_tag"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-06-11 20:18:00 +00:00
|
|
|
"start_tag": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-06-12 19:20:13 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": "<"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_start_tag_name"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "tag_name"
|
2018-06-11 20:18:00 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "attribute"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2018-06-12 19:20:13 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": ">"
|
2018-06-11 20:18:00 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-06-11 23:56:33 +00:00
|
|
|
"_raw_start_tag": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-06-12 19:20:13 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": "<"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_start_raw_tag_name"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "tag_name"
|
2018-06-11 23:56:33 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "attribute"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2018-06-12 19:20:13 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": ">"
|
2018-06-11 23:56:33 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-06-11 20:18:00 +00:00
|
|
|
"self_closing_tag": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-06-12 19:20:13 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": "<"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_start_tag_name"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "tag_name"
|
2018-06-11 20:18:00 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "attribute"
|
|
|
|
}
|
|
|
|
},
|
2018-06-12 19:20:13 +00:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "/>"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"end_tag": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "</"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_end_tag_name"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "tag_name"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ">"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"erroneous_end_tag": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "</"
|
|
|
|
},
|
2018-06-11 20:18:00 +00:00
|
|
|
{
|
2018-06-11 22:12:01 +00:00
|
|
|
"type": "SYMBOL",
|
2018-06-12 19:20:13 +00:00
|
|
|
"name": "erroneous_end_tag_name"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ">"
|
2018-06-11 20:18:00 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"attribute": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-06-11 22:36:18 +00:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "attribute_name"
|
2018-06-11 20:18:00 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-06-11 22:36:18 +00:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "attribute_value"
|
2018-06-11 20:18:00 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "quoted_attribute_value"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-06-11 22:36:18 +00:00
|
|
|
"attribute_name": {
|
2018-06-11 20:18:00 +00:00
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[^<>\"'\\/=\\s]+"
|
|
|
|
},
|
2018-06-11 22:36:18 +00:00
|
|
|
"attribute_value": {
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[^<>\"'=\\s]+"
|
|
|
|
},
|
2018-06-11 20:18:00 +00:00
|
|
|
"quoted_attribute_value": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "'"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[^']+"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "attribute_value"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "'"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\""
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[^\"]+"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "attribute_value"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\""
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"text": {
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[^<>]+"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"extras": [
|
2018-06-11 22:36:18 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "comment"
|
|
|
|
},
|
2018-06-11 20:18:00 +00:00
|
|
|
{
|
|
|
|
"type": "PATTERN",
|
2018-06-11 22:36:18 +00:00
|
|
|
"value": "\\s+"
|
2018-06-11 20:18:00 +00:00
|
|
|
}
|
|
|
|
],
|
|
|
|
"conflicts": [],
|
2018-06-11 22:12:01 +00:00
|
|
|
"externals": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-06-12 19:20:13 +00:00
|
|
|
"name": "_start_tag_name"
|
2018-06-11 22:12:01 +00:00
|
|
|
},
|
2018-06-11 23:56:33 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-06-12 19:20:13 +00:00
|
|
|
"name": "_start_raw_tag_name"
|
2018-06-11 23:56:33 +00:00
|
|
|
},
|
2018-06-11 22:12:01 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-06-12 19:20:13 +00:00
|
|
|
"name": "_end_tag_name"
|
2018-06-11 22:12:01 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-06-12 19:20:13 +00:00
|
|
|
"name": "erroneous_end_tag_name"
|
2018-06-11 22:12:01 +00:00
|
|
|
},
|
|
|
|
{
|
2018-06-12 19:20:13 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": "/>"
|
2018-06-11 22:12:01 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_implicit_end_tag"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-06-12 19:20:13 +00:00
|
|
|
"name": "raw_text"
|
2018-06-11 23:56:33 +00:00
|
|
|
},
|
2018-06-11 22:36:18 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "comment"
|
2018-06-11 22:12:01 +00:00
|
|
|
}
|
|
|
|
],
|
2018-06-11 20:18:00 +00:00
|
|
|
"inline": []
|
|
|
|
}
|