Changeset 636

Show
Ignore:
Timestamp:
08/22/08 11:31:17 (3 months ago)
Author:
weyrick
Message:

switch to llvm command line parser. this drops the boost lib dependency and gives access to commands that affect JIT, etc

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/rphp/compiler/pDriver.cpp

    r630 r636  
    612612    inFile.open(fileName.c_str(), ifstream::in); 
    613613    if (!inFile) { 
    614         cout << "Unable to open file: " << endl; 
     614        cout << "Unable to open file: " << fileName << endl; 
    615615        exit(1); // terminate with error 
    616616    } 
  • trunk/rphp/frontend/cli/CMakeLists.txt

    r629 r636  
    22MESSAGE( STATUS "CLI frontend check" ) 
    33 
    4 EXECUTE_PROCESS(COMMAND llvm-config --libs x86 OUTPUT_VARIABLE LLVM_X86_JIT OUTPUT_STRIP_TRAILING_WHITESPACE) 
     4EXECUTE_PROCESS(COMMAND llvm-config --libs x86 support OUTPUT_VARIABLE LLVM_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE) 
     5EXECUTE_PROCESS(COMMAND llvm-config --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE) 
     6EXECUTE_PROCESS(COMMAND llvm-config --cppflags OUTPUT_VARIABLE LLVM_CPP_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) 
    57EXECUTE_PROCESS(COMMAND llvm-config --ldflags OUTPUT_VARIABLE LLVM_LD_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) 
    6 SEPARATE_ARGUMENTS(LLVM_X86_JIT) 
     8SEPARATE_ARGUMENTS(LLVM_LIBS) 
     9SEPARATE_ARGUMENTS(LLVM_INCLUDE_DIRS) 
     10SEPARATE_ARGUMENTS(LLVM_CPP_FLAGS) 
    711 
    8 include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${RPHP_RUNTIME_INCLUDE_DIR} ${RPHP_COMPILER_INCLUDE_DIR} ${Boost_INCLUDE_DIRS}) 
     12add_definitions(${LLVM_CPP_FLAGS}) 
     13 
     14include_directories (${CMAKE_SOURCE_DIR}  
     15                     ${CMAKE_BINARY_DIR}  
     16                     ${RPHP_RUNTIME_INCLUDE_DIR}  
     17                     ${RPHP_COMPILER_INCLUDE_DIR}  
     18                     ${Boost_INCLUDE_DIRS} 
     19                     ${LLVM_INCLUDE_DIRS}) 
    920 
    1021set(CLI_SRC_FILES 
     
    1627                       PROPERTIES LINK_FLAGS ${LLVM_LD_FLAGS} 
    1728                     ) 
    18 target_link_libraries( rphp rphp-eval rphp-runtime ${Boost_PROGRAM_OPTIONS_LIBRARY} ${LLVM_X86_JIT} ) 
     29target_link_libraries( rphp rphp-eval rphp-runtime ${LLVM_LIBS} ) 
    1930 
  • trunk/rphp/frontend/cli/main.cpp

    r622 r636  
    33#include <vector> 
    44#include <string> 
    5 #include <boost/program_options.hpp
     5#include <llvm/Support/CommandLine.h
    66#include "pDriver.h" 
    77#include "pRuntime.h" 
    88 
    9 namespace po = boost::program_options
     9using namespace llvm
    1010 
    11 void showHelp(const po::options_description &desc) { 
     11void rphpVersion(void) { 
     12    // TODO get version info from runtime 
    1213    std::cout << "Roadsend PHP" << std::endl; 
    13     std::cout << desc << std::endl; 
    1414} 
    1515 
     
    2020    rphp::pDriver driver; 
    2121 
     22    // command line options 
     23    cl::opt<std::string> inputFile(cl::Positional, cl::desc("<input file>"), cl::Required); 
     24    cl::opt<bool> dumpToks ("dump-toks", cl::desc("Dump tokens from lexer")); 
     25 
     26    cl::SetVersionPrinter(&rphpVersion); 
     27    cl::ParseCommandLineOptions(argc, argv, "Roadsend PHP"); 
     28 
     29    if (dumpToks) { 
     30        driver.dumpTokens(inputFile); 
     31    } 
     32 
     33    /* 
    2234    po::options_description desc("Allowed options"); 
    2335    desc.add_options() 
     
    94106        return 1; 
    95107    } 
     108    */ 
    96109 
    97110    return 0; 
  • trunk/rphp/runtime/include/pResource.h

    r631 r636  
    2222#include <iostream> 
    2323 
    24 #include "pHash.h" 
    25  
    2624namespace rphp { 
    2725