Skip to content

Commit 70c5026

Browse files
authored
Merge pull request m-novikov#50 from immanuelhume/multiline-comments
Improve grammar for comments
2 parents 2743c7b + 550c15b commit 70c5026

File tree

5 files changed

+44000
-33924
lines changed

5 files changed

+44000
-33924
lines changed

grammar.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,9 @@ module.exports = grammar({
294294
char: $ => parametric_type($, $.keyword_char),
295295
varchar: $ => parametric_type($, $.keyword_varchar),
296296

297-
comment: _ => /--.*\n/,
298-
marginalia: _ => /\/'*.*\*\//,
297+
comment: _ => seq('--', /.*\n/),
298+
// https://stackoverflow.com/questions/13014947/regex-to-match-a-c-style-multiline-comment
299+
marginalia: _ => seq('/*', /[^*]*\*+(?:[^/*][^*]*\*+)*/, '/' ),
299300

300301
statement: $ => seq(
301302
choice(

src/grammar.json

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1499,12 +1499,34 @@
14991499
]
15001500
},
15011501
"comment": {
1502-
"type": "PATTERN",
1503-
"value": "--.*\\n"
1502+
"type": "SEQ",
1503+
"members": [
1504+
{
1505+
"type": "STRING",
1506+
"value": "--"
1507+
},
1508+
{
1509+
"type": "PATTERN",
1510+
"value": ".*\\n"
1511+
}
1512+
]
15041513
},
15051514
"marginalia": {
1506-
"type": "PATTERN",
1507-
"value": "\\/'*.*\\*\\/"
1515+
"type": "SEQ",
1516+
"members": [
1517+
{
1518+
"type": "STRING",
1519+
"value": "/*"
1520+
},
1521+
{
1522+
"type": "PATTERN",
1523+
"value": "[^*]*\\*+(?:[^/*][^*]*\\*+)*"
1524+
},
1525+
{
1526+
"type": "STRING",
1527+
"value": "/"
1528+
}
1529+
]
15081530
},
15091531
"statement": {
15101532
"type": "SEQ",

src/node-types.json

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1261,6 +1261,11 @@
12611261
]
12621262
}
12631263
},
1264+
{
1265+
"type": "comment",
1266+
"named": true,
1267+
"fields": {}
1268+
},
12641269
{
12651270
"type": "constraint",
12661271
"named": true,
@@ -2652,6 +2657,11 @@
26522657
]
26532658
}
26542659
},
2660+
{
2661+
"type": "marginalia",
2662+
"named": true,
2663+
"fields": {}
2664+
},
26552665
{
26562666
"type": "numeric",
26572667
"named": true,
@@ -3969,6 +3979,10 @@
39693979
"type": "-",
39703980
"named": false
39713981
},
3982+
{
3983+
"type": "--",
3984+
"named": false
3985+
},
39723986
{
39733987
"type": ".",
39743988
"named": false
@@ -3977,6 +3991,10 @@
39773991
"type": "/",
39783992
"named": false
39793993
},
3994+
{
3995+
"type": "/*",
3996+
"named": false
3997+
},
39803998
{
39813999
"type": "::",
39824000
"named": false
@@ -4017,10 +4035,6 @@
40174035
"type": "`",
40184036
"named": false
40194037
},
4020-
{
4021-
"type": "comment",
4022-
"named": true
4023-
},
40244038
{
40254039
"type": "keyword_add",
40264040
"named": true
@@ -4521,10 +4535,6 @@
45214535
"type": "keyword_xml",
45224536
"named": true
45234537
},
4524-
{
4525-
"type": "marginalia",
4526-
"named": true
4527-
},
45284538
{
45294539
"type": "||",
45304540
"named": false

0 commit comments

Comments
 (0)