Beispiel #1
0
def test(*args, **kw):
    global VERBOSE
    VERBOSE = 999
    if len(args) > 0:
        kw['code'] = args[0]
    if 'filename' in kw:
        filename = kw['filename']
        print "parsing file : %r" % filename
        with file(filename) as finp:
            print finp.read()
        print "----"
        php_code = parser.parse_file(filename)
    elif 'code' in kw:
        code = kw['code']
        print "parsing php code :\n%s" % code
        print "----"
        php_code = parser.parse_php(code)
    print "----"
    print "Parsed Code:\n", php_code

    compiled_code = compile_php(php_code)
    print

    def print_node(node, depth=0):
        print "  " * depth,
        if isinstance(node, TreeNode):
            print node.name
            for c in node.children:
                print_node(c, depth + 1)
        else:
            print node

    print "Compiled Code:\n"
    print compiled_code.prepr()
Beispiel #2
0
def test(*args, **kw):
	global VERBOSE
	VERBOSE = 999
	if len(args) > 0:
		kw['code'] = args[0]
	if 'filename' in kw:
		filename = kw['filename']
		print "parsing file : %r"%filename
		with file(filename) as finp:
			print finp.read()
		print "----"
		php_code = parser.parse_file(filename)
	elif 'code' in kw:
		code = kw['code']
		print "parsing php code :\n%s"%code
		print "----"
		php_code = parser.parse_php(code)
	print "----"
	print "Parsed Code:\n", php_code
	
	compiled_code = compile_php(php_code)
	print
	def print_node(node, depth=0):
		print "  "*depth, 
		if isinstance(node, TreeNode):
			print node.name
			for c in node.children:
				print_node(c, depth+1)
		else:
			print node
			
	print "Compiled Code:\n"
	print compiled_code.prepr()
Beispiel #3
0
def compile_php(php_tokens):
	if type(php_tokens) is str:
		php_tokens = parser.parse_php(php_tokens)
	if not isinstance(php_tokens, parser.TokenList):
		raise ArgumentError("Given argument is not php code, nor a list of tokens %r"%php_tokens)
	C = Compiler(php_tokens)
	return C.compile()
Beispiel #4
0
def compile_php(php_tokens):
    if type(php_tokens) is str:
        php_tokens = parser.parse_php(php_tokens)
    if not isinstance(php_tokens, parser.TokenList):
        raise ArgumentError(
            "Given argument is not php code, nor a list of tokens %r" %
            php_tokens)
    C = Compiler(php_tokens)
    return C.compile()
Beispiel #5
0
def execute_php(phpcode, global_dict=None, **kwargs):
	if type(phpcode) is str:
		phpcode = parser.parse_php(phpcode)
	if isinstance(phpcode, parser.TokenList):
		phpcode = compiler.compile_php(phpcode)
	if not isinstance(phpcode, compiler.TreeNode):
		raise ArgumentError("Given argument is not php code %r"%phpcode)
	E = PhpExecuter(phpcode, global_dict, **kwargs)
	E.execute()
	return E