Skip to content

Commit ccd3c1f

Browse files
committed
[c++] grammar in endless loop. Fixes microsoft#23850
1 parent fdadd0e commit ccd3c1f

4 files changed

Lines changed: 138 additions & 12 deletions

File tree

extensions/cpp/OSSREADME.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
[
33
{
44
"name": "atom/language-c",
5-
"version": "0.51.3",
5+
"version": "0.0.0",
66
"license": "MIT",
77
"repositoryURL": "https://github.com/atom/language-c",
88
"description": "The files syntaxes/c.json and syntaxes/c++.json were derived from the Atom package https://atom.io/packages/language-c which was originally converted from the C TextMate bundle https://github.com/textmate/c.tmbundle."

extensions/cpp/syntaxes/c.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -778,7 +778,7 @@
778778
},
779779
"patterns": [
780780
{
781-
"begin": "\\G",
781+
"begin": "\\G(?=.)",
782782
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
783783
"name": "meta.preprocessor.c",
784784
"patterns": [
@@ -858,7 +858,7 @@
858858
},
859859
"patterns": [
860860
{
861-
"begin": "\\G",
861+
"begin": "\\G(?=.)",
862862
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
863863
"name": "meta.preprocessor.c",
864864
"patterns": [
@@ -1011,7 +1011,7 @@
10111011
},
10121012
"patterns": [
10131013
{
1014-
"begin": "\\G",
1014+
"begin": "\\G(?=.)",
10151015
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
10161016
"name": "meta.preprocessor.c",
10171017
"patterns": [
@@ -1048,7 +1048,7 @@
10481048
"end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
10491049
"patterns": [
10501050
{
1051-
"begin": "\\G",
1051+
"begin": "\\G(?=.)",
10521052
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
10531053
"name": "meta.preprocessor.c",
10541054
"patterns": [
@@ -1108,7 +1108,7 @@
11081108
},
11091109
"patterns": [
11101110
{
1111-
"begin": "\\G",
1111+
"begin": "\\G(?=.)",
11121112
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
11131113
"name": "meta.preprocessor.c",
11141114
"patterns": [
@@ -1145,7 +1145,7 @@
11451145
"end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
11461146
"patterns": [
11471147
{
1148-
"begin": "\\G",
1148+
"begin": "\\G(?=.)",
11491149
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
11501150
"name": "meta.preprocessor.c",
11511151
"patterns": [
@@ -1192,7 +1192,7 @@
11921192
"end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
11931193
"patterns": [
11941194
{
1195-
"begin": "\\G",
1195+
"begin": "\\G(?=.)",
11961196
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
11971197
"name": "meta.preprocessor.c",
11981198
"patterns": [
@@ -1251,7 +1251,7 @@
12511251
},
12521252
"patterns": [
12531253
{
1254-
"begin": "\\G",
1254+
"begin": "\\G(?=.)",
12551255
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
12561256
"name": "meta.preprocessor.c",
12571257
"patterns": [
@@ -1353,7 +1353,7 @@
13531353
},
13541354
"patterns": [
13551355
{
1356-
"begin": "\\G",
1356+
"begin": "\\G(?=.)",
13571357
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
13581358
"name": "meta.preprocessor.c",
13591359
"patterns": [
@@ -1442,7 +1442,7 @@
14421442
"end": "(?=^\\s*((#)\\s*endif\\b))",
14431443
"patterns": [
14441444
{
1445-
"begin": "\\G",
1445+
"begin": "\\G(?=.)",
14461446
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
14471447
"name": "meta.preprocessor.c",
14481448
"patterns": [
@@ -1529,7 +1529,7 @@
15291529
"end": "(?=^\\s*((#)\\s*endif\\b))",
15301530
"patterns": [
15311531
{
1532-
"begin": "\\G",
1532+
"begin": "\\G(?=.)",
15331533
"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
15341534
"name": "meta.preprocessor.c",
15351535
"patterns": [
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#ifndef _UCRT
2+
#define _UCRT
3+
#endif
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
[
2+
{
3+
"c": "#",
4+
"t": "source.cpp meta.preprocessor.c keyword.control.directive.conditional.c punctuation.definition.directive.c",
5+
"r": {
6+
"dark_plus": "keyword.control: #C586C0",
7+
"light_plus": "keyword.control: #AF00DB",
8+
"dark_vs": "keyword.control: #569CD6",
9+
"light_vs": "keyword.control: #0000FF",
10+
"hc_black": "keyword.control: #C586C0"
11+
}
12+
},
13+
{
14+
"c": "ifndef",
15+
"t": "source.cpp meta.preprocessor.c keyword.control.directive.conditional.c",
16+
"r": {
17+
"dark_plus": "keyword.control: #C586C0",
18+
"light_plus": "keyword.control: #AF00DB",
19+
"dark_vs": "keyword.control: #569CD6",
20+
"light_vs": "keyword.control: #0000FF",
21+
"hc_black": "keyword.control: #C586C0"
22+
}
23+
},
24+
{
25+
"c": " ",
26+
"t": "source.cpp meta.preprocessor.c",
27+
"r": {
28+
"dark_plus": "meta.preprocessor: #569CD6",
29+
"light_plus": "meta.preprocessor: #0000FF",
30+
"dark_vs": "meta.preprocessor: #569CD6",
31+
"light_vs": "meta.preprocessor: #0000FF",
32+
"hc_black": "meta.preprocessor: #569CD6"
33+
}
34+
},
35+
{
36+
"c": "_UCRT",
37+
"t": "source.cpp meta.preprocessor.c entity.name.function.preprocessor.c",
38+
"r": {
39+
"dark_plus": "entity.name.function: #DCDCAA",
40+
"light_plus": "entity.name.function: #795E26",
41+
"dark_vs": "meta.preprocessor: #569CD6",
42+
"light_vs": "meta.preprocessor: #0000FF",
43+
"hc_black": "entity.name.function: #DCDCAA"
44+
}
45+
},
46+
{
47+
"c": " ",
48+
"t": "source.cpp meta.preprocessor.macro.c",
49+
"r": {
50+
"dark_plus": "meta.preprocessor: #569CD6",
51+
"light_plus": "meta.preprocessor: #0000FF",
52+
"dark_vs": "meta.preprocessor: #569CD6",
53+
"light_vs": "meta.preprocessor: #0000FF",
54+
"hc_black": "meta.preprocessor: #569CD6"
55+
}
56+
},
57+
{
58+
"c": "#",
59+
"t": "source.cpp meta.preprocessor.macro.c keyword.control.directive.define.c punctuation.definition.directive.c",
60+
"r": {
61+
"dark_plus": "keyword.control: #C586C0",
62+
"light_plus": "keyword.control: #AF00DB",
63+
"dark_vs": "keyword.control: #569CD6",
64+
"light_vs": "keyword.control: #0000FF",
65+
"hc_black": "keyword.control: #C586C0"
66+
}
67+
},
68+
{
69+
"c": "define",
70+
"t": "source.cpp meta.preprocessor.macro.c keyword.control.directive.define.c",
71+
"r": {
72+
"dark_plus": "keyword.control: #C586C0",
73+
"light_plus": "keyword.control: #AF00DB",
74+
"dark_vs": "keyword.control: #569CD6",
75+
"light_vs": "keyword.control: #0000FF",
76+
"hc_black": "keyword.control: #C586C0"
77+
}
78+
},
79+
{
80+
"c": " ",
81+
"t": "source.cpp meta.preprocessor.macro.c",
82+
"r": {
83+
"dark_plus": "meta.preprocessor: #569CD6",
84+
"light_plus": "meta.preprocessor: #0000FF",
85+
"dark_vs": "meta.preprocessor: #569CD6",
86+
"light_vs": "meta.preprocessor: #0000FF",
87+
"hc_black": "meta.preprocessor: #569CD6"
88+
}
89+
},
90+
{
91+
"c": "_UCRT",
92+
"t": "source.cpp meta.preprocessor.macro.c entity.name.function.preprocessor.c",
93+
"r": {
94+
"dark_plus": "entity.name.function: #DCDCAA",
95+
"light_plus": "entity.name.function: #795E26",
96+
"dark_vs": "meta.preprocessor: #569CD6",
97+
"light_vs": "meta.preprocessor: #0000FF",
98+
"hc_black": "entity.name.function: #DCDCAA"
99+
}
100+
},
101+
{
102+
"c": "#",
103+
"t": "source.cpp meta.preprocessor.c keyword.control.directive.conditional.c punctuation.definition.directive.c",
104+
"r": {
105+
"dark_plus": "keyword.control: #C586C0",
106+
"light_plus": "keyword.control: #AF00DB",
107+
"dark_vs": "keyword.control: #569CD6",
108+
"light_vs": "keyword.control: #0000FF",
109+
"hc_black": "keyword.control: #C586C0"
110+
}
111+
},
112+
{
113+
"c": "endif",
114+
"t": "source.cpp meta.preprocessor.c keyword.control.directive.conditional.c",
115+
"r": {
116+
"dark_plus": "keyword.control: #C586C0",
117+
"light_plus": "keyword.control: #AF00DB",
118+
"dark_vs": "keyword.control: #569CD6",
119+
"light_vs": "keyword.control: #0000FF",
120+
"hc_black": "keyword.control: #C586C0"
121+
}
122+
}
123+
]

0 commit comments

Comments
 (0)