@@ -140,18 +140,18 @@ Token Parser::Consume(TokenType type, const std::string& message) {
140
140
UniqueStatement Parser::ParseDeclaration () {
141
141
try {
142
142
if (CheckAndConsumeTokens ({CLASS})) {
143
- return std::move ( ParseClassStatement () );
143
+ return ParseClassStatement ();
144
144
}
145
145
146
146
if (CheckAndConsumeTokens ({FUN})) {
147
- return std::move ( ParseFunction (" function" ) );
147
+ return ParseFunction (" function" );
148
148
}
149
149
150
150
if (CheckAndConsumeTokens ({VAR})) {
151
- return std::move ( ParseVariableDeclaration () );
151
+ return ParseVariableDeclaration ();
152
152
}
153
153
154
- return std::move ( ParseStatement () );
154
+ return ParseStatement ();
155
155
} catch (const ParseError& error) {
156
156
Synchronize ();
157
157
return nullptr ;
@@ -172,7 +172,7 @@ UniqueStatement Parser::ParseVariableDeclaration() {
172
172
UniqueStatement statement;
173
173
statement.reset (
174
174
new parsed::VariableStatement (name, std::move (initializer)));
175
- return std::move ( statement) ;
175
+ return statement;
176
176
}
177
177
178
178
std::vector<
@@ -197,32 +197,32 @@ std::vector<
197
197
// / * Expression statements.
198
198
UniqueStatement Parser::ParseStatement () {
199
199
if (CheckAndConsumeTokens ({FOR})) {
200
- return std::move ( ParseForStatement () );
200
+ return ParseForStatement ();
201
201
}
202
202
203
203
if (CheckAndConsumeTokens ({IF})) {
204
- return std::move ( ParseIfStatement () );
204
+ return ParseIfStatement ();
205
205
}
206
206
207
207
if (CheckAndConsumeTokens ({PRINT})) {
208
- return std::move ( ParsePrintStatement () );
208
+ return ParsePrintStatement ();
209
209
}
210
210
211
211
if (CheckAndConsumeTokens ({RETURN})) {
212
- return std::move ( ParseReturnStatement () );
212
+ return ParseReturnStatement ();
213
213
}
214
214
215
215
if (CheckAndConsumeTokens ({WHILE})) {
216
- return std::move ( ParseWhileStatement () );
216
+ return ParseWhileStatement ();
217
217
}
218
218
219
219
if (CheckAndConsumeTokens ({LEFT_BRACE})) {
220
220
UniqueStatement block;
221
221
block.reset (new parsed::Block (std::move (ParseBlockStatements ())));
222
- return std::move ( block) ;
222
+ return block;
223
223
}
224
224
225
- return std::move ( ParseExpressionStatement () );
225
+ return ParseExpressionStatement ();
226
226
}
227
227
228
228
UniqueStatement Parser::ParsePrintStatement () {
@@ -231,7 +231,7 @@ UniqueStatement Parser::ParsePrintStatement() {
231
231
232
232
UniqueStatement print;
233
233
print.reset (new parsed::Print (std::move (value)));
234
- return std::move ( print) ;
234
+ return print;
235
235
}
236
236
237
237
UniqueStatement Parser::ParseExpressionStatement () {
@@ -241,7 +241,7 @@ UniqueStatement Parser::ParseExpressionStatement() {
241
241
242
242
UniqueStatement expr_statement;
243
243
expr_statement.reset (new parsed::ExpressionStatement (std::move (value)));
244
- return std::move ( expr_statement) ;
244
+ return expr_statement;
245
245
}
246
246
247
247
UniqueStatement Parser::ParseIfStatement () {
@@ -260,7 +260,7 @@ UniqueStatement Parser::ParseIfStatement() {
260
260
if_statement.reset (
261
261
new parsed::If (
262
262
std::move (condition), std::move (then_branch), std::move (else_branch)));
263
- return std::move ( if_statement) ;
263
+ return if_statement;
264
264
}
265
265
266
266
UniqueStatement Parser::ParseWhileStatement () {
@@ -274,7 +274,7 @@ UniqueStatement Parser::ParseWhileStatement() {
274
274
while_statement.reset (
275
275
new parsed::While (std::move (condition), std::move (body)));
276
276
277
- return std::move ( while_statement) ;
277
+ return while_statement;
278
278
}
279
279
280
280
UniqueStatement Parser::ParseForStatement () {
@@ -331,7 +331,7 @@ UniqueStatement Parser::ParseForStatement() {
331
331
body.reset (new parsed::Block (std::move (statements)));
332
332
}
333
333
334
- return std::move ( body) ;
334
+ return body;
335
335
}
336
336
337
337
UniqueStatement Parser::ParseFunction (const std::string& kind) {
@@ -348,7 +348,7 @@ UniqueStatement Parser::ParseFunction(const std::string& kind) {
348
348
if (CheckAndConsumeTokens ({STATIC})) {
349
349
is_static = true ;
350
350
}
351
- name = Consume (IDENTIFIER, " Expect " + kind + " name." );
351
+ name = Consume (IDENTIFIER, " Expect " + kind + " name." );
352
352
}
353
353
354
354
bool is_getter = is_method && CheckToken (LEFT_BRACE);
@@ -383,15 +383,15 @@ UniqueStatement Parser::ParseFunction(const std::string& kind) {
383
383
std::move (body),
384
384
parsed::FunctionMetadata{is_static, is_method, is_getter}));
385
385
386
- return std::move ( func_statement) ;
386
+ return func_statement;
387
387
}
388
388
389
389
UniqueStatement Parser::ParseReturnStatement () {
390
390
Token keyword = Previous ();
391
391
UniqueExpression value = nullptr ;
392
392
393
393
if (!CheckToken (SEMICOLON)) {
394
- value = std::move ( ParseExpression () );
394
+ value = ParseExpression ();
395
395
}
396
396
397
397
Consume (SEMICOLON, " Expect ';' after return value." );
@@ -427,7 +427,7 @@ UniqueStatement Parser::ParseClassStatement() {
427
427
428
428
UniqueStatement class_def;
429
429
class_def.reset (new parsed::Class (name, std::move (base_class), methods));
430
- return std::move ( class_def) ;
430
+ return class_def;
431
431
}
432
432
433
433
// -------------------------------- EXPRESSIONS --------------------------------
@@ -447,7 +447,7 @@ UniqueExpression Parser::ParseEquality() {
447
447
std::move (expression), expr_operator, std::move (right_side)));
448
448
}
449
449
450
- return std::move ( expression) ;
450
+ return expression;
451
451
}
452
452
453
453
UniqueExpression Parser::ParseAssignment () {
@@ -460,7 +460,7 @@ UniqueExpression Parser::ParseAssignment() {
460
460
if (parsed::Variable* var = dynamic_cast <parsed::Variable*>(
461
461
expression.get ())) {
462
462
expression.reset (new parsed::Assign (var->GetName (), std::move (value)));
463
- return std::move ( expression) ;
463
+ return expression;
464
464
} else if (
465
465
parsed::Get* get = dynamic_cast <parsed::Get*>(expression.get ())) {
466
466
expression.reset (
@@ -471,11 +471,11 @@ UniqueExpression Parser::ParseAssignment() {
471
471
}
472
472
}
473
473
474
- return std::move ( expression) ;
474
+ return expression;
475
475
}
476
476
477
477
UniqueExpression Parser::ParseExpression () {
478
- return std::move ( ParseAssignment () );
478
+ return ParseAssignment ();
479
479
}
480
480
481
481
// / @brief Parses primary expressions into literals.
@@ -484,17 +484,17 @@ UniqueExpression Parser::ParsePrimary() {
484
484
485
485
if (CheckAndConsumeTokens ({FALSE })) {
486
486
expression.reset (new parsed::Literal (false ));
487
- return std::move ( expression) ;
487
+ return expression;
488
488
}
489
489
490
490
if (CheckAndConsumeTokens ({TRUE })) {
491
491
expression.reset (new parsed::Literal (true ));
492
- return std::move ( expression) ;
492
+ return expression;
493
493
}
494
494
495
495
if (CheckAndConsumeTokens ({NIL})) {
496
496
expression.reset (new parsed::Literal ());
497
- return std::move ( expression) ;
497
+ return expression;
498
498
}
499
499
500
500
if (CheckAndConsumeTokens ({NUMBER, STRING})) {
@@ -503,12 +503,12 @@ UniqueExpression Parser::ParsePrimary() {
503
503
if (token.Literal .type () == typeid (double )) {
504
504
expression.reset (new parsed::Literal (
505
505
std::any_cast<double >(token.Literal )));
506
- return std::move ( expression) ;
506
+ return expression;
507
507
}
508
508
509
509
expression.reset (new parsed::Literal (
510
510
std::any_cast<std::string&>(token.Literal )));
511
- return std::move ( expression) ;
511
+ return expression;
512
512
}
513
513
514
514
if (CheckAndConsumeTokens ({SUPER})) {
@@ -521,26 +521,25 @@ UniqueExpression Parser::ParsePrimary() {
521
521
522
522
if (CheckAndConsumeTokens ({THIS})) {
523
523
expression.reset (new parsed::This (Previous ()));
524
- return std::move ( expression) ;
524
+ return expression;
525
525
}
526
526
527
527
if (CheckAndConsumeTokens ({IDENTIFIER})) {
528
528
expression.reset (new parsed::Variable (Previous ()));
529
- return std::move ( expression) ;
529
+ return expression;
530
530
}
531
531
532
532
if (CheckAndConsumeTokens ({FUN})) {
533
- UniqueStatement lambda_func = std::move (
534
- ParseFunction (" lambda" ));
533
+ UniqueStatement lambda_func = ParseFunction (" lambda" );
535
534
expression.reset (new parsed::LambdaExpression (std::move (lambda_func)));
536
- return std::move ( expression) ;
535
+ return expression;
537
536
}
538
537
539
538
if (CheckAndConsumeTokens ({LEFT_PAREN})) {
540
539
UniqueExpression grouping = ParseExpression ();
541
540
Consume (RIGHT_PAREN, " Expect ')' after expression" );
542
541
grouping.reset (new parsed::Grouping (std::move (grouping)));
543
- return std::move ( grouping) ;
542
+ return grouping;
544
543
}
545
544
546
545
throw Error (Peek (), " Expect expression." );
@@ -553,10 +552,10 @@ UniqueExpression Parser::ParseUnary() {
553
552
UniqueExpression right_side = ParseUnary ();
554
553
right_side.reset (
555
554
new parsed::Unary (unary_operator, std::move (right_side)));
556
- return std::move ( right_side) ;
555
+ return right_side;
557
556
}
558
557
559
- return std::move ( ParseCall () );
558
+ return ParseCall ();
560
559
}
561
560
562
561
// / Checks for subtraction first and then addition after.
@@ -571,7 +570,7 @@ UniqueExpression Parser::ParseTerm() {
571
570
std::move (expression), expr_operator, std::move (right_side)));
572
571
}
573
572
574
- return std::move ( expression) ;
573
+ return expression;
575
574
}
576
575
577
576
UniqueExpression Parser::ParseFactor () {
@@ -585,7 +584,7 @@ UniqueExpression Parser::ParseFactor() {
585
584
std::move (expression), expr_operator, std::move (right_side)));
586
585
}
587
586
588
- return std::move ( expression) ;
587
+ return expression;
589
588
}
590
589
591
590
// / This matches >, >=, <, <= and creates a Binary expression from the
@@ -601,7 +600,7 @@ UniqueExpression Parser::ParseComparison() {
601
600
std::move (expression), expr_operator, std::move (right_side)));
602
601
}
603
602
604
- return std::move ( expression) ;
603
+ return expression;
605
604
}
606
605
607
606
UniqueExpression Parser::ParseOr () {
@@ -615,7 +614,7 @@ UniqueExpression Parser::ParseOr() {
615
614
std::move (expression), or_operator, std::move (right_operand)));
616
615
}
617
616
618
- return std::move ( expression) ;
617
+ return expression;
619
618
}
620
619
621
620
UniqueExpression Parser::ParseAnd () {
@@ -629,7 +628,7 @@ UniqueExpression Parser::ParseAnd() {
629
628
std::move (expression), and_operator, std::move (right_operand)));
630
629
}
631
630
632
- return std::move ( expression) ;
631
+ return expression;
633
632
}
634
633
635
634
UniqueExpression Parser::ParseCall () {
@@ -646,7 +645,7 @@ UniqueExpression Parser::ParseCall() {
646
645
}
647
646
}
648
647
649
- return std::move ( expression) ;
648
+ return expression;
650
649
}
651
650
652
651
UniqueExpression Parser::FinishCall (UniqueExpression callee) {
@@ -658,7 +657,7 @@ UniqueExpression Parser::FinishCall(UniqueExpression callee) {
658
657
Error (Peek (), " Can't have more than 255 arguments." );
659
658
}
660
659
661
- arguments.emplace_back (std::move ( ParseExpression () ));
660
+ arguments.emplace_back (ParseExpression ());
662
661
} while (CheckAndConsumeTokens ({COMMA}));
663
662
}
664
663
0 commit comments