}
}
+ // Language neutral namespace / packaging
+ void set_namespace(std::string language, std::string name_space) {
+ namespaces_[language] = name_space;
+ }
+
+ std::string get_namespace(std::string language) const {
+ std::map<std::string, std::string>::const_iterator iter = namespaces_.find(language);
+ if (iter == namespaces_.end()) {
+ return std::string();
+ }
+ return iter->second;
+ }
+
// Language specific namespace / packaging
void set_cpp_namespace(std::string cpp_namespace) {
std::vector<t_struct*> xceptions_;
std::vector<t_service*> services_;
+ // Dynamic namespaces
+ std::map<std::string, std::string> namespaces_;
+
// C++ namespace
std::string cpp_namespace_;
{
pdebug("Header -> Include");
}
-| tok_namespace tok_identifier
+| tok_namespace tok_identifier tok_identifier
{
- pwarning(1, "'namespace' is deprecated. Use 'cpp_namespace' and/or 'java_package' instead");
+ pdebug("Header -> tok_namespace tok_identifier tok_identifier");
if (g_parse_mode == PROGRAM) {
- g_program->set_cpp_namespace($2);
- g_program->set_java_package($2);
+ g_program->set_namespace($2, $3);
}
}
| tok_cpp_namespace tok_identifier