def self.parse(ts)
cur, item = [], []
unless ts.is_a?(TokenArray)
ts = TokenArray.new(ts)
end
pre = ts.readto{|t| t == "machine" || t == "default"}
while ts.length > 0
if ts[0] == 'default'
cur << ts.take.to_sym
cur << ''
else
cur << ts.take + ts.readto{|t| ! skip?(t)}
cur << ts.take
end
if ts.include?('login')
cur << ts.readto{|t| t == "login"} + ts.take + ts.readto{|t| ! skip?(t)}
cur << ts.take
end
if ts.include?('password')
cur << ts.readto{|t| t == "password"} + ts.take + ts.readto{|t| ! skip?(t)}
cur << ts.take
end
cur << ts.readto{|t| t == "machine" || t == "default"}
item << cur
cur = []
end
[pre, item]
end