Changeset fae90d5 for src/Parser
- Timestamp:
- Mar 30, 2018, 6:16:42 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, with_gc
- Children:
- b10affd
- Parents:
- 43725bd
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
r43725bd rfae90d5 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Mar 22 16:56:21201813 // Update Count : 31 2512 // Last Modified On : Wed Mar 28 17:52:24 2018 13 // Update Count : 3130 14 14 // 15 15 … … 497 497 { $$ = new ExpressionNode( build_func( new ExpressionNode( build_postfix_name( $5 ) ), $2 ) ); } 498 498 | type_name '.' no_attr_identifier // CFA, nested type 499 { SemanticError( yylloc, "Qualified names are currently unimplemented." ); $$ = nullptr; } // FIX ME499 { SemanticError( yylloc, "Qualified names are currently unimplemented." ); $$ = nullptr; } 500 500 | type_name '.' '[' push field_list pop ']' // CFA, nested type / tuple field selector 501 { SemanticError( yylloc, "Qualified names are currently unimplemented." ); $$ = nullptr; } // FIX ME501 { SemanticError( yylloc, "Qualified names are currently unimplemented." ); $$ = nullptr; } 502 502 | GENERIC '(' assignment_expression ',' generic_assoc_list ')' // C11 503 { SemanticError( yylloc, "_Generic is currently unimplemented." ); $$ = nullptr; } // FIX ME503 { SemanticError( yylloc, "_Generic is currently unimplemented." ); $$ = nullptr; } 504 504 ; 505 505 … … 687 687 | '(' type_no_function ')' cast_expression 688 688 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 689 | '(' COROUTINE '&' ')' cast_expression // CFA 690 { SemanticError( yylloc, "coroutine cast is currently unimplemented." ); $$ = nullptr; } 691 | '(' THREAD '&' ')' cast_expression // CFA 692 { SemanticError( yylloc, "monitor cast is currently unimplemented." ); $$ = nullptr; } 693 | '(' MONITOR '&' ')' cast_expression // CFA 694 { SemanticError( yylloc, "thread cast is currently unimplemented." ); $$ = nullptr; } 689 695 // VIRTUAL cannot be opt because of look ahead issues 690 | '(' VIRTUAL ')' cast_expression 696 | '(' VIRTUAL ')' cast_expression // CFA 691 697 { $$ = new ExpressionNode( new VirtualCastExpr( maybeMoveBuild< Expression >( $4 ), maybeMoveBuildType( nullptr ) ) ); } 692 | '(' VIRTUAL type_no_function ')' cast_expression 698 | '(' VIRTUAL type_no_function ')' cast_expression // CFA 693 699 { $$ = new ExpressionNode( new VirtualCastExpr( maybeMoveBuild< Expression >( $5 ), maybeMoveBuildType( $3 ) ) ); } 694 700 // | '(' type_no_function ')' tuple … … 782 788 | logical_OR_expression '?' comma_expression ':' conditional_expression 783 789 { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); } 784 // FIX ME: this hackcomputes $1 twice790 // FIX ME: computes $1 twice 785 791 | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand 786 792 { $$ = new ExpressionNode( build_cond( $1, $1, $4 ) ); } … … 797 803 { $$ = new ExpressionNode( build_binary_val( $2, $1, $3 ) ); } 798 804 | unary_expression '=' '{' initializer_list comma_opt '}' 799 { SemanticError( yylloc, "Initializer assignment is currently unimplemented." ); $$ = nullptr; } // FIX ME805 { SemanticError( yylloc, "Initializer assignment is currently unimplemented." ); $$ = nullptr; } 800 806 ; 801 807 … … 867 873 | exception_statement 868 874 | enable_disable_statement 869 { SemanticError( yylloc, "enable/disable statement is currently unimplemented." ); $$ = nullptr; } // FIX ME875 { SemanticError( yylloc, "enable/disable statement is currently unimplemented." ); $$ = nullptr; } 870 876 | asm_statement 871 877 ; … … 1062 1068 { $$ = new StatementNode( build_return( $2 ) ); } 1063 1069 | RETURN '{' initializer_list comma_opt '}' 1064 { SemanticError( yylloc, "Initializer return is currently unimplemented." ); $$ = nullptr; } // FIX ME1070 { SemanticError( yylloc, "Initializer return is currently unimplemented." ); $$ = nullptr; } 1065 1071 | THROW assignment_expression_opt ';' // handles rethrow 1066 1072 { $$ = new StatementNode( build_throw( $2 ) ); } … … 1086 1092 mutex_statement: 1087 1093 MUTEX '(' argument_expression_list ')' statement 1088 { SemanticError( yylloc, "Mutex statement is currently unimplemented." ); $$ = nullptr; } // FIX ME1094 { SemanticError( yylloc, "Mutex statement is currently unimplemented." ); $$ = nullptr; } 1089 1095 ; 1090 1096 … … 1308 1314 static_assert: 1309 1315 STATICASSERT '(' constant_expression ',' string_literal ')' ';' // C11 1310 { SemanticError( yylloc, "Static assert is currently unimplemented." ); $$ = nullptr; } // FIX ME1316 { SemanticError( yylloc, "Static assert is currently unimplemented." ); $$ = nullptr; } 1311 1317 1312 1318 // C declaration syntax is notoriously confusing and error prone. Cforall provides its own type, variable and function
Note: See TracChangeset
for help on using the changeset viewer.