def self.read(s, opt=nil)
parser = Parser.new
transformer = Transformer.new
lines = parser.parse("\n#{s}\n")
nodes = transformer.apply(lines)
root = PreRoot.new("#{s.strip.split("\n").first}...")
current = root
nodes = [] unless nodes.is_a?(Array)
nodes.each do |node|
parent = current
if node.indentation == current.indentation
parent = current.parent
elsif node.indentation < current.indentation
while node.indentation <= parent.indentation
parent = parent.parent
end
end
node.parent = parent
current = node
end
root.to_a
end