Add missing annotation fields
This commit is contained in:
parent
4d07e3441b
commit
11fd4244c3
@ -43,19 +43,22 @@ Declaration
|
|||||||
===========
|
===========
|
||||||
|
|
||||||
var int: simple_decl;
|
var int: simple_decl;
|
||||||
|
var int: with_ann ::annotated;
|
||||||
array[X, 1..23] of var int: simple_decl = some_call(X);
|
array[X, 1..23] of var int: simple_decl = some_call(X);
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(declaration (type_base (primitive_type)) (identifier))
|
(declaration type: (type_base (primitive_type)) name: (identifier))
|
||||||
(declaration (array_type (type_base (identifier)) (type_base (infix_operator (integer_literal) (integer_literal))) (type_base (primitive_type))) (identifier) (call (identifier) (identifier))))
|
(declaration type: (type_base (primitive_type)) name: (identifier) annotations: (identifier))
|
||||||
|
(declaration type: (array_type (type_base (identifier)) (type_base (infix_operator left: (integer_literal) right: (integer_literal))) (type_base (primitive_type))) name: (identifier) expr: (call name: (identifier) arguments: (identifier))))
|
||||||
|
|
||||||
===========
|
===========
|
||||||
Enumeration
|
Enumeration
|
||||||
===========
|
===========
|
||||||
|
|
||||||
enum in_dzn;
|
enum in_dzn;
|
||||||
|
enum with_ann ::annotated;
|
||||||
enum empty = {};
|
enum empty = {};
|
||||||
enum with_members = {a, b, c};
|
enum with_members = {a, b, c};
|
||||||
|
|
||||||
@ -63,6 +66,7 @@ enum with_members = {a, b, c};
|
|||||||
|
|
||||||
(source_file
|
(source_file
|
||||||
(enumeration name: (identifier))
|
(enumeration name: (identifier))
|
||||||
|
(enumeration name: (identifier) annotations: (identifier))
|
||||||
(enumeration name: (identifier))
|
(enumeration name: (identifier))
|
||||||
(enumeration name: (identifier) members: (identifier) members: (identifier) members: (identifier)))
|
(enumeration name: (identifier) members: (identifier) members: (identifier) members: (identifier)))
|
||||||
|
|
||||||
|
@ -69,6 +69,7 @@ module.exports = grammar({
|
|||||||
field("type", $._type),
|
field("type", $._type),
|
||||||
":",
|
":",
|
||||||
field("name", $.identifier),
|
field("name", $.identifier),
|
||||||
|
optional(field("annotations", $._annotations)),
|
||||||
optional(seq("=", field("expr", $._expression)))
|
optional(seq("=", field("expr", $._expression)))
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -76,6 +77,7 @@ module.exports = grammar({
|
|||||||
seq(
|
seq(
|
||||||
"enum",
|
"enum",
|
||||||
field("name", $.identifier),
|
field("name", $.identifier),
|
||||||
|
optional(field("annotations", $._annotations)),
|
||||||
optional(seq("=", "{", field("members", sepBy(",", $.identifier)), "}"))
|
optional(seq("=", "{", field("members", sepBy(",", $.identifier)), "}"))
|
||||||
),
|
),
|
||||||
|
|
||||||
|
32
src/grammar.json
vendored
32
src/grammar.json
vendored
@ -204,6 +204,22 @@
|
|||||||
"name": "identifier"
|
"name": "identifier"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "CHOICE",
|
||||||
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "FIELD",
|
||||||
|
"name": "annotations",
|
||||||
|
"content": {
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "_annotations"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "BLANK"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
@ -246,6 +262,22 @@
|
|||||||
"name": "identifier"
|
"name": "identifier"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "CHOICE",
|
||||||
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "FIELD",
|
||||||
|
"name": "annotations",
|
||||||
|
"content": {
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "_annotations"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "BLANK"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
|
28
src/node-types.json
vendored
28
src/node-types.json
vendored
@ -341,6 +341,20 @@
|
|||||||
"type": "declaration",
|
"type": "declaration",
|
||||||
"named": true,
|
"named": true,
|
||||||
"fields": {
|
"fields": {
|
||||||
|
"annotations": {
|
||||||
|
"multiple": true,
|
||||||
|
"required": false,
|
||||||
|
"types": [
|
||||||
|
{
|
||||||
|
"type": "::",
|
||||||
|
"named": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "_expression",
|
||||||
|
"named": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"expr": {
|
"expr": {
|
||||||
"multiple": false,
|
"multiple": false,
|
||||||
"required": false,
|
"required": false,
|
||||||
@ -377,6 +391,20 @@
|
|||||||
"type": "enumeration",
|
"type": "enumeration",
|
||||||
"named": true,
|
"named": true,
|
||||||
"fields": {
|
"fields": {
|
||||||
|
"annotations": {
|
||||||
|
"multiple": true,
|
||||||
|
"required": false,
|
||||||
|
"types": [
|
||||||
|
{
|
||||||
|
"type": "::",
|
||||||
|
"named": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "_expression",
|
||||||
|
"named": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"members": {
|
"members": {
|
||||||
"multiple": true,
|
"multiple": true,
|
||||||
"required": false,
|
"required": false,
|
||||||
|
13728
src/parser.c
vendored
13728
src/parser.c
vendored
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user