Exemple #1
0
    def getCode(self, ast, mode='single', filename='<Subol>'):
        #print "ast is", ast
        misc.set_filename(filename, ast)
        # worklist = [ast]
        # while worklist:
        #     node = worklist.pop(0)
        #     node.filename = filename
        #     worklist.extend(node.getChildNodes())
        #     print "NODE CHILDREN ARE", node, worklist

        syntax.check(ast)
        d = {'single': pycodegen.InteractiveCodeGenerator,
             'exec': pycodegen.ModuleCodeGenerator,
             'eval': pycodegen.ExpressionCodeGenerator}
        try:
            gen = d[mode](ast)
            gen.graph.setFlag(consts.CO_GENERATOR_ALLOWED)
            code = gen.getCode()
            return code
        except:
            print "THERE WAS AN ERROR DURING COMPILATION."
            print "The ast with the problem was"
            print
            print ast
            print
            print "A diagnostic traceback follows."
            raise
Exemple #2
0
 def compile(self, code, filename="<string>"):
     tree = self.parser.parse(code)
     misc.set_filename(filename, tree)
     syntax.check(tree)
     gen = pycodegen.ModuleCodeGenerator(tree)
     code = gen.getCode()
     return code
Exemple #3
0
 def compile(self, code, filename="<string>"):
     tree = self.parser.parse(code)
     misc.set_filename(filename, tree)
     syntax.check(tree)
     gen = LucyModuleCodeGenerator(tree)
     code = gen.getCode()
     return code
Exemple #4
0
 def _get_tree(self):
     tree = self.parse()
     MutatingWalker.walk(tree, self.rm)
     if self.rm.errors:
         raise SyntaxError, self.rm.errors[0]
     misc.set_filename(self.filename, tree)
     syntax.check(tree)
     return tree
Exemple #5
0
 def _get_tree(self):
     tree = self.parse()
     MutatingWalker.walk(tree, self.rm)
     if self.rm.errors:
         raise SyntaxError, self.rm.errors[0]
     misc.set_filename(self.filename, tree)
     syntax.check(tree)
     return tree
Exemple #6
0
def test_parser():
    from compiler import syntax

    parser = LucyParser()
    tree = parser.parse(open('testfull.ly').read())
    for t in traverse(tree):
        print t
    syntax.check(tree)
Exemple #7
0
def test_parser():
    from compiler import syntax
    
    parser = LucyParser()
    tree = parser.parse(open('testfull.ly').read())
    for t in traverse(tree):
        print t
    syntax.check(tree)
Exemple #8
0
def test_parser():
    from compiler import syntax
    
    parser = PtpyParser()

    tree = parser.parse(open("sample_ptpy.py").read())
    for t in traverse(tree):
        print t
    syntax.check(tree)
Exemple #9
0
 def compile(self, code, filename="<string>"):
     tree = self.parser.parse(code)
     #print  tree
     misc.set_filename(filename, tree)
     syntax.check(tree)
     
     #gen = pycodegen.ModuleCodeGenerator(tree)
     #pprint.pprint(tree)
     #code = gen.getCode()
     return tree
Exemple #10
0
def parse_function(src, func_name, arg_names, defaults=[]):
    tree = parse(src, "exec")
    defaults = [compiler.ast.Const(d) for d in defaults]
    # Insert a Stmt with function object.
    try:
        decs = compiler.ast.Decorators([])
    except AttributeError:
        # 2.3 has no such concept (and different args!)
        func = compiler.ast.Function(func_name, arg_names, defaults, 0, None,
                                     tree.node)
    else:
        # 2.4 and later
        func = compiler.ast.Function(decs, func_name, arg_names, defaults, 0,
                                     None, tree.node)
    stmt = compiler.ast.Stmt((func, ))
    tree.node = stmt
    syntax.check(tree)
    return tree
def parse_function(src, func_name, arg_names, defaults=[]):
    tree = parse(src, "exec")
    defaults = [compiler.ast.Const(d) for d in defaults]
    # Insert a Stmt with function object.
    try:
        decs = compiler.ast.Decorators([])
    except AttributeError:
        # 2.3 has no such concept (and different args!)
        func = compiler.ast.Function(func_name, arg_names, defaults, 0, None,
                                     tree.node)
    else:
        # 2.4 and later
        func = compiler.ast.Function(decs, func_name, arg_names, defaults, 0, None,
                                     tree.node)
    stmt = compiler.ast.Stmt((func,))
    tree.node = stmt
    syntax.check(tree)
    return tree
Exemple #12
0
 def _get_tree(self):
     misc.set_filename(self.filename, self.tree)
     syntax.check(self.tree)
     return self.tree
Exemple #13
0
 def _get_tree(self):
     tree = parse(self.source, self.mode)
     misc.set_filename(self.filename, tree)
     syntax.check(tree)
     return tree
Exemple #14
0
import imp
Exemple #15
0
 def _get_tree(self):
     from compiler import misc, syntax
     tree = self.__get_ast()
     misc.set_filename(self.filename, tree)
     syntax.check(tree)
     return tree
Exemple #16
0
 def _get_tree(self, transformer=None):
     tree = parse(self.source, self.mode, transformer=transformer)
     misc.set_filename(self.filename, tree)
     syntax.check(tree)
     return tree
Exemple #17
0
 def _get_tree(self):
     from compiler import misc, syntax
     tree = self.__get_ast()
     misc.set_filename(self.filename, tree)
     syntax.check(tree)
     return tree
 def _get_tree(self):
     tree = parse(self.source, self.filename)
     misc.set_filename(self.filename, tree)
     syntax.check(tree)
     return tree
Exemple #19
0
import imp