Skip to content

Commit b3947ae

Browse files
committed
Add operator_name node to generic operator
1 parent d72ba8e commit b3947ae

File tree

6 files changed

+54
-21
lines changed

6 files changed

+54
-21
lines changed

grammar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ module.exports = grammar({
404404
},
405405

406406
assignment: $ => seq(caseInsensitive('assignment'), '(', '=', ')'),
407-
operator: $ => seq(caseInsensitive('operator'), '(', /[^()]+/, ')'),
407+
operator: $ => seq(caseInsensitive('operator'), '(', alias(/[^()]+/, $.operator_name), ')'),
408408
defined_io_procedure: $ => seq(
409409
choice(caseInsensitive('read'), caseInsensitive('write')),
410410
'(',

src/grammar.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8073,8 +8073,13 @@
80738073
"value": "("
80748074
},
80758075
{
8076-
"type": "PATTERN",
8077-
"value": "[^()]+"
8076+
"type": "ALIAS",
8077+
"content": {
8078+
"type": "PATTERN",
8079+
"value": "[^()]+"
8080+
},
8081+
"named": true,
8082+
"value": "operator_name"
80788083
},
80798084
{
80808085
"type": "STRING",

src/node-types.json

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8570,7 +8570,17 @@
85708570
{
85718571
"type": "operator",
85728572
"named": true,
8573-
"fields": {}
8573+
"fields": {},
8574+
"children": {
8575+
"multiple": false,
8576+
"required": true,
8577+
"types": [
8578+
{
8579+
"type": "operator_name",
8580+
"named": true
8581+
}
8582+
]
8583+
}
85748584
},
85758585
{
85768586
"type": "output_item_list",
@@ -14735,6 +14745,10 @@
1473514745
"type": "operator",
1473614746
"named": false
1473714747
},
14748+
{
14749+
"type": "operator_name",
14750+
"named": true
14751+
},
1473814752
{
1473914753
"type": "optional",
1474014754
"named": false

src/parser.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -756,7 +756,7 @@ static const char * const ts_symbol_names[] = {
756756
[aux_sym_assignment_token1] = "assignment",
757757
[anon_sym_EQ] = "=",
758758
[aux_sym_operator_token1] = "operator",
759-
[aux_sym_operator_token2] = "operator_token2",
759+
[aux_sym_operator_token2] = "operator_name",
760760
[aux_sym_defined_io_procedure_token1] = "read",
761761
[aux_sym_defined_io_procedure_token2] = "write",
762762
[aux_sym_defined_io_procedure_token3] = "formatted",
@@ -2275,8 +2275,8 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
22752275
.named = false,
22762276
},
22772277
[aux_sym_operator_token2] = {
2278-
.visible = false,
2279-
.named = false,
2278+
.visible = true,
2279+
.named = true,
22802280
},
22812281
[aux_sym_defined_io_procedure_token1] = {
22822282
.visible = true,

test/corpus/constructs.txt

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -356,18 +356,21 @@ end interface operator (.not.)
356356
(translation_unit
357357
(interface
358358
(interface_statement
359-
(operator))
359+
(operator
360+
(operator_name)))
360361
(procedure_statement
361362
(procedure_kind)
362363
(method_name))
363364
(procedure_statement
364365
(procedure_kind)
365366
(method_name))
366367
(end_interface_statement
367-
(operator)))
368+
(operator
369+
(operator_name))))
368370
(interface
369371
(interface_statement
370-
(operator))
372+
(operator
373+
(operator_name)))
371374
(procedure_statement
372375
(procedure_kind)
373376
(method_name))
@@ -385,7 +388,8 @@ end interface operator (.not.)
385388
(identifier))
386389
(end_function_statement))
387390
(end_interface_statement
388-
(operator))))
391+
(operator
392+
(operator_name)))))
389393

390394
================================================================================
391395
Interface (assignment)
@@ -418,7 +422,8 @@ interface operator(+) ; module procedure test_plus ; end interface
418422
(translation_unit
419423
(interface
420424
(interface_statement
421-
(operator))
425+
(operator
426+
(operator_name)))
422427
(procedure_statement
423428
(procedure_kind)
424429
(method_name))
@@ -443,12 +448,14 @@ end module
443448
(use_statement
444449
(module_name)
445450
(included_items
446-
(operator)
451+
(operator
452+
(operator_name))
447453
(assignment)))
448454
(public_statement
449455
(assignment))
450456
(private_statement
451-
(operator))
457+
(operator
458+
(operator_name)))
452459
(end_module_statement)))
453460

454461
================================================================================
@@ -913,7 +920,8 @@ end program
913920
(procedure_attribute)
914921
(binding
915922
(binding_name
916-
(operator))
923+
(operator
924+
(operator_name)))
917925
(method_name)))
918926
(procedure_statement
919927
(procedure_kind)

test/corpus/statements.txt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,10 @@ END MODULE
224224
(private_statement
225225
(identifier)
226226
(identifier)
227-
(operator)
228-
(operator))
227+
(operator
228+
(operator_name))
229+
(operator
230+
(operator_name)))
229231
(end_module_statement)))
230232

231233
================================================================================
@@ -247,8 +249,10 @@ END MODULE
247249
(public_statement
248250
(identifier)
249251
(identifier)
250-
(operator)
251-
(operator))
252+
(operator
253+
(operator_name))
254+
(operator
255+
(operator_name)))
252256
(end_module_statement)))
253257

254258
================================================================================
@@ -2261,7 +2265,8 @@ end program
22612265
(name))
22622266
(interface
22632267
(interface_statement
2264-
(operator))
2268+
(operator
2269+
(operator_name)))
22652270
(function
22662271
(function_statement
22672272
(intrinsic_type)
@@ -2277,7 +2282,8 @@ end program
22772282
(end_interface_statement))
22782283
(interface
22792284
(interface_statement
2280-
(operator))
2285+
(operator
2286+
(operator_name)))
22812287
(function
22822288
(function_statement
22832289
(intrinsic_type)

0 commit comments

Comments
 (0)