Changes in src/Parser/parser.yy [e307e12:312029a]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
re307e12 r312029a 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Dec 7 10:43:44201913 // Update Count : 4 39412 // Last Modified On : Tue Dec 10 23:07:17 2019 13 // Update Count : 4400 14 14 // 15 15 … … 51 51 using namespace std; 52 52 53 #include "SynTree/Declaration.h" 53 54 #include "ParseNode.h" 54 55 #include "TypedefTable.h" … … 211 212 } // forCtrl 212 213 213 KeywordCastExpr::Target Aggregate2Target( DeclarationNode::Aggregate aggr ) {214 KeywordCastExpr::Target target;215 switch ( aggr ) {216 case DeclarationNode::Coroutine: target = KeywordCastExpr::Coroutine; break;217 case DeclarationNode::Monitor: target = KeywordCastExpr::Monitor; break;218 case DeclarationNode::Thread: target = KeywordCastExpr::Thread; break;219 default: abort();220 } // switch221 return target;222 } // Aggregate2Target223 224 225 214 bool forall = false, yyy = false; // aggregate have one or more forall qualifiers ? 226 215 … … 248 237 ExpressionNode * en; 249 238 DeclarationNode * decl; 250 DeclarationNode::Aggregate aggKey;239 AggregateDecl::Aggregate aggKey; 251 240 DeclarationNode::TypeClass tclass; 252 241 StatementNode * sn; … … 662 651 { $$ = new ExpressionNode( build_fieldSel( $1, build_tuple( $4 ) ) ); } 663 652 | postfix_expression '.' aggregate_control 664 { $$ = new ExpressionNode( build_keyword_cast( Aggregate2Target( $3 ), $1 ) ); }653 { $$ = new ExpressionNode( build_keyword_cast( $3, $1 ) ); } 665 654 | postfix_expression ARROW identifier 666 655 { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); } … … 807 796 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 808 797 | '(' aggregate_control '&' ')' cast_expression // CFA 809 { $$ = new ExpressionNode( build_keyword_cast( Aggregate2Target( $2 ), $5 ) ); }798 { $$ = new ExpressionNode( build_keyword_cast( $2, $5 ) ); } 810 799 // VIRTUAL cannot be opt because of look ahead issues 811 800 | '(' VIRTUAL ')' cast_expression // CFA … … 2071 2060 aggregate_data: 2072 2061 STRUCT 2073 { yyy = true; $$ = DeclarationNode::Struct; }2062 { yyy = true; $$ = AggregateDecl::Struct; } 2074 2063 | UNION 2075 { yyy = true; $$ = DeclarationNode::Union; }2064 { yyy = true; $$ = AggregateDecl::Union; } 2076 2065 | EXCEPTION // CFA 2077 { yyy = true; $$ = DeclarationNode::Exception; }2066 { yyy = true; $$ = AggregateDecl::Exception; } 2078 2067 ; 2079 2068 2080 2069 aggregate_control: // CFA 2081 2070 GENERATOR 2082 { yyy = true; $$ = DeclarationNode::Coroutine; }2071 { yyy = true; $$ = AggregateDecl::Coroutine; } 2083 2072 | COROUTINE 2084 { yyy = true; $$ = DeclarationNode::Coroutine; }2073 { yyy = true; $$ = AggregateDecl::Coroutine; } 2085 2074 | MONITOR 2086 { yyy = true; $$ = DeclarationNode::Monitor; }2075 { yyy = true; $$ = AggregateDecl::Monitor; } 2087 2076 | THREAD 2088 { yyy = true; $$ = DeclarationNode::Thread; }2077 { yyy = true; $$ = AggregateDecl::Thread; } 2089 2078 ; 2090 2079
Note: See TracChangeset
for help on using the changeset viewer.