(stream, state)
| 111 | } |
| 112 | |
| 113 | function inTag(stream, state) { |
| 114 | var ch = stream.next(); |
| 115 | if (ch == ">" || (ch == "/" && stream.eat(">"))) { |
| 116 | state.tokenize = inText; |
| 117 | type = ch == ">" ? "endTag" : "selfcloseTag"; |
| 118 | return "tag bracket"; |
| 119 | } else if (ch == "=") { |
| 120 | type = "equals"; |
| 121 | return null; |
| 122 | } else if (ch == "<") { |
| 123 | state.tokenize = inText; |
| 124 | state.state = baseState; |
| 125 | state.tagName = state.tagStart = null; |
| 126 | var next = state.tokenize(stream, state); |
| 127 | return next ? next + " tag error" : "tag error"; |
| 128 | } else if (/[\'\"]/.test(ch)) { |
| 129 | state.tokenize = inAttribute(ch); |
| 130 | state.stringStartCol = stream.column(); |
| 131 | return state.tokenize(stream, state); |
| 132 | } else { |
| 133 | stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/); |
| 134 | return "word"; |
| 135 | } |
| 136 | } |
| 137 | |
| 138 | function inAttribute(quote) { |
| 139 | var closure = function(stream, state) { |
nothing calls this directly
no test coverage detected