Changeset 3b8e52c for src/Parser


Ignore:
Timestamp:
Aug 17, 2016, 11:09:11 PM (9 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
1cb2282, 7a5d773
Parents:
926af74
Message:

more refactoring of parser code

Location:
src/Parser
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r926af74 r3b8e52c  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Aug 16 18:00:34 2016
    13 // Update Count     : 179
     12// Last Modified On : Wed Aug 17 11:08:56 2016
     13// Update Count     : 180
    1414//
    1515
     
    780780
    781781DeclarationNode *DeclarationNode::appendList( DeclarationNode *node ) {
    782         if ( node != 0 ) {
    783                 set_last( node );
    784         } // if
    785         return this;
     782        return (DeclarationNode *)set_last( node );
    786783}
    787784
  • src/Parser/LinkageSpec.cc

    r926af74 r3b8e52c  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:22:09 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Aug 19 15:53:05 2015
    13 // Update Count     : 5
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed Aug 17 23:02:37 2016
     13// Update Count     : 11
    1414//
    1515
     
    3131
    3232std::string LinkageSpec::toString( LinkageSpec::Type linkage ) {
    33         switch ( linkage ) {
    34           case Intrinsic:
    35                 return "intrinsic";
    36           case Cforall:
    37                 return "Cforall";
    38           case C:
    39                 return "C";
    40           case AutoGen:
    41                 return "automatically generated";
    42           case Compiler:
    43                 return "compiler built-in";
    44         }
    45         assert( false );
    46         return "";
     33        static const char *linkageKinds[LinkageSpec::NoOfTypes] = {
     34                "intrinsic", "Cforall", "C", "automatically generated", "compiler built-in",
     35        };
     36        return linkageKinds[linkage];
    4737}
    4838
    4939bool LinkageSpec::isDecoratable( Type t ) {
    50         switch ( t ) {
    51           case Intrinsic:
    52           case Cforall:
    53           case AutoGen:
    54                 return true;
    55           case C:
    56           case Compiler:
    57                 return false;
    58         }
    59         assert( false );
    60         return false;
     40        static bool decoratable[LinkageSpec::NoOfTypes] = {
     41                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
     42                        true,           true,           false,  true,           false,
     43        };
     44        return decoratable[ t ];
    6145}
    6246
    6347bool LinkageSpec::isGeneratable( Type t ) {
    64         switch ( t ) {
    65           case Intrinsic:
    66           case Cforall:
    67           case AutoGen:
    68           case C:
    69                 return true;
    70           case Compiler:
    71                 return false;
    72         }
    73         assert( false );
    74         return false;
     48        static bool generatable[LinkageSpec::NoOfTypes] = {
     49                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
     50                        true,           true,           true,   true,           false,
     51        };
     52        return generatable[ t ];
    7553}
    7654
     
    8159
    8260bool LinkageSpec::isOverridable( Type t ) {
    83         switch ( t ) {
    84           case Intrinsic:
    85           case AutoGen:
    86                 return true;
    87           case Cforall:
    88           case C:
    89           case Compiler:
    90                 return false;
    91         }
    92         assert( false );
    93         return false;
     61        static bool overridable[LinkageSpec::NoOfTypes] = {
     62                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
     63                        true,           false,          false,  true,           false,
     64        };
     65        return overridable[ t ];
    9466}
    9567
    9668bool LinkageSpec::isBuiltin( Type t ) {
    97         switch ( t ) {
    98           case Cforall:
    99           case AutoGen:
    100           case C:
    101                 return false;
    102           case Intrinsic:
    103           case Compiler:
    104                 return true;
    105         }
    106         assert( false );
    107         return false;
     69        static bool builtin[LinkageSpec::NoOfTypes] = {
     70                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
     71                        true,           false,          false,  false,          true,
     72        };
     73        return builtin[ t ];
    10874}
    10975
  • src/Parser/LinkageSpec.h

    r926af74 r3b8e52c  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:24:28 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Tue Aug 18 14:11:55 2015
    13 // Update Count     : 5
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed Aug 17 22:19:48 2016
     13// Update Count     : 6
    1414//
    1515
     
    2525                C,                                                                                              // not overloadable, not mangled
    2626                AutoGen,                                                                                // built by translator (struct assignment)
    27                 Compiler                                                                                // gcc internal
     27                Compiler,                                                                               // gcc internal
     28                NoOfTypes
    2829        };
    2930 
  • src/Parser/parser.cc

    r926af74 r3b8e52c  
    78017801#line 1993 "parser.yy"
    78027802    {
    7803                         linkageStack.push( linkage );
     7803                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    78047804                        linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
    78057805                }
  • src/Parser/parser.yy

    r926af74 r3b8e52c  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Aug 16 21:59:35 2016
    13 // Update Count     : 1907
     12// Last Modified On : Wed Aug 17 11:18:40 2016
     13// Update Count     : 1908
    1414//
    1515
     
    19921992        | EXTERN STRINGliteral
    19931993                {
    1994                         linkageStack.push( linkage );
     1994                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    19951995                        linkage = LinkageSpec::fromString( *$2 );
    19961996                }
Note: See TracChangeset for help on using the changeset viewer.