Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.h

    rd104b02 r5809461  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Tus Jul 25 25:30:00 2017
    13 // Update Count     : 54
     12// Last Modified On : Fri Aug 18 15:40:00 2017
     13// Update Count     : 56
    1414//
    1515
     
    2121
    2222#include "Common/Indenter.h"      // for Indenter
    23 
    2423#include "SynTree/Declaration.h"  // for DeclarationWithType (ptr only), Fun...
    2524#include "SynTree/Visitor.h"      // for Visitor
    2625#include "SynTree/SynTree.h"      // for Visitor Nodes
    27 
    28 #include "Common/Indenter.h"      // for Indenter
    2926
    3027namespace CodeGen {
     
    6259                virtual void visit( NameExpr *nameExpr );
    6360                virtual void visit( AddressExpr *addressExpr );
     61                virtual void visit( LabelAddressExpr *addressExpr );
    6462                virtual void visit( CastExpr *castExpr );
    6563                virtual void visit( VirtualCastExpr *castExpr );
     
    113111                };
    114112
    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 
    124113                void asmName( DeclarationWithType *decl );
    125114
    126115                void extension( Expression *expr );
    127116                void extension( Declaration *decl );
     117
     118                void updateLocation( BaseSyntaxNode const * to );
    128119          private:
    129120                Indenter indent;
     
    134125                bool genC = false;    // true if output has to be C code
    135126                bool lineMarks = false;
     127
     128                CodeLocation currentLocation;
     129                void updateLocation( CodeLocation const & to );
     130                void nextLine();
    136131
    137132                void handleStorageClass( DeclarationWithType *decl );
     
    160155        /// returns C-compatible name of declaration
    161156        std::string genName( DeclarationWithType * decl );
    162 
    163         std::ostream & operator<<(std::ostream &,
    164                 CodeGenerator::LineMarker const &);
    165157} // namespace CodeGen
    166158
Note: See TracChangeset for help on using the changeset viewer.