2021-06-07 20:50:00 +02:00
|
|
|
{
|
|
|
|
|
"name": "hcl",
|
|
|
|
|
"rules": {
|
|
|
|
|
"config_file": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "body"
|
|
|
|
|
},
|
|
|
|
|
"body": {
|
|
|
|
|
"type": "REPEAT1",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "attribute"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "block"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"attribute": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
2021-06-08 01:28:18 +02:00
|
|
|
"type": "FIELD",
|
|
|
|
|
"name": "name",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "identifier"
|
|
|
|
|
}
|
2021-06-07 20:50:00 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "="
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expression"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"block": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
2021-06-08 01:08:07 +02:00
|
|
|
"type": "FIELD",
|
2021-06-08 01:28:18 +02:00
|
|
|
"name": "name",
|
2021-06-08 01:08:07 +02:00
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "identifier"
|
|
|
|
|
}
|
2021-06-07 20:50:00 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "string_lit"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "identifier"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "{"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "body"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "BLANK"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "}"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
2021-06-08 00:12:25 +02:00
|
|
|
"identifier": {
|
|
|
|
|
"type": "TOKEN",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": "\\p{L}"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": "\\p{L}"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": "[0-9]"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": "\\p{Pc}"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
2021-06-07 20:50:00 +02:00
|
|
|
"expression": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expr_term"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"expr_term": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "literal_value"
|
|
|
|
|
},
|
2021-06-08 00:04:05 +02:00
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "collection_value"
|
|
|
|
|
},
|
2021-06-07 20:50:00 +02:00
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "variable_expr"
|
|
|
|
|
},
|
2021-06-08 18:50:12 +02:00
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expr_term"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "index"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expr_term"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "get_attr"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expr_term"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "splat"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
2021-06-07 20:50:00 +02:00
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "("
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expression"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": ")"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"literal_value": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "numeric_lit"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "string_lit"
|
|
|
|
|
},
|
2021-06-08 00:45:23 +02:00
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "bool_lit"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "null_lit"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"numeric_lit": {
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": "[0-9]+(\\.[0-9]+([eE][-+]?[0-9]+)?)?"
|
|
|
|
|
},
|
|
|
|
|
"string_lit": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
2021-06-07 20:50:00 +02:00
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
2021-06-08 00:45:23 +02:00
|
|
|
"value": "\""
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
2021-06-08 01:08:07 +02:00
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": "[^\\\\\"\\n]"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": "\\\\(.|\\n)"
|
|
|
|
|
}
|
|
|
|
|
]
|
2021-06-08 00:45:23 +02:00
|
|
|
}
|
2021-06-07 20:50:00 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
2021-06-08 00:45:23 +02:00
|
|
|
"value": "\""
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"bool_lit": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "true"
|
2021-06-07 20:50:00 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
2021-06-08 00:45:23 +02:00
|
|
|
"value": "false"
|
2021-06-07 20:50:00 +02:00
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
2021-06-08 00:45:23 +02:00
|
|
|
"null_lit": {
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "null"
|
2021-06-07 20:50:00 +02:00
|
|
|
},
|
2021-06-08 00:04:05 +02:00
|
|
|
"collection_value": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "tuple"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "object"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"tuple": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "["
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expression"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": ","
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expression"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "BLANK"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "]"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"object": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "{"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "object_elem"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": ","
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "object_elem"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "BLANK"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "}"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"object_elem": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "identifier"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expression"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "="
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": ":"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expression"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
2021-06-08 18:50:12 +02:00
|
|
|
"index": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "["
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "expression"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "]"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"get_attr": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "."
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "identifier"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"splat": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "attr_splat"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "full_splat"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"attr_splat": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "."
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "*"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "get_attr"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"full_splat": {
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "["
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "*"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "]"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "REPEAT",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "get_attr"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "index"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
2021-06-07 20:50:00 +02:00
|
|
|
"variable_expr": {
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "identifier"
|
|
|
|
|
},
|
|
|
|
|
"comment": {
|
|
|
|
|
"type": "TOKEN",
|
|
|
|
|
"content": {
|
|
|
|
|
"type": "CHOICE",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "#"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": ".*"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "//"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": ".*"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "SEQ",
|
|
|
|
|
"members": [
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "/*"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "STRING",
|
|
|
|
|
"value": "/"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"extras": [
|
|
|
|
|
{
|
|
|
|
|
"type": "SYMBOL",
|
|
|
|
|
"name": "comment"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "PATTERN",
|
|
|
|
|
"value": "\\s"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"conflicts": [
|
|
|
|
|
[
|
|
|
|
|
"body"
|
2021-06-08 00:04:05 +02:00
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"object_elem",
|
|
|
|
|
"variable_expr"
|
2021-06-08 18:50:12 +02:00
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"attr_splat"
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"full_splat"
|
2021-06-07 20:50:00 +02:00
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
"precedences": [],
|
|
|
|
|
"externals": [],
|
|
|
|
|
"inline": [],
|
|
|
|
|
"supertypes": []
|
|
|
|
|
}
|
|
|
|
|
|