summaryrefslogtreecommitdiffstats
path: root/src/output_header.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-04-18 00:02:05 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-04-18 00:02:05 +0200
commit6597de68e459eb5f6f02d2b0662637b04d2baea1 (patch)
treea4cad1dd601d6bcbe9ae157741373315d67d3439 /src/output_header.cpp
parenta2a663dafd53cbebfa510f6dbd19aed6cc545e32 (diff)
downloadsolar-6597de68e459eb5f6f02d2b0662637b04d2baea1.tar
solar-6597de68e459eb5f6f02d2b0662637b04d2baea1.zip
Add support for C++ namespaces
Diffstat (limited to 'src/output_header.cpp')
-rw-r--r--src/output_header.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/output_header.cpp b/src/output_header.cpp
index c947d9c..e403cfc 100644
--- a/src/output_header.cpp
+++ b/src/output_header.cpp
@@ -67,6 +67,13 @@ void output_header_t::write() {
write_line();
}
+ if (!get_generator()->get_grammar().ns.empty()) {
+ for (const std::string &ns : get_generator()->get_grammar().ns)
+ write_line("namespace ", ns, " {");
+
+ write_line();
+ }
+
emit_tokens();
write_line();
@@ -80,6 +87,13 @@ void output_header_t::write() {
write_line_(sig_free());
write_line();
write_line_(sig_push());
+
+ if (!get_generator()->get_grammar().ns.empty()) {
+ write_line();
+
+ for (size_t i = 0; i < get_generator()->get_grammar().ns.size(); i++)
+ write_line("}");
+ }
}
};