summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Python.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-02-01 23:16:30 +0100
committerJose <jose@zeroc.com>2017-02-01 23:16:30 +0100
commitca131951f8d81ea3da13277172a24234b5c848ea (patch)
tree28b8d9ad6a09f550ef43f3b24df8048da8e70d7d /cpp/src/Slice/Python.cpp
parentAdded entries for support of try-with-resources/with statement in Java/Python (diff)
downloadice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.bz2
ice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.xz
ice-ca131951f8d81ea3da13277172a24234b5c848ea.zip
Add --no-warn option to Slice compilers
Diffstat (limited to 'cpp/src/Slice/Python.cpp')
-rw-r--r--cpp/src/Slice/Python.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/cpp/src/Slice/Python.cpp b/cpp/src/Slice/Python.cpp
index bc1da962d70..057fb22cca4 100644
--- a/cpp/src/Slice/Python.cpp
+++ b/cpp/src/Slice/Python.cpp
@@ -101,13 +101,13 @@ class PackageVisitor : public ParserVisitor
{
public:
- static void createModules(const UnitPtr&, const string&, const string&);
+ static void createModules(const UnitPtr&, const string&, const string&, int);
virtual void visitModuleEnd(const ModulePtr&);
private:
- PackageVisitor(StringList&);
+ PackageVisitor(StringList&, int);
enum ReadState { PreModules, InModules, InSubmodules };
@@ -128,16 +128,17 @@ private:
const char* PackageVisitor::_moduleTag = "# Modules:";
const char* PackageVisitor::_submoduleTag = "# Submodules:";
-PackageVisitor::PackageVisitor(StringList& modules) :
+PackageVisitor::PackageVisitor(StringList& modules, int warningLevel) :
+ ParserVisitor(warningLevel),
_modules(modules)
{
}
void
-PackageVisitor::createModules(const UnitPtr& unit, const string& module, const string& dir)
+PackageVisitor::createModules(const UnitPtr& unit, const string& module, const string& dir, int warningLevel)
{
StringList modules;
- PackageVisitor v(modules);
+ PackageVisitor v(modules, warningLevel);
unit->visit(&v, false);
for(StringList::iterator p = modules.begin(); p != modules.end(); ++p)
@@ -403,6 +404,7 @@ usage(const string& n)
"--all Generate code for Slice definitions in included files.\n"
"--checksum Generate checksums for Slice definitions.\n"
"--prefix PREFIX Prepend filenames of Python modules with PREFIX.\n"
+ "--no-warn Disable all warnings.\n"
;
}
@@ -430,6 +432,7 @@ Slice::Python::compile(const vector<string>& argv)
opts.addOpt("", "build-package");
opts.addOpt("", "checksum");
opts.addOpt("", "prefix", IceUtilInternal::Options::NeedArg);
+ opts.addOpt("", "no-warn");
vector<string> args;
try
@@ -500,6 +503,8 @@ Slice::Python::compile(const vector<string>& argv)
string prefix = opts.optArg("prefix");
+ int warningLevel = opts.isSet("no-warn") ? 0 : 1;
+
if(args.empty())
{
consoleErr << argv[0] << ": error: no input file" << endl;
@@ -665,7 +670,7 @@ Slice::Python::compile(const vector<string>& argv)
//
// Generate Python code.
//
- generate(u, all, checksum, includePaths, out);
+ generate(u, all, checksum, includePaths, out, warningLevel);
out.close();
}
@@ -675,7 +680,7 @@ Slice::Python::compile(const vector<string>& argv)
//
if(!noPackage)
{
- PackageVisitor::createModules(u, prefix + base + "_ice", output);
+ PackageVisitor::createModules(u, prefix + base + "_ice", output, warningLevel);
}
}
catch(const Slice::FileException& ex)