From 02d755c37991dc1996644cf254a950c866e434c3 Mon Sep 17 00:00:00 2001 From: Ian Johnson Date: Tue, 12 Nov 2013 16:05:08 +0000 Subject: Fixed bugs in PCL executor visitor due to literal string values. --- src/pclc/visitors/pcl_executor_visitor.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/pclc/visitors/pcl_executor_visitor.py b/src/pclc/visitors/pcl_executor_visitor.py index 2fd7340..0f07c4c 100644 --- a/src/pclc/visitors/pcl_executor_visitor.py +++ b/src/pclc/visitors/pcl_executor_visitor.py @@ -268,8 +268,7 @@ class PCLExecutorVisitor(ExecutorVisitor): for m in merge_expr.bottom_mapping \ if str(m.to) != '_'] literal_mappings = ["'%s' : %s" % \ - (m.to, \ - m.literal.value.__repr__() if isinstance(m.literal.value, str) else m.literal) \ + (m.to, m.literal) \ for m in merge_expr.literal_mapping] mapping = ", ".join(top_mappings + bottom_mappings + literal_mappings) self._write_line("%s = cons_unsplit_wire(lambda t, b: {%s})" % \ @@ -279,8 +278,7 @@ class PCLExecutorVisitor(ExecutorVisitor): @staticmethod def __build_wire_expr(mapping): dict_repr = ["'%s' : %s" % (m.to, - "a['%s']" % (m.from_) if isinstance(m, Mapping) \ - else (m.literal.value.__repr__() if isinstance(m.literal.value, str) else m.literal)) \ + "a['%s']" % (m.from_) if isinstance(m, Mapping) else m.literal) for m in mapping \ if str(m.to) != '_'] return "cons_wire(lambda a, s: {%s})" % (", ".join(dict_repr)) @@ -293,8 +291,8 @@ class PCLExecutorVisitor(ExecutorVisitor): def visit(self, wire_tuple_expr): self._write_line("%s = %s ** %s" % \ (self._get_temp_var(wire_tuple_expr), - ExecutorVisitor.__build_wire_expr(wire_tuple_expr.top_mapping), - ExecutorVisitor.__build_wire_expr(wire_tuple_expr.bottom_mapping))) + PCLExecutorVisitor.__build_wire_expr(wire_tuple_expr.top_mapping), + PCLExecutorVisitor.__build_wire_expr(wire_tuple_expr.bottom_mapping))) @multimethod(IfExpression) def visit(self, if_expr): -- cgit v1.2.3