示例#1
0
文件: main.cpp 项目: BRKMYR/yarp
int generate_cpp(int argc, char *argv[])
{
    bool is_service = false;

    Property p;
    string fname;
    p.fromCommand(argc,argv);
    bool verbose = p.check("verbose");

    fname = argv[argc-1];

    if (fname.rfind(".")!=string::npos) {
        string ext = fname.substr(fname.rfind("."),fname.length());
        if (ext==".srv" || ext==".SRV") {
            is_service = true;
        }
    }
    if (is_service) {
        p.put("service",1);
    }

    RosTypeSearch env;
    RosType t;
    RosTypeCodeGenYarp gen;
    if (verbose) {
        env.setVerbose();
        t.setVerbose();
        gen.setVerbose();
    }

    if (p.check("out")) {
        gen.setTargetDirectory(p.find("out").toString().c_str());
    }
    configure_search(env,p);

    if (t.read(fname.c_str(),env,gen)) {
        RosTypeCodeGenState state;
        t.emitType(gen,state);
        t.cache(fname.c_str(),env,gen);
    }

    return 0;
}
示例#2
0
int main(int argc, char *argv[]) {
    if (argc<=1) {
        show_usage();
        return 0;
    }
    if (std::string("help")==argv[1] || std::string("--help")==argv[1]) {
        show_usage();
        return 0;        
    }

    bool is_service = false;

    Property p;
    string fname;
    p.fromCommand(argc-1,argv);
    fname = argv[argc-1];

    if (fname.rfind(".")!=string::npos) {
        string ext = fname.substr(fname.rfind("."),fname.length());
        if (ext==".srv" || ext==".SRV") {
            is_service = true;
        }
    }
 
    RosTypeSearch env;
    RosType t;

    RosTypeCodeGenYarp gen;
    if (p.check("out")) {
        gen.setTargetDirectory(p.find("out").toString().c_str());
        env.setTargetDirectory(gen.getTargetDirectory().c_str());
    }
    env.lookForService(is_service);

    if (t.read(fname.c_str(),env,gen)) {
        RosTypeCodeGenState state;
        t.emitType(gen,state);
    }

    return 0;
}