add collections; improve identifier

This commit is contained in:
mhoffm
2021-06-08 00:04:05 +02:00
parent e67d183d71
commit fdb45d9ddd
4 changed files with 2740 additions and 493 deletions

View File

@@ -104,6 +104,10 @@
"type": "SYMBOL",
"name": "literal_value"
},
{
"type": "SYMBOL",
"name": "collection_value"
},
{
"type": "SYMBOL",
"name": "variable_expr"
@@ -156,6 +160,146 @@
"type": "PATTERN",
"value": "[0-9]+(\\.[0-9]+([eE][-+]?[0-9]+)?)?"
},
"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"
}
]
},
"variable_expr": {
"type": "SYMBOL",
"name": "identifier"
@@ -178,8 +322,36 @@
]
},
"identifier": {
"type": "PATTERN",
"value": "\\w+"
"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}"
}
]
}
}
]
}
},
"comment": {
"type": "TOKEN",
@@ -246,6 +418,10 @@
"conflicts": [
[
"body"
],
[
"object_elem",
"variable_expr"
]
],
"precedences": [],

View File

@@ -60,6 +60,25 @@
]
}
},
{
"type": "collection_value",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "object",
"named": true
},
{
"type": "tuple",
"named": true
}
]
}
},
{
"type": "config_file",
"named": true,
@@ -83,6 +102,10 @@
"multiple": false,
"required": true,
"types": [
{
"type": "collection_value",
"named": true
},
{
"type": "expression",
"named": true
@@ -113,11 +136,6 @@
]
}
},
{
"type": "identifier",
"named": true,
"fields": {}
},
{
"type": "literal_value",
"named": true,
@@ -137,11 +155,60 @@
]
}
},
{
"type": "object",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "object_elem",
"named": true
}
]
}
},
{
"type": "object_elem",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "string_lit",
"named": true,
"fields": {}
},
{
"type": "tuple",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "variable_expr",
"named": true,
@@ -169,10 +236,26 @@
"type": ")",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": ":",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "comment",
"named": true
@@ -181,6 +264,10 @@
"type": "false",
"named": false
},
{
"type": "identifier",
"named": true
},
{
"type": "null",
"named": false

File diff suppressed because it is too large Load Diff