…lines 1–54 unchanged (54 lines)
55 }
56 }
57
58 protected abstract boolean process(Token token);
59
60 protected boolean processStartTag(String name) {
61 if (currentToken == start) { // don't recycle an in-use token
62 return process(new Token.StartTag().name(name));
63 }
64 return process(start.reset().name(name));
65 }
66
67 public boolean processStartTag(String name, Attributes attrs) {
68 if (currentToken == start) { // don't recycle an in-use token
69 return process(new Token.StartTag().nameAttr(name, attrs));
70 }
71 start.reset();
72 start.nameAttr(name, attrs);
73 return process(start);
74 }
75
76 protected boolean processEndTag(String name) {
77 if (currentToken == end) { // don't recycle an in-use token
78 return process(new Token.EndTag().name(name));
79 }
80 return process(end.reset().name(name));
81 }
82
83
84 protected Element currentElement() {
85 int size = stack.size();
…lines 86–89 unchanged (4 lines)