Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ianj-als/pcl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Johnson <ian.johnson@appliedlanguage.com>2013-10-23 20:29:39 +0400
committerIan Johnson <ian.johnson@appliedlanguage.com>2013-10-23 20:29:39 +0400
commit7c3aed5bc44f8594d52d319e4d9b6ead0eac08cb (patch)
treecdc6994f8fbe91dae0a5f552e1c7bf912e8d323a
parentf0a5b97945e90760b5e5e701ac24721c010717bf (diff)
Return mappings now being preserved in the AST.
-rw-r--r--src/pclc/parser/pcl_parser.py2
-rw-r--r--src/pclc/visitors/do_executor_visitor.py4
2 files changed, 2 insertions, 4 deletions
diff --git a/src/pclc/parser/pcl_parser.py b/src/pclc/parser/pcl_parser.py
index 08f8428..9eae21a 100644
--- a/src/pclc/parser/pcl_parser.py
+++ b/src/pclc/parser/pcl_parser.py
@@ -416,7 +416,7 @@ def p_function_arg(p):
def p_return_mappings(p):
'''return_mappings : return_mapping_list
| '(' ')' '''
- if len(p) > 1:
+ if len(p) > 2:
p[0] = list()
else:
p[0] = p[1]
diff --git a/src/pclc/visitors/do_executor_visitor.py b/src/pclc/visitors/do_executor_visitor.py
index e396dd3..e312095 100644
--- a/src/pclc/visitors/do_executor_visitor.py
+++ b/src/pclc/visitors/do_executor_visitor.py
@@ -68,8 +68,6 @@ class IntermediateRepresentation(object):
if self.is_then_block is True:
self.then_block.append(node)
elif self.is_then_block is False:
- print "IRIfNode.add_child: ",
- print str(node.object.function.name) if isinstance(node.object, Command) else type(node.object)
self.else_block.append(node)
def switch_to_else_block(self):
@@ -180,7 +178,7 @@ class IntermediateRepresentation(object):
code.append(("%s(a, s)" % self.__lookup_function_name(if_command), ""))
elif isinstance(node, IntermediateRepresentation.IRReturnNode):
return_command = node.object
- if not return_command.mappings:
+ if len(return_command.mappings) == 0:
code.append(("return None", ""))
return code