Changeset 513e165 for src/Parser/parser.yy
- Timestamp:
- Sep 13, 2017, 3:09:12 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 121c3c0
- Parents:
- 7aa257ae
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
r7aa257ae r513e165 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 11 18:12:00 201713 // Update Count : 2 78712 // Last Modified On : Wed Sep 13 11:01:20 2017 13 // Update Count : 2803 14 14 // 15 15 … … 56 56 #include "LinkageSpec.h" 57 57 #include "Common/SemanticError.h" // error_str 58 #include "Common/utility.h" // for maybeMoveBuild, maybeBuild, CodeLo... 58 59 59 60 extern DeclarationNode * parseTree; … … 438 439 { $$ = $2; } 439 440 | '(' compound_statement ')' // GCC, lambda expression 440 { $$ = new ExpressionNode( build_valexpr( $2) ); }441 { $$ = new ExpressionNode( new StmtExpr( dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >($2) ) ) ); } 441 442 | primary_expression '{' argument_expression_list '}' // CFA, constructor call 442 443 { … … 618 619 // VIRTUAL cannot be opt because of look ahead issues 619 620 | '(' VIRTUAL ')' cast_expression 620 { $$ = new ExpressionNode( build_virtual_cast( nullptr, $4) ); }621 { $$ = new ExpressionNode( new VirtualCastExpr( maybeMoveBuild< Expression >( $4 ), maybeMoveBuildType( nullptr ) ) ); } 621 622 | '(' VIRTUAL type_no_function ')' cast_expression 622 { $$ = new ExpressionNode( build_virtual_cast( $3, $5) ); }623 { $$ = new ExpressionNode( new VirtualCastExpr( maybeMoveBuild< Expression >( $5 ), maybeMoveBuildType( $3 ) ) ); } 623 624 // | '(' type_no_function ')' tuple 624 625 // { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } … … 771 772 assignment_expression 772 773 | comma_expression ',' assignment_expression 773 { $$ = new ExpressionNode( build_comma( $1, $3) ); }774 { $$ = new ExpressionNode( new CommaExpr( maybeMoveBuild< Expression >( $1 ), maybeMoveBuild< Expression >( $3 ) ) ); } 774 775 ; 775 776 … … 1154 1155 asm_operand: // GCC 1155 1156 string_literal '(' constant_expression ')' 1156 { $$ = new ExpressionNode( build_asmexpr( 0, $1, $3) ); }1157 { $$ = new ExpressionNode( new AsmExpr( maybeMoveBuild< Expression >( (ExpressionNode *)nullptr ), $1, maybeMoveBuild< Expression >( $3 ) ) ); } 1157 1158 | '[' constant_expression ']' string_literal '(' constant_expression ')' 1158 { $$ = new ExpressionNode( build_asmexpr( $2, $4, $6) ); }1159 { $$ = new ExpressionNode( new AsmExpr( maybeMoveBuild< Expression >( $2 ), $4, maybeMoveBuild< Expression >( $6 ) ) ); } 1159 1160 ; 1160 1161 … … 1165 1166 { $$ = new ExpressionNode( $1 ); } 1166 1167 | asm_clobbers_list_opt ',' string_literal 1167 // set_last return ParseNode *1168 // set_last returns ParseNode * 1168 1169 { $$ = (ExpressionNode *)$1->set_last( new ExpressionNode( $3 ) ); } 1169 1170 ; … … 2165 2166 type_list: // CFA 2166 2167 type 2167 { $$ = new ExpressionNode( build_typevalue( $1) ); }2168 { $$ = new ExpressionNode( new TypeExpr( maybeMoveBuildType( $1 ) ) ); } 2168 2169 | assignment_expression 2169 2170 | type_list ',' type 2170 { $$ = (ExpressionNode *)( $1->set_last( new ExpressionNode( build_typevalue( $3) ) ) ); }2171 { $$ = (ExpressionNode *)( $1->set_last( new ExpressionNode( new TypeExpr( maybeMoveBuildType( $3 ) ) ) ) ); } 2171 2172 | type_list ',' assignment_expression 2172 2173 { $$ = (ExpressionNode *)( $1->set_last( $3 )); }
Note: See TracChangeset
for help on using the changeset viewer.