aboutsummaryrefslogtreecommitdiffstats
path: root/frontends
diff options
context:
space:
mode:
authorZachary Snow <zach@zachjs.com>2020-08-20 20:15:08 -0400
committerZachary Snow <zach@zachjs.com>2020-08-20 20:15:08 -0400
commit6127f227880af506d806179ac622aba44c35fd4b (patch)
tree824f581a72510f97036f1bc3be24565d2ff2098c /frontends
parent082cbcb4c7c4fa6984f86f8edb2e1d16e8ad3a41 (diff)
downloadyosys-6127f227880af506d806179ac622aba44c35fd4b.tar.gz
yosys-6127f227880af506d806179ac622aba44c35fd4b.tar.bz2
yosys-6127f227880af506d806179ac622aba44c35fd4b.zip
Module name scope support
Diffstat (limited to 'frontends')
-rw-r--r--frontends/ast/simplify.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc
index 7f9795d29..19dd5af10 100644
--- a/frontends/ast/simplify.cc
+++ b/frontends/ast/simplify.cc
@@ -1597,6 +1597,13 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
if (type == AST_IDENTIFIER) {
if (current_scope.count(str) == 0) {
AstNode *current_scope_ast = (current_ast_mod == nullptr) ? current_ast : current_ast_mod;
+ const std::string& mod_scope = current_scope_ast->str;
+ if (str[0] == '\\' && str.substr(0, mod_scope.size()) == mod_scope) {
+ std::string new_str = "\\" + str.substr(mod_scope.size() + 1);
+ if (current_scope.count(new_str)) {
+ str = new_str;
+ }
+ }
for (auto node : current_scope_ast->children) {
//log("looking at mod scope child %s\n", type2str(node->type).c_str());
switch (node->type) {