@@ -721,7 +721,7 @@ struct postfix_expression_node
721
721
if (ops.empty ()) {
722
722
return false ;
723
723
} else {
724
- return (ops.front ().op ->type () == lexeme::Ampersand
724
+ return (ops.front ().op ->type () == lexeme::Ampersand
725
725
|| ops.front ().op ->type () == lexeme::Tilde);
726
726
}
727
727
}
@@ -3993,7 +3993,7 @@ class parser
3993
3993
// || curr().type() == lexeme::LeftBrace
3994
3994
)
3995
3995
{
3996
- bool inside_initializer = (
3996
+ bool inside_initializer = (
3997
3997
peek (-1 ) && peek (-1 )->type () == lexeme::Assignment
3998
3998
);
3999
3999
auto open_paren = &curr ();
@@ -4015,12 +4015,12 @@ class parser
4015
4015
next ();
4016
4016
if (
4017
4017
curr ().type () != lexeme::Semicolon
4018
- && curr ().type () != lexeme::RightParen
4019
- && curr ().type () != lexeme::RightBracket
4018
+ && curr ().type () != lexeme::RightParen
4019
+ && curr ().type () != lexeme::RightBracket
4020
4020
&& curr ().type () != lexeme::Comma
4021
4021
) {
4022
4022
expr_list->inside_initializer = false ;
4023
- }
4023
+ }
4024
4024
n->expr = std::move (expr_list);
4025
4025
return n;
4026
4026
}
@@ -4374,7 +4374,7 @@ class parser
4374
4374
// G shift-expression '<<' additive-expression
4375
4375
// G shift-expression '>>' additive-expression
4376
4376
// G
4377
- auto shift_expression (bool allow_angle_operators = true )
4377
+ auto shift_expression (bool allow_angle_operators = true )
4378
4378
-> auto
4379
4379
{
4380
4380
if (allow_angle_operators) {
@@ -4409,7 +4409,7 @@ class parser
4409
4409
// G shift-expression
4410
4410
// G compare-expression '<=>' shift-expression
4411
4411
// G
4412
- auto compare_expression (bool allow_angle_operators = true )
4412
+ auto compare_expression (bool allow_angle_operators = true )
4413
4413
-> auto
4414
4414
{
4415
4415
return binary_expression<compare_expression_node> (
@@ -4425,7 +4425,7 @@ class parser
4425
4425
// G relational-expression '<=' compare-expression
4426
4426
// G relational-expression '>=' compare-expression
4427
4427
// G
4428
- auto relational_expression (bool allow_angle_operators = true )
4428
+ auto relational_expression (bool allow_angle_operators = true )
4429
4429
-> auto
4430
4430
{
4431
4431
if (allow_angle_operators) {
@@ -4457,7 +4457,7 @@ class parser
4457
4457
// G equality-expression '==' relational-expression
4458
4458
// G equality-expression '!=' relational-expression
4459
4459
// G
4460
- auto equality_expression (bool allow_angle_operators = true )
4460
+ auto equality_expression (bool allow_angle_operators = true )
4461
4461
-> auto
4462
4462
{
4463
4463
return binary_expression<equality_expression_node> (
@@ -4470,7 +4470,7 @@ class parser
4470
4470
// G equality-expression
4471
4471
// G bit-and-expression '&' equality-expression
4472
4472
// G
4473
- auto bit_and_expression (bool allow_angle_operators = true )
4473
+ auto bit_and_expression (bool allow_angle_operators = true )
4474
4474
-> auto
4475
4475
{
4476
4476
return binary_expression<bit_and_expression_node> (
@@ -4483,7 +4483,7 @@ class parser
4483
4483
// G bit-and-expression
4484
4484
// G bit-xor-expression '^' bit-and-expression
4485
4485
// G
4486
- auto bit_xor_expression (bool allow_angle_operators = true )
4486
+ auto bit_xor_expression (bool allow_angle_operators = true )
4487
4487
-> auto
4488
4488
{
4489
4489
return binary_expression<bit_xor_expression_node> (
@@ -4496,7 +4496,7 @@ class parser
4496
4496
// G bit-xor-expression
4497
4497
// G bit-or-expression '|' bit-xor-expression
4498
4498
// G
4499
- auto bit_or_expression (bool allow_angle_operators = true )
4499
+ auto bit_or_expression (bool allow_angle_operators = true )
4500
4500
-> auto
4501
4501
{
4502
4502
return binary_expression<bit_or_expression_node> (
@@ -4509,7 +4509,7 @@ class parser
4509
4509
// G bit-or-expression
4510
4510
// G logical-and-expression '&&' bit-or-expression
4511
4511
// G
4512
- auto logical_and_expression (bool allow_angle_operators = true )
4512
+ auto logical_and_expression (bool allow_angle_operators = true )
4513
4513
-> auto
4514
4514
{
4515
4515
return binary_expression<logical_and_expression_node> (
@@ -4524,7 +4524,7 @@ class parser
4524
4524
// G logical-and-expression
4525
4525
// G logical-or-expression '||' logical-and-expression
4526
4526
// G
4527
- auto logical_or_expression (bool allow_angle_operators = true )
4527
+ auto logical_or_expression (bool allow_angle_operators = true )
4528
4528
-> auto
4529
4529
{
4530
4530
return binary_expression<logical_or_expression_node> (
@@ -4842,7 +4842,7 @@ class parser
4842
4842
4843
4843
n->open_angle = curr ().position ();
4844
4844
next ();
4845
-
4845
+
4846
4846
auto term = unqualified_id_node::term{};
4847
4847
4848
4848
do {
@@ -6433,7 +6433,7 @@ class parser
6433
6433
}
6434
6434
assert (n->is_type ());
6435
6435
}
6436
-
6436
+
6437
6437
// Or a function type, declaring a function - and tell the function whether it's in a user-defined type
6438
6438
else if (auto t = function_type (n.get (), named))
6439
6439
{
@@ -6552,7 +6552,7 @@ class parser
6552
6552
}
6553
6553
// But if there isn't one and it was required, diagnose an error
6554
6554
else if (semicolon_required) {
6555
- error (" missing semicolon at end of declaration" , true , {}, true );
6555
+ error (" missing semicolon at end of declaration or equal at start of initializer " , true , {}, true );
6556
6556
return {};
6557
6557
}
6558
6558
}
@@ -6591,11 +6591,11 @@ class parser
6591
6591
)
6592
6592
{
6593
6593
auto & type = std::get<declaration_node::an_object>(n->type );
6594
- // object initialized by the address of the curr() object
6594
+ // object initialized by the address of the curr() object
6595
6595
if (peek (1 )->type () == lexeme::Ampersand) {
6596
6596
type->address_of = &curr ();
6597
6597
}
6598
- // object initialized by (potentially multiple) dereference of the curr() object
6598
+ // object initialized by (potentially multiple) dereference of the curr() object
6599
6599
else if (peek (1 )->type () == lexeme::Multiply) {
6600
6600
type->dereference_of = &curr ();
6601
6601
for (int i = 1 ; peek (i)->type () == lexeme::Multiply; ++i)
@@ -6800,7 +6800,7 @@ class parser
6800
6800
return {};
6801
6801
}
6802
6802
if (
6803
- t->is_wildcard ()
6803
+ t->is_wildcard ()
6804
6804
|| ( t->get_token () && t->get_token ()->to_string (true ) == " auto" )
6805
6805
) {
6806
6806
errors.emplace_back (
0 commit comments