Ignore:
Timestamp:
Dec 3, 2014, 3:08:38 PM (10 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, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
d9a0e76
Parents:
42dcae7
Message:

underscore changes, ptrdiff_t changes, formating, _Bool prelude

File:
1 edited

Legend:

Unmodified
Added
Removed
  • translator/Parser/InitializerNode.cc

    r42dcae7 r3848e0e  
    99
    1010InitializerNode::InitializerNode( ExpressionNode *_expr, bool aggrp, ExpressionNode *des )
    11   : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 )
    12 {
    13   if ( aggrp )
    14     kids = dynamic_cast< InitializerNode *>( get_link() );
     11        : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ) {
     12    if ( aggrp )
     13        kids = dynamic_cast< InitializerNode *>( get_link() );
    1514
    16   if ( kids != 0 )
    17     set_link( 0 );
     15    if ( kids != 0 )
     16        set_link( 0 );
    1817}
    1918
    2019InitializerNode::InitializerNode( InitializerNode *init, bool aggrp, ExpressionNode *des )
    21   : aggregate( aggrp ), designator( des ), kids( 0 )
    22 {
    23   if (init != 0)
    24     set_link(init);
     20        : aggregate( aggrp ), designator( des ), kids( 0 ) {
     21    if ( init != 0 )
     22        set_link(init);
    2523
    26   if ( aggrp )
    27       kids = dynamic_cast< InitializerNode *>( get_link() );
     24    if ( aggrp )
     25        kids = dynamic_cast< InitializerNode *>( get_link() );
    2826
    29   if ( kids != 0 )
    30     set_next( 0 );
     27    if ( kids != 0 )
     28        set_next( 0 );
    3129}
    3230
    3331InitializerNode::~InitializerNode() {
    34   delete expr;
     32    delete expr;
    3533}
    3634
    3735void InitializerNode::print( std::ostream &os, int indent ) const {
    38   os << std::string(indent, ' ') << "Initializer expression" << std::endl;
     36    os << std::string(indent, ' ') << "Initializer expression" << std::endl;
    3937}
    4038
    4139void InitializerNode::printOneLine( std::ostream &os ) const {
    42   if (!aggregate)
    43     {
    44 
    45       if ( designator != 0 )
    46         {
    47           os << "designated by: (";
    48           ExpressionNode  *curdes = designator;
    49           while( curdes != 0){
    50             curdes->printOneLine(os);
    51             curdes = (ExpressionNode *)(curdes->get_link());
    52             if(curdes) os << ", ";
    53           }
    54           os << ")";
     40    if ( ! aggregate ) {
     41        if ( designator != 0 ) {
     42            os << "designated by: (";
     43            ExpressionNode  *curdes = designator;
     44            while( curdes != 0) {
     45                curdes->printOneLine(os);
     46                curdes = (ExpressionNode *)(curdes->get_link());
     47                if ( curdes ) os << ", ";
     48            }
     49            os << ")";
    5550        }
    56 
    57       if (expr) expr->printOneLine(os);
    58     }
    59   else  // It's an aggregate
    60     {
    61       os << "[--";
    62       if( next_init() != 0 )
    63         next_init()->printOneLine(os);
    64 
    65       if (aggregate) os << "--]";
     51        if ( expr ) expr->printOneLine(os);
     52    } else {  // It's an aggregate
     53        os << "[--";
     54        if ( next_init() != 0 )
     55            next_init()->printOneLine(os);
     56        if (aggregate) os << "--]";
    6657    }
    6758
    68   InitializerNode * moreInit;
    69   if  ( get_link() != 0 && ((moreInit = dynamic_cast< InitializerNode * >( get_link() ) ) != 0) )
    70     moreInit->printOneLine( os );
     59    InitializerNode *moreInit;
     60    if  ( get_link() != 0 && ((moreInit = dynamic_cast< InitializerNode * >( get_link() ) ) != 0) )
     61        moreInit->printOneLine( os );
    7162}
    7263
    7364Initializer *InitializerNode::build() const {
    74   // if ( get_expression() == 0 ) return 0;  // XXX (?)
     65    // if ( get_expression() == 0 ) return 0;  // XXX (?)
    7566
    76   if ( aggregate )
    77     {
    78       assert( next_init() != 0 );
     67    if ( aggregate ) {
     68        assert( next_init() != 0 );
    7969
    80       std::list< Initializer *> initlist;
    81       buildList<Initializer, InitializerNode>( next_init(), initlist );
     70        std::list< Initializer *> initlist;
     71        buildList<Initializer, InitializerNode>( next_init(), initlist );
    8272
    83       std::list< Expression *> designlist;
    84       if ( designator != 0 )
    85         buildList<Expression, ExpressionNode>( designator, designlist );
     73        std::list< Expression *> designlist;
     74        if ( designator != 0 )
     75            buildList<Expression, ExpressionNode>( designator, designlist );
    8676
    87       return new ListInit( initlist, designlist );
    88     }
    89   else
    90     {
    91       std::list< Expression *> designators;
     77        return new ListInit( initlist, designlist );
     78    } else {
     79        std::list< Expression *> designators;
    9280
    93       if ( designator != 0 )
    94         buildList<Expression, ExpressionNode>( designator, designators );
     81        if ( designator != 0 )
     82            buildList<Expression, ExpressionNode>( designator, designators );
    9583
    96       if ( get_expression() != 0)
    97         return new SingleInit( get_expression()->build(), designators );
     84        if ( get_expression() != 0)
     85            return new SingleInit( get_expression()->build(), designators );
    9886    }
    9987
    100   return 0;
     88    return 0;
    10189}
    102 
    103 
Note: See TracChangeset for help on using the changeset viewer.