Changeset a77257be


Ignore:
Timestamp:
Aug 12, 2020, 11:29:03 AM (4 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
0ea0b8f
Parents:
343d10e
Message:

Compiler now supports --new-ast and --old-ast to select which algorithm to use

Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/CompilationState.cc

    r343d10e ra77257be  
    2828        genproto = false,
    2929        deterministic_output = false,
     30        useNewAST = true,
    3031        nomainp = false,
    3132        parsep = false,
  • src/CompilationState.h

    r343d10e ra77257be  
    2929        genproto,
    3030        deterministic_output,
     31        useNewAST,
    3132        nomainp,
    3233        parsep,
  • src/main.cc

    r343d10e ra77257be  
    340340                } // if
    341341
    342                 // PASS( "Resolve", ResolvExpr::resolve( translationUnit ) );
    343                 {
     342                if( useNewAST) {
    344343                        auto transUnit = convert( move( translationUnit ) );
    345344                        PASS( "Resolve", ResolvExpr::resolve( transUnit ) );
    346345                        translationUnit = convert( move( transUnit ) );
     346                } else {
     347                        PASS( "Resolve", ResolvExpr::resolve( translationUnit ) );
    347348                }
    348349
     
    464465        { "prototypes", no_argument, nullptr, 'p' },
    465466        { "deterministic-out", no_argument, nullptr, 'd' },
     467        { "old-ast", no_argument, nullptr, 'O'},
     468        { "new-ast", no_argument, nullptr, 'A'},
    466469        { "print", required_argument, nullptr, 'P' },
    467470        { "prelude-dir", required_argument, nullptr, PreludeDir },
     
    485488        "generate prototypes for prelude functions",            // -p
    486489        "don't print output that isn't deterministic",        // -d
     490        "Use the old-ast",                                    // -O
     491        "Use the new-ast",                                    // -A
    487492        "print",                                              // -P
    488493        "<directory> prelude directory for debug/nodebug",      // no flag
     
    590595                        break;
    591596                  case 'd':                                     // don't print non-deterministic output
    592                     deterministic_output = true;
     597                        deterministic_output = true;
     598                        break;
     599                  case 'O':                                     // don't print non-deterministic output
     600                        useNewAST = false;
     601                        break;
     602                  case 'A':                                     // don't print non-deterministic output
     603                        useNewAST = true;
    593604                        break;
    594605                  case 'P':                                                                             // print options
Note: See TracChangeset for help on using the changeset viewer.