コード例 #1
0
ファイル: oovCppParser.cpp プロジェクト: animatedb/oovaide
int main(int argc, char const *const argv[])
    {
    CppParser::eErrorTypes et = CppParser::ET_None;
    OovError::setComponent(EC_OovCppParser);
    if(argc >= 4)
        {
        bool dupHashes = false;
        OovProcessChildArgs childArgs;
        for(int i=4; i<argc; i++)
            {
            if(strcmp(argv[i], "-dups") == 0)
                {
                dupHashes = true;
                }
            else
                {
                childArgs.addArg(argv[i]);
                }
            }
        // This saves the CPP info in an XMI file.
//      et = sCppParser.parse(dupHashes, argv[1], argv[2], argv[3], &argv[4], argc-4);
        et = sCppParser.parse(dupHashes, argv[1], argv[2], argv[3],
            childArgs.getArgv(), static_cast<int>(childArgs.getArgc()));
        if(et == CppParser::ET_CLangError)
            {
            fprintf(stderr, "oovCppParser: CLang error analyzing file %s.\n"
                    "It could be an argument error (Windows spaces in path), or a bug in CLang\n", argv[1]);
            }
        else if(et != CppParser::ET_None && et != CppParser::ET_CompileWarnings)
            {
            fprintf(stderr, "oovCppParser: Error analyzing file %s\n", argv[1]);
            }
        }
    else
        {
        fprintf(stderr, "OovCppParser version %s\n", OOV_VERSION);
        fprintf(stderr, "oovCppParser args are: sourceFilePath sourceRootDir outputProjectFilesDir [cppArgs]...\n");
        }
    int exitCode = 0;
    if(et != CppParser::ET_None && et != CppParser::ET_CompileWarnings)
        exitCode = EXIT_FAILURE;
    return exitCode;
    }