11: def each
12: @tree.each do |token|
13: case token[0]
14: when 'StartTag'
15: yield start_tag(token[1], token[2])
16: when 'EndTag'
17: yield end_tag(token[1])
18: when 'EmptyTag'
19: yield empty_tag(token[1], token[2])
20: when 'Comment'
21: yield comment(token[1])
22: when 'Characters', 'SpaceCharacters'
23: text(token[1]) {|textToken| yield textToken}
24: when 'Doctype'
25: yield doctype(token[1], token[2], token[3])
26: else
27: raise "Unknown token type: " + token[0]
28: end
29: end
30: end