1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-22 14:12:10 +02:00

fixed bug with parsing __declspec

This commit is contained in:
Mike Kucera 2009-02-09 17:53:36 +00:00
parent fc9b4516b3
commit c567450356
13 changed files with 6017 additions and 6006 deletions

View file

@ -114,6 +114,7 @@ extended_decl_modifier
::= 'identifier'
| 'identifier' '(' ')'
| 'identifier' '(' 'identifier' ')'
| 'identifier' '(' 'stringlit' ')'
------------------------------------------------------------------------------------

View file

@ -1265,105 +1265,105 @@ private GNUBuildASTParserAction gnuAction;
}
//
// Rule 340: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
// Rule 341: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
//
case 340: { gnuAction.consumeDeclarationASM(); break;
case 341: { gnuAction.consumeDeclarationASM(); break;
}
//
// Rule 351: unary_expression ::= __alignof__ unary_expression
// Rule 352: unary_expression ::= __alignof__ unary_expression
//
case 351: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
case 352: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
}
//
// Rule 352: unary_expression ::= __alignof__ ( type_id )
// Rule 353: unary_expression ::= __alignof__ ( type_id )
//
case 352: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break;
case 353: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break;
}
//
// Rule 353: unary_expression ::= typeof unary_expression
// Rule 354: unary_expression ::= typeof unary_expression
//
case 353: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
case 354: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
}
//
// Rule 354: unary_expression ::= typeof ( type_id )
// Rule 355: unary_expression ::= typeof ( type_id )
//
case 354: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
case 355: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
}
//
// Rule 355: relational_expression ::= relational_expression >? shift_expression
// Rule 356: relational_expression ::= relational_expression >? shift_expression
//
case 355: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
case 356: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
}
//
// Rule 356: relational_expression ::= relational_expression <? shift_expression
// Rule 357: relational_expression ::= relational_expression <? shift_expression
//
case 356: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
case 357: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
}
//
// Rule 357: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
// Rule 358: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
//
case 357: { action. consumeExpressionConditional(); break;
case 358: { action. consumeExpressionConditional(); break;
}
//
// Rule 358: primary_expression ::= ( compound_statement )
// Rule 359: primary_expression ::= ( compound_statement )
//
case 358: { gnuAction.consumeCompoundStatementExpression(); break;
case 359: { gnuAction.consumeCompoundStatementExpression(); break;
}
//
// Rule 359: labeled_statement ::= case case_range_expression : statement
// Rule 360: labeled_statement ::= case case_range_expression : statement
//
case 359: { action. consumeStatementCase(); break;
case 360: { action. consumeStatementCase(); break;
}
//
// Rule 360: case_range_expression ::= constant_expression ... constant_expression
// Rule 361: case_range_expression ::= constant_expression ... constant_expression
//
case 360: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
case 361: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
// Rule 364: typeof_type_specifier ::= typeof unary_expression
// Rule 365: typeof_type_specifier ::= typeof unary_expression
//
case 364: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
case 365: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
}
//
// Rule 365: typeof_type_specifier ::= typeof ( type_id )
// Rule 366: typeof_type_specifier ::= typeof ( type_id )
//
case 365: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
case 366: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
}
//
// Rule 366: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
// Rule 367: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
//
case 366: { action. consumeDeclarationSpecifiersTypeof(); break;
case 367: { action. consumeDeclarationSpecifiersTypeof(); break;
}
//
// Rule 382: field_name_designator ::= identifier_token :
// Rule 383: field_name_designator ::= identifier_token :
//
case 382: { action. consumeDesignatorFieldGCC(); break;
case 383: { action. consumeDesignatorFieldGCC(); break;
}
//
// Rule 383: array_range_designator ::= [ constant_expression ... constant_expression ]
// Rule 384: array_range_designator ::= [ constant_expression ... constant_expression ]
//
case 383: { action. consumeDesignatorArrayRange(); break;
case 384: { action. consumeDesignatorArrayRange(); break;
}
//
// Rule 384: designated_initializer ::= <openscope-ast> field_name_designator initializer
// Rule 385: designated_initializer ::= <openscope-ast> field_name_designator initializer
//
case 384: { action. consumeInitializerDesignated(); break;
case 385: { action. consumeInitializerDesignated(); break;
}

View file

@ -55,7 +55,7 @@ public interface GCCParsersym {
TK_integer = 18,
TK_floating = 19,
TK_charconst = 20,
TK_stringlit = 14,
TK_stringlit = 13,
TK_identifier = 2,
TK_Completion = 5,
TK_EndOfCompletion = 3,
@ -67,7 +67,7 @@ public interface GCCParsersym {
TK_Arrow = 85,
TK_PlusPlus = 15,
TK_MinusMinus = 16,
TK_And = 13,
TK_And = 14,
TK_Star = 6,
TK_Plus = 11,
TK_Minus = 12,
@ -130,8 +130,8 @@ public interface GCCParsersym {
"LeftBrace",
"Plus",
"Minus",
"And",
"stringlit",
"And",
"PlusPlus",
"MinusMinus",
"sizeof",

View file

@ -1282,99 +1282,99 @@ private GNUBuildASTParserAction gnuAction;
}
//
// Rule 339: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
// Rule 340: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
//
case 339: { gnuAction.consumeDeclarationASM(); break;
case 340: { gnuAction.consumeDeclarationASM(); break;
}
//
// Rule 350: unary_expression ::= __alignof__ unary_expression
// Rule 351: unary_expression ::= __alignof__ unary_expression
//
case 350: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
case 351: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
}
//
// Rule 351: unary_expression ::= typeof unary_expression
// Rule 352: unary_expression ::= typeof unary_expression
//
case 351: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
case 352: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
}
//
// Rule 352: relational_expression ::= relational_expression >? shift_expression
// Rule 353: relational_expression ::= relational_expression >? shift_expression
//
case 352: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
case 353: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
}
//
// Rule 353: relational_expression ::= relational_expression <? shift_expression
// Rule 354: relational_expression ::= relational_expression <? shift_expression
//
case 353: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
case 354: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
}
//
// Rule 354: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
// Rule 355: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
//
case 354: { action. consumeExpressionConditional(); break;
case 355: { action. consumeExpressionConditional(); break;
}
//
// Rule 355: primary_expression ::= ( compound_statement )
// Rule 356: primary_expression ::= ( compound_statement )
//
case 355: { gnuAction.consumeCompoundStatementExpression(); break;
case 356: { gnuAction.consumeCompoundStatementExpression(); break;
}
//
// Rule 356: labeled_statement ::= case case_range_expression : statement
// Rule 357: labeled_statement ::= case case_range_expression : statement
//
case 356: { action. consumeStatementCase(); break;
case 357: { action. consumeStatementCase(); break;
}
//
// Rule 357: case_range_expression ::= constant_expression ... constant_expression
// Rule 358: case_range_expression ::= constant_expression ... constant_expression
//
case 357: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
case 358: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
// Rule 361: typeof_type_specifier ::= typeof unary_expression
// Rule 362: typeof_type_specifier ::= typeof unary_expression
//
case 361: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
case 362: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
}
//
// Rule 362: typeof_type_specifier ::= typeof ( type_id )
// Rule 363: typeof_type_specifier ::= typeof ( type_id )
//
case 362: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
case 363: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
}
//
// Rule 363: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
// Rule 364: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
//
case 363: { action. consumeDeclarationSpecifiersTypeof(); break;
case 364: { action. consumeDeclarationSpecifiersTypeof(); break;
}
//
// Rule 379: field_name_designator ::= identifier_token :
// Rule 380: field_name_designator ::= identifier_token :
//
case 379: { action. consumeDesignatorFieldGCC(); break;
case 380: { action. consumeDesignatorFieldGCC(); break;
}
//
// Rule 380: array_range_designator ::= [ constant_expression ... constant_expression ]
// Rule 381: array_range_designator ::= [ constant_expression ... constant_expression ]
//
case 380: { action. consumeDesignatorArrayRange(); break;
case 381: { action. consumeDesignatorArrayRange(); break;
}
//
// Rule 381: designated_initializer ::= <openscope-ast> field_name_designator initializer
// Rule 382: designated_initializer ::= <openscope-ast> field_name_designator initializer
//
case 381: { action. consumeInitializerDesignated(); break;
case 382: { action. consumeInitializerDesignated(); break;
}
//
// Rule 383: no_sizeof_type_name_start ::= ERROR_TOKEN
// Rule 384: no_sizeof_type_name_start ::= ERROR_TOKEN
//
case 383: { action. consumeEmpty(); break;
case 384: { action. consumeEmpty(); break;
}

View file

@ -55,7 +55,7 @@ public interface GCCSizeofExpressionParsersym {
TK_integer = 17,
TK_floating = 18,
TK_charconst = 19,
TK_stringlit = 13,
TK_stringlit = 11,
TK_identifier = 1,
TK_Completion = 5,
TK_EndOfCompletion = 3,
@ -67,7 +67,7 @@ public interface GCCSizeofExpressionParsersym {
TK_Arrow = 85,
TK_PlusPlus = 14,
TK_MinusMinus = 15,
TK_And = 11,
TK_And = 12,
TK_Star = 6,
TK_Plus = 9,
TK_Minus = 10,
@ -106,7 +106,7 @@ public interface GCCSizeofExpressionParsersym {
TK_RightParen = 31,
TK_RightBrace = 50,
TK_SemiColon = 27,
TK_typeof = 12,
TK_typeof = 13,
TK___alignof__ = 23,
TK___attribute__ = 7,
TK___declspec = 8,
@ -128,9 +128,9 @@ public interface GCCSizeofExpressionParsersym {
"__declspec",
"Plus",
"Minus",
"stringlit",
"And",
"typeof",
"stringlit",
"PlusPlus",
"MinusMinus",
"sizeof",

View file

@ -1969,135 +1969,135 @@ private GNUBuildASTParserAction gnuAction;
}
//
// Rule 560: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
// Rule 561: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
//
case 560: { gnuAction.consumeDeclarationASM(); break;
case 561: { gnuAction.consumeDeclarationASM(); break;
}
//
// Rule 571: unary_expression ::= __alignof__ unary_expression
// Rule 572: unary_expression ::= __alignof__ unary_expression
//
case 571: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
case 572: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
}
//
// Rule 572: unary_expression ::= __alignof__ ( type_id )
// Rule 573: unary_expression ::= __alignof__ ( type_id )
//
case 572: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break;
case 573: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break;
}
//
// Rule 573: unary_expression ::= typeof unary_expression
// Rule 574: unary_expression ::= typeof unary_expression
//
case 573: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
case 574: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
}
//
// Rule 574: unary_expression ::= typeof ( type_id )
// Rule 575: unary_expression ::= typeof ( type_id )
//
case 574: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
case 575: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
}
//
// Rule 575: relational_expression ::= relational_expression >? shift_expression
// Rule 576: relational_expression ::= relational_expression >? shift_expression
//
case 575: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
case 576: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
}
//
// Rule 576: relational_expression ::= relational_expression <? shift_expression
// Rule 577: relational_expression ::= relational_expression <? shift_expression
//
case 576: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
case 577: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
}
//
// Rule 577: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
// Rule 578: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
//
case 577: { action. consumeExpressionConditional(); break;
case 578: { action. consumeExpressionConditional(); break;
}
//
// Rule 578: primary_expression ::= ( compound_statement )
// Rule 579: primary_expression ::= ( compound_statement )
//
case 578: { gnuAction.consumeCompoundStatementExpression(); break;
case 579: { gnuAction.consumeCompoundStatementExpression(); break;
}
//
// Rule 579: labeled_statement ::= case case_range_expression : statement
// Rule 580: labeled_statement ::= case case_range_expression : statement
//
case 579: { action. consumeStatementCase(); break;
case 580: { action. consumeStatementCase(); break;
}
//
// Rule 580: case_range_expression ::= constant_expression ... constant_expression
// Rule 581: case_range_expression ::= constant_expression ... constant_expression
//
case 580: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
case 581: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
// Rule 584: typeof_type_specifier ::= typeof unary_expression
// Rule 585: typeof_type_specifier ::= typeof unary_expression
//
case 584: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
case 585: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
}
//
// Rule 585: typeof_type_specifier ::= typeof ( type_id )
// Rule 586: typeof_type_specifier ::= typeof ( type_id )
//
case 585: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
case 586: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
}
//
// Rule 586: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
// Rule 587: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
//
case 586: { action. consumeDeclarationSpecifiersTypeof(); break;
case 587: { action. consumeDeclarationSpecifiersTypeof(); break;
}
//
// Rule 599: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
// Rule 600: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
//
case 599: { action. consumeDeclaratorWithPointer(true); break;
case 600: { action. consumeDeclaratorWithPointer(true); break;
}
//
// Rule 602: simple_type_specifier ::= _Complex
//
case 602: { action. consumeToken(); break;
}
//
// Rule 603: simple_type_specifier ::= _Imaginary
// Rule 603: simple_type_specifier ::= _Complex
//
case 603: { action. consumeToken(); break;
}
//
// Rule 604: cv_qualifier ::= restrict
// Rule 604: simple_type_specifier ::= _Imaginary
//
case 604: { action. consumeToken(); break;
}
//
// Rule 605: explicit_instantiation ::= extern template declaration
// Rule 605: cv_qualifier ::= restrict
//
case 605: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break;
case 605: { action. consumeToken(); break;
}
//
// Rule 606: explicit_instantiation ::= static template declaration
// Rule 606: explicit_instantiation ::= extern template declaration
//
case 606: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break;
case 606: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break;
}
//
// Rule 607: explicit_instantiation ::= inline template declaration
// Rule 607: explicit_instantiation ::= static template declaration
//
case 607: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break;
case 607: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break;
}
//
// Rule 608: postfix_expression ::= ( type_id ) initializer_list
// Rule 608: explicit_instantiation ::= inline template declaration
//
case 608: { action. consumeExpressionTypeIdInitializer(); break;
case 608: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break;
}
//
// Rule 609: postfix_expression ::= ( type_id ) initializer_list
//
case 609: { action. consumeExpressionTypeIdInitializer(); break;
}

View file

@ -84,7 +84,7 @@ public interface GPPParsersym {
TK_integer = 59,
TK_floating = 60,
TK_charconst = 61,
TK_stringlit = 44,
TK_stringlit = 42,
TK_identifier = 1,
TK_Completion = 2,
TK_EndOfCompletion = 10,
@ -99,8 +99,8 @@ public interface GPPParsersym {
TK_MinusMinus = 47,
TK_And = 12,
TK_Star = 11,
TK_Plus = 42,
TK_Minus = 43,
TK_Plus = 43,
TK_Minus = 44,
TK_Tilde = 8,
TK_Bang = 48,
TK_Slash = 99,
@ -190,9 +190,9 @@ public interface GPPParsersym {
"static",
"typedef",
"SemiColon",
"stringlit",
"Plus",
"Minus",
"stringlit",
"template",
"PlusPlus",
"MinusMinus",

View file

@ -1980,129 +1980,129 @@ private GNUBuildASTParserAction gnuAction;
}
//
// Rule 558: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
// Rule 559: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
//
case 558: { gnuAction.consumeDeclarationASM(); break;
case 559: { gnuAction.consumeDeclarationASM(); break;
}
//
// Rule 569: unary_expression ::= __alignof__ unary_expression
// Rule 570: unary_expression ::= __alignof__ unary_expression
//
case 569: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
case 570: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break;
}
//
// Rule 570: unary_expression ::= typeof unary_expression
// Rule 571: unary_expression ::= typeof unary_expression
//
case 570: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
case 571: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
}
//
// Rule 571: relational_expression ::= relational_expression >? shift_expression
// Rule 572: relational_expression ::= relational_expression >? shift_expression
//
case 571: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
case 572: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break;
}
//
// Rule 572: relational_expression ::= relational_expression <? shift_expression
// Rule 573: relational_expression ::= relational_expression <? shift_expression
//
case 572: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
case 573: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break;
}
//
// Rule 573: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
// Rule 574: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
//
case 573: { action. consumeExpressionConditional(); break;
case 574: { action. consumeExpressionConditional(); break;
}
//
// Rule 574: primary_expression ::= ( compound_statement )
// Rule 575: primary_expression ::= ( compound_statement )
//
case 574: { gnuAction.consumeCompoundStatementExpression(); break;
case 575: { gnuAction.consumeCompoundStatementExpression(); break;
}
//
// Rule 575: labeled_statement ::= case case_range_expression : statement
// Rule 576: labeled_statement ::= case case_range_expression : statement
//
case 575: { action. consumeStatementCase(); break;
case 576: { action. consumeStatementCase(); break;
}
//
// Rule 576: case_range_expression ::= constant_expression ... constant_expression
// Rule 577: case_range_expression ::= constant_expression ... constant_expression
//
case 576: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
case 577: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
// Rule 580: typeof_type_specifier ::= typeof unary_expression
// Rule 581: typeof_type_specifier ::= typeof unary_expression
//
case 580: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
case 581: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break;
}
//
// Rule 581: typeof_type_specifier ::= typeof ( type_id )
// Rule 582: typeof_type_specifier ::= typeof ( type_id )
//
case 581: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
case 582: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break;
}
//
// Rule 582: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
// Rule 583: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
//
case 582: { action. consumeDeclarationSpecifiersTypeof(); break;
case 583: { action. consumeDeclarationSpecifiersTypeof(); break;
}
//
// Rule 595: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
// Rule 596: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
//
case 595: { action. consumeDeclaratorWithPointer(true); break;
case 596: { action. consumeDeclaratorWithPointer(true); break;
}
//
// Rule 598: simple_type_specifier ::= _Complex
//
case 598: { action. consumeToken(); break;
}
//
// Rule 599: simple_type_specifier ::= _Imaginary
// Rule 599: simple_type_specifier ::= _Complex
//
case 599: { action. consumeToken(); break;
}
//
// Rule 600: cv_qualifier ::= restrict
// Rule 600: simple_type_specifier ::= _Imaginary
//
case 600: { action. consumeToken(); break;
}
//
// Rule 601: explicit_instantiation ::= extern template declaration
// Rule 601: cv_qualifier ::= restrict
//
case 601: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break;
case 601: { action. consumeToken(); break;
}
//
// Rule 602: explicit_instantiation ::= static template declaration
// Rule 602: explicit_instantiation ::= extern template declaration
//
case 602: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break;
case 602: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break;
}
//
// Rule 603: explicit_instantiation ::= inline template declaration
// Rule 603: explicit_instantiation ::= static template declaration
//
case 603: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break;
case 603: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break;
}
//
// Rule 604: postfix_expression ::= ( type_id ) initializer_list
// Rule 604: explicit_instantiation ::= inline template declaration
//
case 604: { action. consumeExpressionTypeIdInitializer(); break;
case 604: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break;
}
//
// Rule 606: no_sizeof_type_id_start ::= ERROR_TOKEN
// Rule 605: postfix_expression ::= ( type_id ) initializer_list
//
case 606: { action. consumeEmpty(); break;
case 605: { action. consumeExpressionTypeIdInitializer(); break;
}
//
// Rule 607: no_sizeof_type_id_start ::= ERROR_TOKEN
//
case 607: { action. consumeEmpty(); break;
}

View file

@ -84,7 +84,7 @@ public interface GPPSizeofExpressionParsersym {
TK_integer = 58,
TK_floating = 59,
TK_charconst = 60,
TK_stringlit = 44,
TK_stringlit = 41,
TK_identifier = 1,
TK_Completion = 2,
TK_EndOfCompletion = 10,
@ -99,8 +99,8 @@ public interface GPPSizeofExpressionParsersym {
TK_MinusMinus = 47,
TK_And = 12,
TK_Star = 11,
TK_Plus = 41,
TK_Minus = 42,
TK_Plus = 42,
TK_Minus = 43,
TK_Tilde = 8,
TK_Bang = 48,
TK_Slash = 99,
@ -136,7 +136,7 @@ public interface GPPSizeofExpressionParsersym {
TK_RightBracket = 126,
TK_RightParen = 75,
TK_RightBrace = 81,
TK_SemiColon = 43,
TK_SemiColon = 44,
TK_LeftBrace = 71,
TK_typeof = 27,
TK___alignof__ = 61,
@ -189,10 +189,10 @@ public interface GPPSizeofExpressionParsersym {
"register",
"static",
"typedef",
"stringlit",
"Plus",
"Minus",
"SemiColon",
"stringlit",
"template",
"PlusPlus",
"MinusMinus",