var lexxml = (function () { "use strict"; // Basic environment derection; can be hardcoded if the environment is known var module = (function (module) { try { if (window) return {}; } catch (e) {} return module; })(this); // Generator function module.gen = function (lex) { // Language descriptor var descriptor = new lex.Descriptor([ //{ "IGNORE", "TAG", "DECLARATION_TAG", "PERCENT_TAG", "QUESTION_TAG", "SUB_DECLARATION", "RAW_HTML_DATA", ], "IGNORE"); //} var flags = descriptor.flags; descriptor.define_types({ "COMMENT": 0, "CDATA": 0, "TEXT": 0, "RAW_DATA": 0, "TAG_OPEN": 0, "TAG_CLOSE": 0, "TAG_NAME": 0, "ATTRIBUTE": 0, "ATTRIBUTE_WHITESPACE": 0, "ATTRIBUTE_OPERATOR": 0, "ATTRIBUTE_STRING": 0, }); // Matching logic var re_comment = /-->/g, re_cdata = /\]\]>/g, re_newlines_search = /[\r\n\u2028\u2029]/, re_newlines_split = /[\n\u2028\u2029]|\r\n?/g, re_bracket_open = /= 0) { // Raw mode setup_raw_data_opener.call(this, "= p_max) break; // end of string // Check for match if (m[0] === "]") { // Match p_max = m.index; break; } re2.lastIndex = re.lastIndex; if (re2.exec(this.text)[1] !== undefined) { // Match p_max = m.index; break; } } // End of string return (p_max > p) ? [ 0 , p_max ] : null; }, lex.create_token(descriptor.TEXT), ], [ lex.check_regex("<\\?(?=[a-zA-Z_])"), create_token_open_tag_fn(descriptor.TAG_OPEN, states.TAG_NAME_QUESTION, flags.QUESTION_TAG), ], [ lex.check_string("