Pārlūkot izejas kodu

Continue Python3 porting for HUTN compiler.

Bentley James Oakes 7 gadi atpakaļ
vecāks
revīzija
c6f022e5d1

+ 1 - 1
interface/HUTN/hutn_compiler/bootstrap_visitor.py

@@ -1,5 +1,5 @@
 import string
-from primitives_visitor import PrimitivesVisitor, Action
+from interface.HUTN.hutn_compiler.primitives_visitor import PrimitivesVisitor, Action
 
 class BootstrapVisitor(PrimitivesVisitor):
     def __init__(self, args):

+ 12 - 7
interface/HUTN/hutn_compiler/compiler.py

@@ -1,12 +1,17 @@
-import cPickle as pickle
+
+try:
+    import cPickle as pickle
+except ImportError:
+    import pickle as pickle
+
 import os
 import sys
 import time
 
-from grammar_compiler_visitor import GrammarCompilerVisitor
-from hutnparser import Parser, Tree
-from meta_grammar import Grammar
-from cached_exception import CachedException
+from interface.HUTN.hutn_compiler.grammar_compiler_visitor import GrammarCompilerVisitor
+from interface.HUTN.hutn_compiler.hutnparser import Parser, Tree
+from interface.HUTN.hutn_compiler.meta_grammar import Grammar
+from interface.HUTN.hutn_compiler.cached_exception import CachedException
 import hashlib
 
 global parsers
@@ -52,8 +57,8 @@ def do_parse(inputfile, grammarfile):
         if grammar is None:
             result = parser = Parser(Grammar(), hide_implicit = True).parse(read(grammarfile))
             if result['status'] != Parser.Constants.Success:
-                print 'not a valid grammar!'
-                print result
+                print('not a valid grammar!')
+                print(result)
 
             tree = result['tree']
             visitor = GrammarCompilerVisitor()

+ 7 - 2
interface/HUTN/hutn_compiler/constructors_visitor.py

@@ -1,5 +1,10 @@
-import cPickle as pickle
-from visitor import Visitor
+
+try:
+    import cPickle as pickle
+except ImportError:
+    import pickle as pickle
+
+from interface.HUTN.hutn_compiler.visitor import Visitor
 
 class ConstructorsVisitor(Visitor):
     def __init__(self, args):

+ 3 - 3
interface/HUTN/hutn_compiler/declare_functions_visitor.py

@@ -1,6 +1,6 @@
-import symbol_table as st
-import types_mv
-from visitor import Visitor
+import interface.HUTN.hutn_compiler.symbol_table as st
+import interface.HUTN.hutn_compiler.types_mv
+from interface.HUTN.hutn_compiler.visitor import Visitor
 
 
 # Declare the function but do not visit its body

+ 5 - 5
interface/HUTN/hutn_compiler/grammar_compiler_visitor.py

