Skip to content

Commit 5559619

Browse files
authored
[spec/expression] Add Postfix Argument Lists subheading (#3674)
Under PostfixExpression. Move ArgumentList grammar here. Describe call expressions and type construction expressions.
1 parent a78d0b6 commit 5559619

File tree

1 file changed

+42
-14
lines changed

1 file changed

+42
-14
lines changed

spec/expression.dd

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,6 +1550,48 @@ $(TABLE
15501550
$(TROW *SliceExpression*, Select a series of elements)
15511551
)
15521552

1553+
$(H3 $(LNAME2 argument-list, Postfix Argument Lists))
1554+
1555+
$(GRAMMAR
1556+
$(GNAME ArgumentList):
1557+
$(GLINK AssignExpression)
1558+
$(GLINK AssignExpression) $(D ,)
1559+
$(GLINK AssignExpression) $(D ,) $(GSELF ArgumentList)
1560+
1561+
$(GNAME NamedArgumentList):
1562+
$(GLINK NamedArgument)
1563+
$(GLINK NamedArgument) $(D ,)
1564+
$(GLINK NamedArgument) $(D ,) $(I NamedArgumentList)
1565+
1566+
$(GNAME NamedArgument):
1567+
$(IDENTIFIER) $(D :) $(GLINK AssignExpression)
1568+
$(GLINK AssignExpression)
1569+
)
1570+
1571+
$(P A callable expression can precede a list of arguments in parentheses.)
1572+
1573+
---
1574+
void f(int, int);
1575+
1576+
f(5, 6);
1577+
(&f)(5, 6);
1578+
---
1579+
1580+
$(P A type can precede a list of arguments.)
1581+
1582+
---
1583+
struct S
1584+
{
1585+
int x, y;
1586+
}
1587+
1588+
S s = S(1, 2);
1589+
---
1590+
1591+
$(P See also: $(RELATIVE_LINK2 uniform_construction_syntax,
1592+
Uniform construction syntax for built-in scalar types))
1593+
1594+
15531595
$(H2 $(LNAME2 index_expressions, Index Expressions))
15541596

15551597
$(GRAMMAR
@@ -2553,20 +2595,6 @@ $(GNAME NewExpression):
25532595
$(D new) $(GLINK2 type, Type) $(D [) $(GLINK AssignExpression) $(D ])
25542596
$(D new) $(GLINK2 type, Type) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT) $(D $(RPAREN))
25552597
$(GLINK2 class, NewAnonClassExpression)
2556-
2557-
$(GNAME ArgumentList):
2558-
$(GLINK AssignExpression)
2559-
$(GLINK AssignExpression) $(D ,)
2560-
$(GLINK AssignExpression) $(D ,) $(GSELF ArgumentList)
2561-
2562-
$(GNAME NamedArgumentList):
2563-
$(GLINK NamedArgument)
2564-
$(GLINK NamedArgument) $(D ,)
2565-
$(GLINK NamedArgument) $(D ,) $(I NamedArgumentList)
2566-
2567-
$(GNAME NamedArgument):
2568-
$(IDENTIFIER) $(D :) $(GLINK AssignExpression)
2569-
$(GLINK AssignExpression)
25702598
)
25712599

25722600
$(P $(I NewExpression)s allocate memory on the

0 commit comments

Comments
 (0)