Add record types

This commit is contained in:
Bruno BELANYI 2022-06-01 20:53:39 +02:00
parent 506fab8896
commit dd0af53fa0
5 changed files with 970 additions and 736 deletions

View file

@ -1114,6 +1114,10 @@
{
"type": "SYMBOL",
"name": "type_alias"
},
{
"type": "SYMBOL",
"name": "record_type"
}
]
},
@ -1121,6 +1125,77 @@
"type": "SYMBOL",
"name": "identifier"
},
"record_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_typed_field"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_typed_field"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_typed_field": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"function_declaration": {
"type": "SEQ",
"members": [
@ -1230,31 +1305,6 @@
}
]
},
"_typed_field": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"variable_declaration": {
"type": "SEQ",
"members": [

View file

@ -1543,6 +1543,32 @@
}
}
},
{
"type": "record_type",
"named": true,
"fields": {
"name": {
"multiple": true,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"type": {
"multiple": true,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "record_value",
"named": true,
@ -1811,6 +1837,10 @@
"multiple": false,
"required": true,
"types": [
{
"type": "record_type",
"named": true
},
{
"type": "type_alias",
"named": true

File diff suppressed because it is too large Load diff