projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- Made miniswig support HSQUIRRELVM arguments (and realized it was not needed
[supertux.git]
/
tools
/
miniswig
/
main.cpp
diff --git
a/tools/miniswig/main.cpp
b/tools/miniswig/main.cpp
index
94393df
..
f28e3f7
100644
(file)
--- a/
tools/miniswig/main.cpp
+++ b/
tools/miniswig/main.cpp
@@
-12,11
+12,12
@@
extern int yylex();
CompilationUnit* unit = 0;
std::istream* input = 0;
std::string inputfile;
CompilationUnit* unit = 0;
std::istream* input = 0;
std::string inputfile;
+std::string selected_namespace;
std::string modulename = "wrapper";
void usage()
{
std::string modulename = "wrapper";
void usage()
{
- std::cout << "Usage: miniswig --input FILE --output-cpp FILE --output-hpp FILE [--module NAME]\n";
+ std::cout << "Usage: miniswig --input FILE --output-cpp FILE --output-hpp FILE [--module NAME]
[--select-namespace NAME]
\n";
std::cout << "\n";
}
std::cout << "\n";
}
@@
-53,6
+54,13
@@
int main(int argc, char** argv)
return 1;
}
outputhpp = argv[++i];
return 1;
}
outputhpp = argv[++i];
+ } else if(strcmp(argv[i], "--select-namespace") == 0) {
+ if(i+1 >= argc) {
+ std::cerr << "Need to specify a namespace.\n";
+ usage();
+ return 1;
+ }
+ selected_namespace = argv[++i];
} else if(argv[i][0] == '-') {
std::cerr << "Unknown option '" << argv[i] << "'.\n";
usage();
} else if(argv[i][0] == '-') {
std::cerr << "Unknown option '" << argv[i] << "'.\n";
usage();
@@
-73,11
+81,14
@@
int main(int argc, char** argv)
return 1;
}
unit = new CompilationUnit();
return 1;
}
unit = new CompilationUnit();
- unit->types.push_back(new StringType());
Namespace* std_namespace = new Namespace();
std_namespace->name = "std";
Namespace* std_namespace = new Namespace();
std_namespace->name = "std";
+ std_namespace->types.push_back(new StringType());
unit->namespaces.push_back(std_namespace);
unit->namespaces.push_back(std_namespace);
+ unit->types.push_back(new HSQUIRRELVMType());
+
yyparse();
yyparse();
+
std::ofstream cppout(outputcpp.c_str());
if(!cppout.good()) {
std::cerr << "Couldn't open file '" << outputcpp << "' for writing.\n";
std::ofstream cppout(outputcpp.c_str());
if(!cppout.good()) {
std::cerr << "Couldn't open file '" << outputcpp << "' for writing.\n";
@@
-88,8
+99,14
@@
int main(int argc, char** argv)
std::cerr << "Couldn't open file '" << outputhpp << "' for writing.\n";
return 1;
}
std::cerr << "Couldn't open file '" << outputhpp << "' for writing.\n";
return 1;
}
+
+ Namespace* ns = unit;
+ if(selected_namespace != "") {
+ ns = ns->findNamespace(selected_namespace);
+ }
+
WrapperCreator creator(cppout, hppout);
WrapperCreator creator(cppout, hppout);
- creator.create_wrapper(
unit
);
+ creator.create_wrapper(
ns
);
} catch(std::exception& e) {
std::cerr << e.what() << "\n";
return 1;
} catch(std::exception& e) {
std::cerr << e.what() << "\n";
return 1;