Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    rc1c1112 rab57786  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Aug 24 16:21:37 2016
    13 // Update Count     : 1962
     12// Last Modified On : Mon Aug 22 14:15:15 2016
     13// Update Count     : 1943
    1414//
    1515
     
    5454#include "TypeData.h"
    5555#include "LinkageSpec.h"
     56
     57union DeclQualifiers {
     58        unsigned int value;                                                                     // assume 32-bits
     59        struct {
     60                bool Extern : 1;
     61                bool Static : 1;
     62                bool Auto : 1;
     63                bool Register : 1;
     64                bool Inline : 1;
     65                bool Fortran : 1;
     66                bool Noreturn : 1;
     67                bool Threadlocal : 1;
     68                bool Extension : 1;
     69                bool Lvalue : 1;
     70                bool Const : 1;
     71                bool Volatile : 1;
     72                bool Restrict : 1;
     73                bool Atomic : 1;
     74        } qual;
     75}; // DeclQualifiers
     76DeclQualifiers declQualifiers = { 0 };
     77
     78union DeclType {
     79        unsigned int value;                                                                     // assume 32-bits
     80        struct {
     81                bool Char : 1;
     82                bool Bool : 1;
     83                bool Short : 1;
     84                bool Int : 1;
     85                bool Float : 1;
     86                bool Double : 1;
     87                bool Long : 1;
     88                bool Signed : 1;
     89                bool Unsigned : 1;
     90                bool Void : 1;
     91                bool Complex : 1;
     92                bool Imaginary : 1;
     93                bool Valist : 1;
     94        } type;
     95}; // DeclType
     96DeclType declTypes = { 0 };
    5697
    5798extern DeclarationNode * parseTree;
     
    12871328        type_qualifier_name
    12881329        | attribute
    1289                 //{ $$ = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
     1330        //{ $$ = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
    12901331        ;
    12911332
     
    13411382                { $$ = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    13421383        | INLINE                                                                                        // C99
    1343                 //{ $$ = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    1344                 { $$ = new DeclarationNode; $$->isInline = true; }
     1384                { $$ = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    13451385        | FORTRAN                                                                                       // C99
    13461386                { $$ = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    13471387        | NORETURN                                                                                      // C11
    1348                 //{ $$ = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    1349                 { $$ = new DeclarationNode; $$->isNoreturn = true; }
     1388                { $$ = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    13501389        | THREADLOCAL                                                                           // C11
    13511390                { $$ = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     
    21142153asm_name_opt:                                                                                   // GCC
    21152154        // empty
    2116         | ASM '(' string_literal_list ')' attribute_list_opt { delete $3; }     // FIX ME: unimplemented
     2155        | ASM '(' string_literal ')' attribute_list_opt
    21172156        ;
    21182157
     
    21432182        // empty
    21442183        | any_word
    2145         | any_word '(' comma_expression_opt ')' { delete $3; } // FIX ME: unimplemented
     2184        | any_word '(' comma_expression_opt ')'
    21462185        ;
    21472186
    21482187any_word:                                                                                               // GCC
    2149         identifier_or_type_name { delete $1; }                          // FIX ME: unimplemented
    2150         | storage_class { delete $1; }                                          // FIX ME: unimplemented
    2151         | basic_type_name { delete $1; }                                        // FIX ME: unimplemented
    2152         | type_qualifier { delete $1; }                                         // FIX ME: unimplemented
     2188        identifier_or_type_name { delete $1; }
     2189        | storage_class { delete $1; }
     2190        | basic_type_name { delete $1; }
     2191        | type_qualifier { delete $1; }
    21532192        ;
    21542193
Note: See TracChangeset for help on using the changeset viewer.