struct type construction
This commit is contained in:
@@ -1149,6 +1149,10 @@
|
||||
"type": "SYMBOL",
|
||||
"name": "builtin_type"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "intrinsic_type"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "named_type"
|
||||
@@ -1231,6 +1235,36 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"intrinsic_type": {
|
||||
"type": "PREC",
|
||||
"value": 11,
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "FIELD",
|
||||
"name": "function",
|
||||
"content": {
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "STRING",
|
||||
"value": "struct_type!"
|
||||
},
|
||||
"named": true,
|
||||
"value": "identifier"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "FIELD",
|
||||
"name": "arguments",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "argument_list"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"optional_type": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
@@ -3105,6 +3139,10 @@
|
||||
"type": "SYMBOL",
|
||||
"name": "struct_literal"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "anonymous_record_literal"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "tuple_literal"
|
||||
@@ -4268,7 +4306,7 @@
|
||||
"name": "name",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "identifier"
|
||||
"name": "_field_name"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -4305,6 +4343,95 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"anonymous_record_literal": {
|
||||
"type": "PREC",
|
||||
"value": 2,
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "{"
|
||||
},
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_newline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "keyed_field_initializer"
|
||||
},
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_newline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": ","
|
||||
},
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_newline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "keyed_field_initializer"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_newline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": ","
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_newline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "}"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"tuple_literal": {
|
||||
"type": "PREC",
|
||||
"value": 1,
|
||||
@@ -4349,25 +4476,17 @@
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": ","
|
||||
},
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_newline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_newline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
@@ -4379,6 +4498,10 @@
|
||||
"type": "SYMBOL",
|
||||
"name": "_newline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -4387,8 +4510,20 @@
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "_newline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": ","
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
@@ -4564,7 +4699,7 @@
|
||||
"name": "name",
|
||||
"content": {
|
||||
"type": "SYMBOL",
|
||||
"name": "identifier"
|
||||
"name": "_field_name"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -4876,6 +5011,305 @@
|
||||
"type": "STRING",
|
||||
"value": "_"
|
||||
},
|
||||
"_field_name": {
|
||||
"type": "PREC",
|
||||
"value": 2,
|
||||
"content": {
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "identifier"
|
||||
},
|
||||
{
|
||||
"type": "ALIAS",
|
||||
"content": {
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "test"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "func"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_func"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "struct"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_struct"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "opaque"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "union"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "enum"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "distinct"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "alias"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "import"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "hide"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "return"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "try"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "catch"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "mut"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "none"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "undefined"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "orelse"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "and"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "or"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "xor"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "if"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "while"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "for"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "expand"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "break"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "continue"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "defer"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "errdefer"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "yield"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "match"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "else"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "true"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "void"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "type"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "anyopaque"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "bool"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "int"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "uint"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "float"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "range"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "i8"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "i16"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "i32"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "i64"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "u8"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "u16"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "u32"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "u64"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "isize"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "usize"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "f32"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "f64"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_char"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_schar"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_uchar"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_short"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_ushort"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_int"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_uint"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_long"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_ulong"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_longlong"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_ulonglong"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_float"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_double"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "c_longdouble"
|
||||
}
|
||||
]
|
||||
},
|
||||
"named": true,
|
||||
"value": "identifier"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"identifier": {
|
||||
"type": "PATTERN",
|
||||
"value": "[A-Za-z_][A-Za-z0-9_]*"
|
||||
@@ -5029,15 +5463,13 @@
|
||||
],
|
||||
[
|
||||
"block",
|
||||
"tuple_literal"
|
||||
"tuple_literal",
|
||||
"anonymous_record_literal"
|
||||
],
|
||||
[
|
||||
"field_initializer",
|
||||
"expression"
|
||||
],
|
||||
[
|
||||
"tuple_literal"
|
||||
],
|
||||
[
|
||||
"capture_list",
|
||||
"expression"
|
||||
|
||||
Reference in New Issue
Block a user