From 16b7404d9bc2f9ba264f140310948897689fe3ca Mon Sep 17 00:00:00 2001 From: goatchurch Date: Sun, 28 Jun 2009 21:26:35 +0100 Subject: [svn] horrid .svns copied accidentally --- .../contrib/php/js/parsephphtmlmixed.js | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 media/CodeMirror-0.62/contrib/php/js/parsephphtmlmixed.js (limited to 'media/CodeMirror-0.62/contrib/php/js/parsephphtmlmixed.js') diff --git a/media/CodeMirror-0.62/contrib/php/js/parsephphtmlmixed.js b/media/CodeMirror-0.62/contrib/php/js/parsephphtmlmixed.js new file mode 100644 index 0000000..ee4418d --- /dev/null +++ b/media/CodeMirror-0.62/contrib/php/js/parsephphtmlmixed.js @@ -0,0 +1,90 @@ +/* +Copyright (c) 2008-2009 Yahoo! Inc. All rights reserved. +The copyrights embodied in the content of this file are licensed by +Yahoo! Inc. under the BSD (revised) open source license + +@author Dan Vlad Dascalescu + +Based on parsehtmlmixed.js by Marijn Haverbeke. +*/ + +var PHPHTMLMixedParser = Editor.Parser = (function() { + if (!(PHPParser && CSSParser && JSParser && XMLParser)) + throw new Error("PHP, CSS, JS, and XML parsers must be loaded for PHP+HTML mixed mode to work."); + XMLParser.configure({useHTMLKludges: true}); + + function parseMixed(stream) { + var htmlParser = XMLParser.make(stream), localParser = null, inTag = false; + var iter = {next: top, copy: copy}; + + function top() { + var token = htmlParser.next(); + if (token.content == "<") + inTag = true; + else if (token.style == "xml-tagname" && inTag === true) + inTag = token.content.toLowerCase(); + else if (token.type == "xml-processing") { + // dispatch on PHP + if (token.content == ""); + } + // "xml-processing" tokens are ignored, because they should be handled by a specific local parser + else if (token.content == ">") { + if (inTag == "script") + iter.next = local(JSParser, "