Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main.cc

    re523b07 r37fe352  
    2828#include <string>                           // for char_traits, operator<<
    2929
    30 #include "CompilationState.h"
    3130#include "../config.h"                      // for CFA_LIBDIR
    3231#include "CodeGen/FixMain.h"                // for FixMain
     
    3433#include "CodeGen/Generate.h"               // for generate
    3534#include "CodeTools/DeclStats.h"            // for printDeclStats
    36 #include "CodeTools/ResolvProtoDump.h"      // for dumpAsResolvProto
    3735#include "CodeTools/TrackLoc.h"             // for fillLocations
    3836#include "Common/CompilerError.h"           // for CompilerError
     
    7472DeclarationNode * parseTree = nullptr;                                  // program parse tree
    7573
     74extern int yydebug;                                                                             // set for -g flag (Grammar)
     75bool
     76        astp = false,
     77        bresolvep = false,
     78        bboxp = false,
     79        bcodegenp = false,
     80        ctorinitp = false,
     81        declstatsp = false,
     82        exprp = false,
     83        expraltp = false,
     84        genericsp = false,
     85        libcfap = false,
     86        nopreludep = false,
     87        noprotop = false,
     88        nomainp = false,
     89        parsep = false,
     90        resolvep = false,                                                                       // used in AlternativeFinder
     91        symtabp = false,
     92        treep = false,
     93        tuplep = false,
     94        validp = false,
     95        errorp = false,
     96        codegenp = false,
     97        prettycodegenp = false,
     98        linemarks = false;
     99
    76100std::string PreludeDirector = "";
    77101
     
    172196                        if ( filename == nullptr ) filename = argv[ optind ];
    173197                        // prelude filename comes in differently
    174                         if ( libcfap ) filename = "prelude.cfa";
     198                        if ( libcfap ) filename = "prelude.cf";
    175199                        optind += 1;
    176200                } else {                                                                                // no input file name
     
    199223                        if ( ! libcfap ) {
    200224                                // read the prelude in, if not generating the cfa library
    201                                 FILE * prelude = fopen( (PreludeDirector + "/prelude.cfa").c_str(), "r" );
    202                                 assertf( prelude, "cannot open prelude.cfa\n" );
     225                                FILE * prelude = fopen( (PreludeDirector + "/prelude.cf").c_str(), "r" );
     226                                assertf( prelude, "cannot open prelude.cf\n" );
    203227                                parse( prelude, LinkageSpec::Intrinsic );
    204228
     
    272296                CodeTools::fillLocations( translationUnit );
    273297
    274                 if ( resolvprotop ) {
    275                         CodeTools::dumpAsResolvProto( translationUnit );
    276                         return 0;
    277                 }
    278 
    279298                PASS( "resolve", ResolvExpr::resolve( translationUnit ) );
    280299                if ( exprp ) {
     
    284303
    285304                // fix ObjectDecl - replaces ConstructorInit nodes
    286                 PASS( "fixInit", InitTweak::fix( translationUnit, buildingLibrary() ) );
     305                PASS( "fixInit", InitTweak::fix( translationUnit, filename, libcfap || treep ) );
    287306                if ( ctorinitp ) {
    288307                        dump ( translationUnit );
     
    382401
    383402void parse_cmdline( int argc, char * argv[], const char *& filename ) {
    384         enum { Ast, Bbox, Bresolver, CtorInitFix, DeclStats, Expr, ExprAlt, Grammar, LibCFA, Linemarks, Nolinemarks, Nopreamble, Parse, PreludeDir, Prototypes, Resolver, ResolvProto, Symbol, Tree, TupleExpansion, Validate, };
     403        enum { Ast, Bbox, Bresolver, CtorInitFix, DeclStats, Expr, ExprAlt, Grammar, LibCFA, Linemarks, Nolinemarks, Nopreamble, Parse, PreludeDir, Prototypes, Resolver, Symbol, Tree, TupleExpansion, Validate, };
    385404
    386405        static struct option long_opts[] = {
     
    401420                { "no-prototypes", no_argument, 0, Prototypes },
    402421                { "resolver", no_argument, 0, Resolver },
    403                 { "resolv-proto", no_argument, 0, ResolvProto },
    404422                { "symbol", no_argument, 0, Symbol },
    405423                { "tree", no_argument, 0, Tree },
     
    414432        bool Wsuppress = false, Werror = false;
    415433        int c;
    416         while ( (c = getopt_long( argc, argv, "abBcCdefgGlLmnNpqrRstTvwW:yzZD:F:", long_opts, &long_index )) != -1 ) {
     434        while ( (c = getopt_long( argc, argv, "abBcCdefgGlLmnNpqrstTvwW:yzZD:F:", long_opts, &long_index )) != -1 ) {
    417435                switch ( c ) {
    418436                  case Ast:
     
    486504                  case 'r':                                                                             // print resolver steps
    487505                        resolvep = true;
    488                         break;
    489                         case 'R':                                                                               // dump resolv-proto instance
    490                         resolvprotop = true;
    491506                        break;
    492507                  case Symbol:
Note: See TracChangeset for help on using the changeset viewer.