Skip to content

Commit 560ba86

Browse files
committed
Change grammar, so a comma is not part of a initializer list conflict
1 parent 42be7d0 commit 560ba86

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

src/cppconv/grammarcpp.ebnf

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,12 +1108,15 @@ InitializerClauseDesignator
11081108
InitializerList @array
11091109
= InitializerClauseDesignator
11101110
| InitializerClauseDesignator "..."
1111-
| InitializerList "," InitializerClauseDesignator
1112-
| InitializerList "," InitializerClauseDesignator "..."
1111+
| InitializerListComma InitializerClauseDesignator
1112+
| InitializerListComma InitializerClauseDesignator "..."
1113+
;
1114+
InitializerListComma @array
1115+
= InitializerList ","
11131116
;
11141117
InitializerList2 @array
11151118
= InitializerList
1116-
| InitializerList ","
1119+
| InitializerListComma
11171120
| @empty;
11181121
DesignatorList @array
11191122
= Designator

tests/single/testconflict_tl_f_2.d

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ void f()
2929
}
3030
~ "("
3131
~ q{
32-
1, 2
32+
1, 2,
3333
}
3434
~ (!defined!"DEF" ? q{
35-
, T1!(a, b) (c)
35+
T1!(a, b) (c)
3636
}:"")
3737
~ (defined!"DEF" ? q{
38-
,T1<a,b>(c)
38+
T1<a,b>(c)
3939
}:"")
4040
~ q{
4141
, 4, 5

tests/single/testconflict_tl_f_4.d

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,22 +52,23 @@ __gshared const(int) b = 3;
5252
void g()
5353
{
5454
S data = mixin("S(" ~ q{
55-
1
55+
1,
5656
}
5757
~ (defined!"DEF" ? q{
58-
,
5958

6059
f!(a, b)(2)
6160
}:"")
6261
~ (!defined!"DEF" ? q{
63-
,f<a,b>(2)
62+
f<a,b>(2)
6463
}:"")
65-
~ (defined!"DEF" ? q{
64+
~ q{
6665
,
66+
}
67+
~ (defined!"DEF" ? q{
6768
f!(a, b)(3)
6869
}:"")
6970
~ (!defined!"DEF" ? q{
70-
,f<a,b>(3)
71+
f<a,b>(3)
7172
}:"")
7273
~ q{
7374
,

0 commit comments

Comments
 (0)