Skip to content

Commit 5d067ae

Browse files
committed
Allow include statements anywhere
1 parent 21b7408 commit 5d067ae

File tree

5 files changed

+621640
-586273
lines changed

5 files changed

+621640
-586273
lines changed

grammar.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ module.exports = grammar({
6969
/\s|\\\r?\n/,
7070
$.comment,
7171
'&',
72+
$.include_statement,
7273
],
7374

7475
inline: $ => [
@@ -106,7 +107,6 @@ module.exports = grammar({
106107
),
107108

108109
_top_level_item: $ => prec(2, choice(
109-
seq($.include_statement, $._end_of_statement),
110110
$.program,
111111
$.module,
112112
$.submodule,
@@ -508,7 +508,6 @@ module.exports = grammar({
508508
$.function,
509509
$.module_procedure,
510510
$.subroutine,
511-
$.include_statement,
512511
alias($.preproc_if_in_internal_procedures, $.preproc_if),
513512
alias($.preproc_ifdef_in_internal_procedures, $.preproc_ifdef),
514513
$.preproc_include,
@@ -520,7 +519,6 @@ module.exports = grammar({
520519
// Variable Declarations
521520

522521
_specification_part: $ => prec(1, choice(
523-
prec(1, seq($.include_statement, $._end_of_statement)),
524522
seq($.use_statement, $._end_of_statement),
525523
seq($.implicit_statement, $._end_of_statement),
526524
seq($.save_statement, $._end_of_statement),
@@ -683,7 +681,6 @@ module.exports = grammar({
683681
alias(caseInsensitive('sequence'), $.sequence_statement),
684682
$._end_of_statement
685683
),
686-
seq($.include_statement, $._end_of_statement),
687684
seq($.variable_declaration, $._end_of_statement),
688685
$.preproc_include,
689686
$.preproc_def,
@@ -1044,7 +1041,6 @@ module.exports = grammar({
10441041
$.call_expression,
10451042
$.subroutine_call,
10461043
$.keyword_statement,
1047-
$.include_statement,
10481044
$.if_statement,
10491045
$.arithmetic_if_statement,
10501046
$.where_statement,
@@ -1146,7 +1142,8 @@ module.exports = grammar({
11461142

11471143
include_statement: $ => seq(
11481144
caseInsensitive('include'),
1149-
field("path", alias($.string_literal, $.filename))
1145+
field("path", alias($.string_literal, $.filename)),
1146+
$._end_of_statement,
11501147
),
11511148

11521149
data_statement: $ => seq(

src/grammar.json

Lines changed: 8 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,6 @@
3232
"content": {
3333
"type": "CHOICE",
3434
"members": [
35-
{
36-
"type": "SEQ",
37-
"members": [
38-
{
39-
"type": "SYMBOL",
40-
"name": "include_statement"
41-
},
42-
{
43-
"type": "SYMBOL",
44-
"name": "_end_of_statement"
45-
}
46-
]
47-
},
4835
{
4936
"type": "SYMBOL",
5037
"name": "program"
@@ -9069,10 +9056,6 @@
90699056
"type": "SYMBOL",
90709057
"name": "subroutine"
90719058
},
9072-
{
9073-
"type": "SYMBOL",
9074-
"name": "include_statement"
9075-
},
90769059
{
90779060
"type": "ALIAS",
90789061
"content": {
@@ -9115,23 +9098,6 @@
91159098
"content": {
91169099
"type": "CHOICE",
91179100
"members": [
9118-
{
9119-
"type": "PREC",
9120-
"value": 1,
9121-
"content": {
9122-
"type": "SEQ",
9123-
"members": [
9124-
{
9125-
"type": "SYMBOL",
9126-
"name": "include_statement"
9127-
},
9128-
{
9129-
"type": "SYMBOL",
9130-
"name": "_end_of_statement"
9131-
}
9132-
]
9133-
}
9134-
},
91359101
{
91369102
"type": "SEQ",
91379103
"members": [
@@ -10443,19 +10409,6 @@
1044310409
}
1044410410
]
1044510411
},
10446-
{
10447-
"type": "SEQ",
10448-
"members": [
10449-
{
10450-
"type": "SYMBOL",
10451-
"name": "include_statement"
10452-
},
10453-
{
10454-
"type": "SYMBOL",
10455-
"name": "_end_of_statement"
10456-
}
10457-
]
10458-
},
1045910412
{
1046010413
"type": "SEQ",
1046110414
"members": [
@@ -12883,10 +12836,6 @@
1288312836
"type": "SYMBOL",
1288412837
"name": "keyword_statement"
1288512838
},
12886-
{
12887-
"type": "SYMBOL",
12888-
"name": "include_statement"
12889-
},
1289012839
{
1289112840
"type": "SYMBOL",
1289212841
"name": "if_statement"
@@ -13508,6 +13457,10 @@
1350813457
"named": true,
1350913458
"value": "filename"
1351013459
}
13460+
},
13461+
{
13462+
"type": "SYMBOL",
13463+
"name": "_end_of_statement"
1351113464
}
1351213465
]
1351313466
},
@@ -20731,6 +20684,10 @@
2073120684
{
2073220685
"type": "STRING",
2073320686
"value": "&"
20687+
},
20688+
{
20689+
"type": "SYMBOL",
20690+
"name": "include_statement"
2073420691
}
2073520692
],
2073620693
"conflicts": [

0 commit comments

Comments
 (0)