@@ -99,6 +99,10 @@ def bootstrap():
self.file_b = file_b
def write(self, text, both=True):
+
+ if sys.version_info[0] > 2:
+ text = text.encode()
self.file_a.write(text)
if both:
self.file_b.write(text)
@@ -120,7 +124,7 @@ def bootstrap():
f.write("Dict (__hierarchy, \"%s\", %s)\n" % (primitive_class_name, primitive_class_name))
# Define all primitive functions
- for function, parameters in primitive_decls.iteritems():
+ for function, parameters in list(primitive_decls.items()):
f.write("Node _func_signature_%s()\n" % function)
f.write("Node _func_params_%s()\n" % function)
f.write("Node _func_body_%s()\n" % function)
@@ -115,11 +115,11 @@ class ModelVisitor(Visitor):
def visit_model_attr_instance(self, tree):
def constructors_compile(code):
code_fragments = code.split("\n")
- code_fragments = [i for i in code_fragments if i.strip() != ""]
- code_fragments = [i.replace(" ", "\t") for i in code_fragments]
- initial_tabs = min([len(i) - len(i.lstrip("\t")) for i in code_fragments])
- code_fragments = self.includes + [i[initial_tabs:] for i in code_fragments]
- code = "\n".join(code_fragments)
+ code_fragments = [i for i in code_fragments if i.strip() != ""]
+ code_fragments = [i.replace(" ", "\t") for i in code_fragments]
+ initial_tabs = min([len(i) - len(i.lstrip("\t")) for i in code_fragments])
+ code_fragments = self.includes + [i[initial_tabs:] for i in code_fragments]
+ code = "\n".join(code_fragments)
code += "\n"
with open(".code.alc", 'w') as f:
@@ -4,13 +4,15 @@ import os
import gzip
import time
-import cPickle as pickle
# Work around Python 2 where a 'big integer' automatically becomes a long
if sys.version > '3': # pragma: no cover
+ import pickle as pickle
integer_types = (int,)
primitive_types = (int, float, str, bool)
else: # pragma: no cover
+ import cPickle as pickle
integer_types = (int, long)
primitive_types = (int, long, float, str, bool, unicode)
complex_primitives = frozenset(["if", "while", "assign", "call", "break", "continue", "return","resolve","access", "constant", "input", "output", "declare", "global", "none"])