class Phlex::Compiler

def call

def call
	Visitors::File.new(self).visit(tree)
end

def file

def file
	location[0]
end

def initialize(view)

def initialize(view)
	@view = view
end

def inspect

def inspect
	"#{self.class.name} for #{@view.name} view class"
end

def line

def line
	location[1]
end

def location

def location
	::Module.const_source_location(@view.name)
end

def redefine(method)

def redefine(method)
	@view.class_eval(method)
end

def redefined?(method_name)

def redefined?(method_name)
	prototype = @view.allocate
	@view.instance_method(method_name).bind(prototype) !=
		Phlex::View.instance_method(method_name).bind(prototype)
end

def source

def source
	SyntaxTree.read(file)
end

def tree

def tree
	@tree ||= SyntaxTree.parse(source)
end