Parent Directory
|
Revision Log
|
Patch
| revision 1.15 by wakaba, Tue Apr 29 03:29:41 2008 UTC | revision 1.17 by wakaba, Fri May 16 10:29:25 2008 UTC | |
|---|---|---|
| # | Line 83 | Line 83 |
| 83 | doc = new JSDocument (this); | doc = new JSDocument (this); |
| 84 | doc.manakaiIsHTML = true; | doc.manakaiIsHTML = true; |
| 85 | } | } |
| 86 | this.nextToken = []; | |
| 87 | this.doc = doc; | this.doc = doc; |
| 88 | this.openElements = [doc]; | this.openElements = [doc]; |
| 89 | this.input = i; | this.input = i; |
| # | Line 92 | Line 93 |
| 93 | } // Parser | } // Parser |
| 94 | ||
| 95 | Parser.prototype.getNextToken = function () { | Parser.prototype.getNextToken = function () { |
| 96 | if (this.nextToken.length) { | |
| 97 | return this.nextToken.shift (); | |
| 98 | } | |
| 99 | ||
| 100 | var p = this; | var p = this; |
| 101 | var i = this.input; | var i = this.input; |
| 102 | if (this.parseMode == 'cdata') { | if (this.parseMode == 'cdata') { |
| # | Line 146 | Line 151 |
| 151 | i.s = i.s.replace (/^<\/([^>]+)(?:>|$)/, function (s, e) { | i.s = i.s.replace (/^<\/([^>]+)(?:>|$)/, function (s, e) { |
| 152 | if (p.insertionPoint < s.length || | if (p.insertionPoint < s.length || |
| 153 | (p.insertionPoint <= s.length && | (p.insertionPoint <= s.length && |
| 154 | s.substring (s.length - 1, 1) != '>')) { | s.substring (s.length - 1, s.length) != '>')) { |
| 155 | token = {type: 'abort'}; | token = {type: 'abort'}; |
| 156 | return s; | return s; |
| 157 | } | } |
| # | Line 158 | Line 163 |
| 163 | i.s = i.s.replace (/^<([^>]+)(?:>|$)/, function (s, e) { | i.s = i.s.replace (/^<([^>]+)(?:>|$)/, function (s, e) { |
| 164 | if (p.insertionPoint < s.length || | if (p.insertionPoint < s.length || |
| 165 | (p.insertionPoint <= s.length && | (p.insertionPoint <= s.length && |
| 166 | s.substring (s.length - 1, 1) != '>')) { | s.substring (s.length - 1, s.length) != '>')) { |
| 167 | token = {type: 'abort'}; | token = {type: 'abort'}; |
| 168 | return s; | return s; |
| 169 | } | } |
| # | Line 221 | Line 226 |
| 226 | var token = this.getNextToken (); | var token = this.getNextToken (); |
| 227 | log ('token: ' + token.type + ' "' + token.value + '"'); | log ('token: ' + token.type + ' "' + token.value + '"'); |
| 228 | ||
| 229 | if (this.cdataEndTagRequired) { | |
| 230 | // Generic CDATA parsing algorithm | |
| 231 |   |