diff options
Diffstat (limited to 'bdep/new-parsers.cxx')
-rw-r--r-- | bdep/new-parsers.cxx | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/bdep/new-parsers.cxx b/bdep/new-parsers.cxx index 7a12132..49dee66 100644 --- a/bdep/new-parsers.cxx +++ b/bdep/new-parsers.cxx @@ -76,6 +76,8 @@ namespace bdep r.parse (s); } + // parser<type> + // void parser<type>:: parse (type& r, bool& xs, scanner& s) { @@ -114,6 +116,19 @@ namespace bdep xs = true; } + void parser<type>:: + merge (type& b, const type& a) + { + b.type = a.type; + + b.exe_opt.merge (a.exe_opt); + b.lib_opt.merge (a.lib_opt); + b.bare_opt.merge (a.bare_opt); + b.empty_opt.merge (a.empty_opt); + } + + // parser<lang> + // void parser<lang>:: parse (lang& r, bool& xs, scanner& s) { @@ -142,6 +157,17 @@ namespace bdep xs = true; } + void parser<lang>:: + merge (lang& b, const lang& a) + { + b.lang = a.lang; + + b.c_opt.merge (a.c_opt); + b.cxx_opt.merge (a.cxx_opt); + } + + // parser<vcs> + // void parser<vcs>:: parse (vcs& r, bool& xs, scanner& s) { @@ -169,5 +195,14 @@ namespace bdep xs = true; } + + void parser<vcs>:: + merge (vcs& b, const vcs& a) + { + b.vcs = a.vcs; + + b.git_opt.merge (a.git_opt); + b.none_opt.merge (a.none_opt); + } } } |