Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.h

    r0dd18fd rd104b02  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Aug 18 15:40:00 2017
    13 // Update Count     : 56
     12// Last Modified On : Tus Jul 25 25:30:00 2017
     13// Update Count     : 54
    1414//
    1515
     
    2121
    2222#include "Common/Indenter.h"      // for Indenter
     23
    2324#include "SynTree/Declaration.h"  // for DeclarationWithType (ptr only), Fun...
    2425#include "SynTree/Visitor.h"      // for Visitor
    2526#include "SynTree/SynTree.h"      // for Visitor Nodes
     27
     28#include "Common/Indenter.h"      // for Indenter
    2629
    2730namespace CodeGen {
     
    7477                virtual void visit( CommaExpr *commaExpr );
    7578                virtual void visit( CompoundLiteralExpr *compLitExpr );
     79                virtual void visit( UniqueExpr * );
     80                virtual void visit( TupleAssignExpr * tupleExpr );
    7681                virtual void visit( UntypedTupleExpr *tupleExpr );
    7782                virtual void visit( TupleExpr *tupleExpr );
     
    108113                };
    109114
     115                struct LineMarker {
     116                        CodeLocation const & loc;
     117                        bool toPrint;
     118
     119                        LineMarker(CodeLocation const & loc, bool toPrint);
     120                };
     121
     122                LineMarker lineDirective(BaseSyntaxNode const * node);
     123
    110124                void asmName( DeclarationWithType *decl );
    111125
    112126                void extension( Expression *expr );
    113127                void extension( Declaration *decl );
    114 
    115                 void updateLocation( BaseSyntaxNode const * to );
    116128          private:
    117129                Indenter indent;
     
    122134                bool genC = false;    // true if output has to be C code
    123135                bool lineMarks = false;
    124 
    125                 CodeLocation currentLocation;
    126                 void updateLocation( CodeLocation const & to );
    127                 void nextLine();
    128136
    129137                void handleStorageClass( DeclarationWithType *decl );
     
    152160        /// returns C-compatible name of declaration
    153161        std::string genName( DeclarationWithType * decl );
     162
     163        std::ostream & operator<<(std::ostream &,
     164                CodeGenerator::LineMarker const &);
    154165} // namespace CodeGen
    155166
Note: See TracChangeset for help on using the changeset viewer.