Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.h

    r888cbe4 rafc1045  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // CodeGenerator.h --
     7// CodeGenerator.h -- 
    88//
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun  9 13:15:58 2016
    13 // Update Count     : 29
     12// Last Modified On : Wed Mar  2 17:32:24 2016
     13// Update Count     : 28
    1414//
    1515
     
    6060                virtual void visit( MemberExpr *memberExpr );
    6161                virtual void visit( VariableExpr *variableExpr );
    62                 virtual void visit( ConstantExpr *constantExpr );
     62                virtual void visit( ConstantExpr *constantExpr ); 
    6363                virtual void visit( SizeofExpr *sizeofExpr );
    6464                virtual void visit( AlignofExpr *alignofExpr );
     
    8585                virtual void visit( ForStmt * );
    8686                virtual void visit( NullStmt * );
    87                 virtual void visit( DeclStmt * );
    88 
    89                 void genAttributes( std::list< Attribute * > & attributes );
     87                virtual void visit( DeclStmt * );
    9088
    9189                template< class Iterator > void genCommaList( Iterator begin, Iterator end );
     
    9492                        Indenter(CodeGenerator &cg) : cg(cg) {}
    9593                        CodeGenerator & cg;
    96                         std::ostream& operator()(std::ostream & os) const;
     94                        std::ostream& operator()(std::ostream & os);
    9795                };
    98 
    99                 struct LabelPrinter {
    100                         LabelPrinter(CodeGenerator &cg) : cg(cg), labels( 0 ) {}
    101                         LabelPrinter & operator()( std::list< Label > & l );
    102                         CodeGenerator & cg;
    103                         std::list< Label > * labels;
    104                 };
    105 
    106                 void extension( Expression *expr ) {
    107                         if ( expr->get_extension() ) {
    108                                 output << "__extension__ ";
    109                         } // if
    110                 } // extension
    11196          private:
    11297
     
    115100                bool insideFunction;
    116101                std::ostream &output;
    117                 LabelPrinter printLabels;
    118102
    119103                void printDesignators( std::list< Expression * > & );
     104                static std::string printLabels ( std::list < Label > & );
    120105                void handleStorageClass( Declaration *decl );
    121106                void handleAggregate( AggregateDecl *aggDecl );
     
    123108
    124109        };
    125 
     110       
    126111        template< class Iterator >
    127112        void CodeGenerator::genCommaList( Iterator begin, Iterator end ) {
     
    134119                } // for
    135120        }
    136 
     121 
    137122        inline bool doSemicolon( Declaration* decl ) {
    138123                if ( FunctionDecl* func = dynamic_cast< FunctionDecl* >( decl ) ) {
Note: See TracChangeset for help on using the changeset viewer.