Skip to content

Commit 590688e

Browse files
jgonzacinaki-amatria
authored andcommitted
Add semantic accessors
1 parent 1563add commit 590688e

File tree

9 files changed

+475222
-474896
lines changed

9 files changed

+475222
-474896
lines changed

grammar.js

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,11 @@ module.exports = grammar({
291291
$.end_program_statement
292292
),
293293

294-
program_statement: $ => seq(caseInsensitive('program'), $._name, $._end_of_statement),
294+
program_statement: $ => seq(
295+
caseInsensitive('program'),
296+
field('name', $._name),
297+
$._end_of_statement
298+
),
295299
end_program_statement: $ => blockStructureEnding($, 'program'),
296300

297301
module: $ => seq(
@@ -307,7 +311,11 @@ module.exports = grammar({
307311
$.end_module_statement
308312
),
309313

310-
module_statement: $ => seq(caseInsensitive('module'), $._name, $._end_of_statement),
314+
module_statement: $ => seq(
315+
caseInsensitive('module'),
316+
field('name', $._name),
317+
$._end_of_statement
318+
),
311319
end_module_statement: $ => blockStructureEnding($, 'module'),
312320

313321
submodule: $ => seq(
@@ -331,7 +339,7 @@ module.exports = grammar({
331339
':', field('parent', $.module_name)
332340
)),
333341
')',
334-
$._name,
342+
field('name', $._name),
335343
$._end_of_statement,
336344
),
337345
end_submodule_statement: $ => blockStructureEnding($, 'submodule'),
@@ -363,7 +371,7 @@ module.exports = grammar({
363371
interface_statement: $ => seq(
364372
optional($.abstract_specifier),
365373
caseInsensitive('interface'),
366-
optional(choice($._name, $._generic_procedure)),
374+
optional(choice(field('name', $._name), $._generic_procedure)),
367375
$._end_of_statement,
368376
),
369377

@@ -734,8 +742,13 @@ module.exports = grammar({
734742
optional($.statement_label),
735743
caseInsensitive('type'),
736744
choice(
737-
seq(optional('::'), $._type_name),
738-
seq(',', commaSep1($._derived_type_qualifier), '::', $._type_name)
745+
seq(optional('::'), field('name', $._type_name)),
746+
seq(
747+
',',
748+
commaSep1($._derived_type_qualifier),
749+
'::',
750+
field('name', $._type_name)
751+
)
739752
),
740753
optional(alias($.argument_list, $.derived_type_parameter_list)),
741754
$._end_of_statement
@@ -1960,7 +1973,7 @@ module.exports = grammar({
19601973
// precedence is used to prevent conflict with assignment expression
19611974
keyword_argument: $ => prec(1, seq(
19621975
field("name",$.identifier),
1963-
'=',
1976+
field("equal", '='),
19641977
field("value",choice($._expression, $.assumed_size, $.assumed_shape))
19651978
)),
19661979

src/grammar.json

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7213,8 +7213,12 @@
72137213
"value": "program"
72147214
},
72157215
{
7216-
"type": "SYMBOL",
7217-
"name": "_name"
7216+
"type": "FIELD",
7217+
"name": "name",
7218+
"content": {
7219+
"type": "SYMBOL",
7220+
"name": "_name"
7221+
}
72187222
},
72197223
{
72207224
"type": "SYMBOL",
@@ -7350,8 +7354,12 @@
73507354
"value": "module"
73517355
},
73527356
{
7353-
"type": "SYMBOL",
7354-
"name": "_name"
7357+
"type": "FIELD",
7358+
"name": "name",
7359+
"content": {
7360+
"type": "SYMBOL",
7361+
"name": "_name"
7362+
}
73557363
},
73567364
{
73577365
"type": "SYMBOL",
@@ -7528,8 +7536,12 @@
75287536
"value": ")"
75297537
},
75307538
{
7531-
"type": "SYMBOL",
7532-
"name": "_name"
7539+
"type": "FIELD",
7540+
"name": "name",
7541+
"content": {
7542+
"type": "SYMBOL",
7543+
"name": "_name"
7544+
}
75337545
},
75347546
{
75357547
"type": "SYMBOL",
@@ -7720,8 +7732,12 @@
77207732
"type": "CHOICE",
77217733
"members": [
77227734
{
7723-
"type": "SYMBOL",
7724-
"name": "_name"
7735+
"type": "FIELD",
7736+
"name": "name",
7737+
"content": {
7738+
"type": "SYMBOL",
7739+
"name": "_name"
7740+
}
77257741
},
77267742
{
77277743
"type": "SYMBOL",
@@ -10657,8 +10673,12 @@
1065710673
]
1065810674
},
1065910675
{
10660-
"type": "SYMBOL",
10661-
"name": "_type_name"
10676+
"type": "FIELD",
10677+
"name": "name",
10678+
"content": {
10679+
"type": "SYMBOL",
10680+
"name": "_type_name"
10681+
}
1066210682
}
1066310683
]
1066410684
},
@@ -10699,8 +10719,12 @@
1069910719
"value": "::"
1070010720
},
1070110721
{
10702-
"type": "SYMBOL",
10703-
"name": "_type_name"
10722+
"type": "FIELD",
10723+
"name": "name",
10724+
"content": {
10725+
"type": "SYMBOL",
10726+
"name": "_type_name"
10727+
}
1070410728
}
1070510729
]
1070610730
}
@@ -18911,8 +18935,12 @@
1891118935
}
1891218936
},
1891318937
{
18914-
"type": "STRING",
18915-
"value": "="
18938+
"type": "FIELD",
18939+
"name": "equal",
18940+
"content": {
18941+
"type": "STRING",
18942+
"value": "="
18943+
}
1891618944
},
1891718945
{
1891818946
"type": "FIELD",

0 commit comments

Comments
 (0)