@@ -5,7 +5,7 @@ Date October 2014
 A visitor that takes a tree returned by the parser parsing a grammar
 and returns a structure that the parser can use to parse files written in that grammar
 """
-from hutnparser import * #we  import the parser for constant, and the Tree Class
+from interface.HUTN.hutn_compiler.hutnparser import * #we  import the parser for constant, and the Tree Class
 from time import time
 
 def dicToStr(dic):
@@ -128,7 +128,7 @@ class GrammarCompilerVisitor(Visitor):
                     elif rule == TOKEN_COLLECTION: #part of th grammar where tokens are defined as a def or collection
                         self.visitTokens(child)
                     else:
-                        print 'Encountered unexpected rule type in grammar rule. type: ', rule
+                        print('Encountered unexpected rule type in grammar rule. type: ' + str(rule))
 
     def visitRule(self,tree):
         if self.isTree(tree):
@@ -152,7 +152,7 @@ class GrammarCompilerVisitor(Visitor):
                     elif rule == REMOVE:
                         rm = True
                     else:
-                        print 'Encountered unexpected rule type in rule definition. type: ', rule
+                        print('Encountered unexpected rule type in rule definition. type: ' + str(rule))
 
             if name and body:
                 mesg = msg
@@ -224,7 +224,7 @@ class GrammarCompilerVisitor(Visitor):
                     else:
                         rhs.append(r)
                 else:
-                    print 'Encountered unexpected rule type in tree RHS with head: ', item.head
+                    print('Encountered unexpected rule type in tree RHS with head: ' + str(item.head))
             elif self.isToken(item):
                 #print "TOKEN INNER in rule:",  tree.head, "with name", item.head, " value", self.getTokenValue(item)
                 head = item.head
@@ -239,7 +239,7 @@ class GrammarCompilerVisitor(Visitor):
                 elif head == RPAR:
                     pass #the case is here because it is legal but doesn't require any other action than LPAR
                 else:
-                    print 'Encountered unexpected Token in RHS of kind: ', head
+                    print('Encountered unexpected Token in RHS of kind: ' + str(head))
 
         if operator == '.' or operator == '|':
             rhs = [operator] + rhs

+ 4 - 4
interface/HUTN/hutn_compiler/hutnparser.py

@@ -26,7 +26,7 @@ import re
 
 from copy import deepcopy 
 
-from position import Position
+from interface.HUTN.hutn_compiler.position import Position
 
 line_cache = {}
 
@@ -300,7 +300,7 @@ class Parser(object):
         results = self.applyrule('@start', 0)
         if len(results) > 1:
             # Handle ambiguity
-            from prettyprint_visitor import PrettyPrintVisitor
+            from interface.HUTN.hutn_compiler.prettyprint_visitor import PrettyPrintVisitor
             for p in results:
                 print("===================================")
                 print("VISIT RESULT")
@@ -927,7 +927,7 @@ class Parser(object):
         def visit(self, tree):
             self.inner_visit(tree)
             if (self.output == 'console'):
-                print self.outputStream
+                print(self.outputStream)
 
     class PrettyPrinter(object):
         def __init__(self, output='console'):
@@ -958,7 +958,7 @@ class Parser(object):
         def visit(self, tree):
             self.inner_visit(tree)
             if (self.output == 'console'):
-                print self.outputStream
+                print(self.outputStream)
 
 class IgnorePostProcessor(object):
     def __init__(self, rules, tokens):

+ 2 - 2
interface/HUTN/hutn_compiler/model_bootstrap_visitor.py

@@ -1,5 +1,5 @@
-from visitor import Visitor
-from compiler import main as do_compile
+from interface.HUTN.hutn_compiler.visitor import Visitor
+from interface.HUTN.hutn_compiler.compiler import main as do_compile
 import os
 import uuid
 

+ 2 - 2
interface/HUTN/hutn_compiler/model_visitor.py

@@ -1,5 +1,5 @@
-from visitor import Visitor
-from compiler import main as do_compile
+from interface.HUTN.hutn_compiler.visitor import Visitor
+from interface.HUTN.hutn_compiler.compiler import main as do_compile
 import os
 
 def empty(s):

+ 2 - 2
interface/HUTN/hutn_compiler/prettyprint_visitor.py

@@ -1,5 +1,5 @@
-from hutnparser import Tree
-from visitor import Visitor
+from interface.HUTN.hutn_compiler.hutnparser import Tree
+from interface.HUTN.hutn_compiler.visitor import Visitor
 
 class PrintVisitor(Visitor):
     def __init__(self, args):

+ 1 - 1
interface/HUTN/hutn_compiler/primitives_visitor.py

@@ -1,5 +1,5 @@
 import string
-from visitor import Visitor
+from interface.HUTN.hutn_compiler.visitor import Visitor
 import json
 
 class Action():

+ 5 - 5
interface/HUTN/hutn_compiler/semantics_visitor.py

@@ -1,9 +1,9 @@
-import hutnparser as hp
-import symbol_table as st
+import interface.HUTN.hutn_compiler.hutnparser as hp
+import interface.HUTN.hutn_compiler.symbol_table as st
 import sys
-import types_mv
-from declare_functions_visitor import DeclareFunctionsVisitor
-from visitor import Visitor
+import interface.HUTN.hutn_compiler.types_mv as types_mv
+from interface.HUTN.hutn_compiler.declare_functions_visitor import DeclareFunctionsVisitor
+from interface.HUTN.hutn_compiler.visitor import Visitor
 
 
 class SemanticsVisitor(Visitor):

+ 1 - 1
interface/HUTN/hutn_compiler/symbol_table.py

@@ -1,4 +1,4 @@
-import types_mv
+import interface.HUTN.hutn_compiler.types_mv as types_mv
 
 
 class Symbol(object):

+ 3 - 3
interface/HUTN/hutn_compiler/visitor.py

@@ -1,4 +1,4 @@
-import symbol_table as st
+import interface.HUTN.hutn_compiler.symbol_table as st
 
 
 class Visitor(object):
@@ -33,10 +33,10 @@ class Visitor(object):
 
     @staticmethod
     def print_tree(tree):
-        from prettyprint_visitor import PrintVisitor
+        from interface.HUTN.hutn_compiler.prettyprint_visitor import PrintVisitor
         pv = PrintVisitor()
         pv.visit(tree)
-        print pv.dump()
+        print(pv.dump())
 
     # a visit_* method for each non-terminal in the grammar
     def visit_start(self, tree):