Make the Perl generator use non-hardcoded namespaces.
- Make the Perl generator use program->get_namespace("perl")
instead of program->get_perl_package()
- Eliminate the explicit "perl_package" in t_program.
- Deprecate the perl_package token.
- Update example .thrift files and syntax files.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665624 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_perl_generator.cc b/compiler/cpp/src/generate/t_perl_generator.cc
index 3bdc5a0..1e7483e 100644
--- a/compiler/cpp/src/generate/t_perl_generator.cc
+++ b/compiler/cpp/src/generate/t_perl_generator.cc
@@ -149,7 +149,7 @@
}
void perl_namespace_dirs(t_program* p, std::list<std::string>& dirs) {
- std::string ns = p->get_perl_package();
+ std::string ns = p->get_namespace("perl");
std::string::size_type loc;
if (ns.size() > 0) {
@@ -165,7 +165,7 @@
}
std::string perl_namespace(t_program* p) {
- std::string ns = p->get_perl_package();
+ std::string ns = p->get_namespace("perl");
std::string result = "";
std::string::size_type loc;
diff --git a/compiler/cpp/src/parse/t_program.h b/compiler/cpp/src/parse/t_program.h
index b544c2f..4e99294 100644
--- a/compiler/cpp/src/parse/t_program.h
+++ b/compiler/cpp/src/parse/t_program.h
@@ -184,14 +184,6 @@
return xsd_namespace_;
}
- void set_perl_package(std::string perl_package) {
- perl_package_ = perl_package;
- }
-
- const std::string& get_perl_package() const {
- return perl_package_;
- }
-
private:
// File path
@@ -236,9 +228,6 @@
// XSD namespace
std::string xsd_namespace_;
- // Perl namespace
- std::string perl_package_;
-
};
#endif
diff --git a/compiler/cpp/src/thrifty.yy b/compiler/cpp/src/thrifty.yy
index d555f53..654c85a 100644
--- a/compiler/cpp/src/thrifty.yy
+++ b/compiler/cpp/src/thrifty.yy
@@ -286,11 +286,13 @@
g_program->set_namespace("py", $2);
}
}
+/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
| tok_perl_package tok_identifier
{
+ pwarning(1, "'perl_package' is deprecated. Use 'namespace perl' instead");
pdebug("Header -> tok_perl_namespace tok_identifier");
if (g_parse_mode == PROGRAM) {
- g_program->set_perl_package($2);
+ g_program->set_namespace("perl", $2);
}
}
/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */