UNPKG

ndoc

Version:

JavaScript API documentor with simple syntax.

1,566 lines (1,505 loc) 168 kB
module.exports = (function(){ /* * Generated by PEG.js 0.7.0. * * http://pegjs.majda.cz/ */ function quote(s) { /* * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a * string literal except for the closing quote character, backslash, * carriage return, line separator, paragraph separator, and line feed. * Any character may appear in the form of an escape sequence. * * For portability, we also escape escape all control and non-ASCII * characters. Note that "\0" and "\v" escape sequences are not used * because JSHint does not like the first and IE the second. */ return '"' + s .replace(/\\/g, '\\\\') // backslash .replace(/"/g, '\\"') // closing quote character .replace(/\x08/g, '\\b') // backspace .replace(/\t/g, '\\t') // horizontal tab .replace(/\n/g, '\\n') // line feed .replace(/\f/g, '\\f') // form feed .replace(/\r/g, '\\r') // carriage return .replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, escape) + '"'; } var result = { /* * Parses the input with a generated parser. If the parsing is successfull, * returns a value explicitly or implicitly specified by the grammar from * which the parser was generated (see |PEG.buildParser|). If the parsing is * unsuccessful, throws |PEG.parser.SyntaxError| describing the error. */ parse: function(input, startRule) { var parseFunctions = { "file": parse_file, "chunk": parse_chunk, "entity": parse_entity, "OPEN": parse_OPEN, "CLOSE": parse_CLOSE, "documentation": parse_documentation, "tags_container": parse_tags_container, "heading": parse_heading, "addition": parse_addition, "description_container": parse_description_container, "tags": parse_tags, "tag": parse_tag, "version": parse_version, "description_text": parse_description_text, "signatures": parse_signatures, "class": parse_class, "mixin": parse_mixin, "section": parse_section, "namespace": parse_namespace, "includes": parse_includes, "fires": parse_fires, "events": parse_events, "event": parse_event, "name_or_namespace": parse_name_or_namespace, "name": parse_name, "names": parse_names, "bare_signatures": parse_bare_signatures, "signature": parse_signature, "method": parse_method, "constructor": parse_constructor, "property": parse_property, "constant": parse_constant, "method_entry": parse_method_entry, "args": parse_args, "optional_args": parse_optional_args, "arg": parse_arg, "bare_arg": parse_bare_arg, "results": parse_results, "result_entries": parse_result_entries, "argument_descriptions": parse_argument_descriptions, "argument_description": parse_argument_description, "argument_description_types": parse_argument_description_types, "argument_description_text": parse_argument_description_text, "VALUE": parse_VALUE, "QUOTED_STRING": parse_QUOTED_STRING, "NULL": parse_NULL, "NUMBER": parse_NUMBER, "BOOLEAN": parse_BOOLEAN, "REGEXP": parse_REGEXP, "ARRAY": parse_ARRAY, "OBJECT": parse_OBJECT, "ARRAY_ENTRIES": parse_ARRAY_ENTRIES, "OBJECT_ENTRIES": parse_OBJECT_ENTRIES, "NAME": parse_NAME, "NAME_EDGE": parse_NAME_EDGE, "KEY": parse_KEY, "TEXT": parse_TEXT, "ANY": parse_ANY, "INDENT": parse_INDENT, "EMPTY_LINE": parse_EMPTY_LINE, "_": parse__, "_$": parse__$, "$": parse_$ }; if (startRule !== undefined) { if (parseFunctions[startRule] === undefined) { throw new Error("Invalid rule name: " + quote(startRule) + "."); } } else { startRule = "file"; } var pos = { offset: 0, line: 1, column: 1, seenCR: false }; var reportFailures = 0; var rightmostFailuresPos = { offset: 0, line: 1, column: 1, seenCR: false }; var rightmostFailuresExpected = []; function padLeft(input, padding, length) { var result = input; var padLength = length - input.length; for (var i = 0; i < padLength; i++) { result = padding + result; } return result; } function escape(ch) { var charCode = ch.charCodeAt(0); var escapeChar; var length; if (charCode <= 0xFF) { escapeChar = 'x'; length = 2; } else { escapeChar = 'u'; length = 4; } return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length); } function clone(object) { var result = {}; for (var key in object) { result[key] = object[key]; } return result; } function advance(pos, n) { var endOffset = pos.offset + n; for (var offset = pos.offset; offset < endOffset; offset++) { var ch = input.charAt(offset); if (ch === "\n") { if (!pos.seenCR) { pos.line++; } pos.column = 1; pos.seenCR = false; } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { pos.line++; pos.column = 1; pos.seenCR = true; } else { pos.column++; pos.seenCR = false; } } pos.offset += n; } function matchFailed(failure) { if (pos.offset < rightmostFailuresPos.offset) { return; } if (pos.offset > rightmostFailuresPos.offset) { rightmostFailuresPos = clone(pos); rightmostFailuresExpected = []; } rightmostFailuresExpected.push(failure); } function parse_file() { var result0, result1; var pos0; pos0 = clone(pos); result0 = []; result1 = parse_chunk(); while (result1 !== null) { result0.push(result1); result1 = parse_chunk(); } if (result0 !== null) { result0 = (function(offset, line, column) { return entities; })(pos0.offset, pos0.line, pos0.column); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_chunk() { var result0; result0 = parse_entity(); if (result0 === null) { result0 = parse_ANY(); } return result0; } function parse_entity() { var result0, result1, result2, result3; var pos0, pos1; pos0 = clone(pos); pos1 = clone(pos); result0 = parse_OPEN(); if (result0 !== null) { result1 = parse_documentation(); if (result1 === null) { result1 = (function(offset, line, column) { throwError(); })(pos.offset, pos.line, pos.column) ? "" : null; } if (result1 !== null) { result2 = parse_CLOSE(); if (result2 !== null) { result3 = (function(offset, line, column) { /* capture line number workaround */ if(typeof line !== 'undefined'){ entity.line = line + 1; } })(pos.offset, pos.line, pos.column) ? null : ""; if (result3 !== null) { result0 = [result0, result1, result2, result3]; } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } if (result0 !== null) { result0 = (function(offset, line, column) { entities[entity.id] = entity; /* init new supposed entity */ entity = Entity(); })(pos0.offset, pos0.line, pos0.column); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_OPEN() { var result0, result1, result2, result3, result4; var pos0; pos0 = clone(pos); result0 = parse_$(); if (result0 === null) { result0 = (function(offset, line, column) { return 0 === offset; })(pos.offset, pos.line, pos.column) ? "" : null; } if (result0 !== null) { result1 = []; result2 = parse__(); while (result2 !== null) { result1.push(result2); result2 = parse__(); } if (result1 !== null) { if (input.substr(pos.offset, 3) === "/**") { result2 = "/**"; advance(pos, 3); } else { result2 = null; if (reportFailures === 0) { matchFailed("\"/**\""); } } if (result2 !== null) { result3 = []; result4 = parse__(); while (result4 !== null) { result3.push(result4); result4 = parse__(); } if (result3 !== null) { result0 = [result0, result1, result2, result3]; } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } return result0; } function parse_CLOSE() { var result0, result1, result2; var pos0, pos1; pos0 = clone(pos); result0 = []; result1 = parse__(); while (result1 !== null) { result0.push(result1); result1 = parse__(); } if (result0 !== null) { if (input.substr(pos.offset, 3) === "**/") { result1 = "**/"; advance(pos, 3); } else { result1 = null; if (reportFailures === 0) { matchFailed("\"**/\""); } } if (result1 === null) { pos1 = clone(pos); if (input.substr(pos.offset, 2) === "*/") { result1 = "*/"; advance(pos, 2); } else { result1 = null; if (reportFailures === 0) { matchFailed("\"*/\""); } } if (result1 !== null) { result2 = (function(offset, line, column) { throw new parser.SyntaxError(['**/'], '*/', offset, line, column); })(pos.offset, pos.line, pos.column) ? "" : null; if (result2 !== null) { result1 = [result1, result2]; } else { result1 = null; pos = clone(pos1); } } else { result1 = null; pos = clone(pos1); } } if (result1 !== null) { result0 = [result0, result1]; } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } return result0; } function parse_documentation() { var result0, result1, result2, result3; var pos0; pos0 = clone(pos); result0 = parse_tags_container(); if (result0 !== null) { result1 = parse_heading(); if (result1 !== null) { result2 = []; result3 = parse_addition(); while (result3 !== null) { result2.push(result3); result3 = parse_addition(); } if (result2 !== null) { result3 = parse_description_container(); result3 = result3 !== null ? result3 : ""; if (result3 !== null) { result0 = [result0, result1, result2, result3]; } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } return result0; } function parse_tags_container() { var result0, result1; var pos0; pos0 = clone(pos); result0 = parse_tags(); result0 = result0 !== null ? result0 : ""; if (result0 !== null) { result1 = parse_$(); if (result1 !== null) { result0 = [result0, result1]; } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } return result0; } function parse_heading() { var result0; result0 = parse_signatures(); if (result0 === null) { result0 = parse_class(); if (result0 === null) { result0 = parse_mixin(); if (result0 === null) { result0 = parse_section(); if (result0 === null) { result0 = parse_namespace(); } } } } return result0; } function parse_addition() { var result0; result0 = parse_includes(); if (result0 === null) { result0 = parse_fires(); } return result0; } function parse_description_container() { var result0, result1; var pos0; pos0 = clone(pos); result0 = parse_EMPTY_LINE(); if (result0 !== null) { result1 = parse_description_text(); result1 = result1 !== null ? result1 : ""; if (result1 !== null) { result0 = [result0, result1]; } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } return result0; } function parse_tags() { var result0, result1, result2, result3, result4; var pos0, pos1; pos0 = clone(pos); result0 = parse_tag(); if (result0 !== null) { pos1 = clone(pos); result1 = []; result2 = parse__(); while (result2 !== null) { result1.push(result2); result2 = parse__(); } if (result1 !== null) { if (input.charCodeAt(pos.offset) === 44) { result2 = ","; advance(pos, 1); } else { result2 = null; if (reportFailures === 0) { matchFailed("\",\""); } } if (result2 !== null) { result3 = []; result4 = parse__(); while (result4 !== null) { result3.push(result4); result4 = parse__(); } if (result3 !== null) { result4 = parse_tags(); if (result4 !== null) { result1 = [result1, result2, result3, result4]; } else { result1 = null; pos = clone(pos1); } } else { result1 = null; pos = clone(pos1); } } else { result1 = null; pos = clone(pos1); } } else { result1 = null; pos = clone(pos1); } result1 = result1 !== null ? result1 : ""; if (result1 !== null) { result0 = [result0, result1]; } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } return result0; } function parse_tag() { var result0, result1, result2, result3, result4, result5, result6, result7, result8; var pos0, pos1, pos2; pos0 = clone(pos); if (input.substr(pos.offset, 9) === "read-only") { result0 = "read-only"; advance(pos, 9); } else { result0 = null; if (reportFailures === 0) { matchFailed("\"read-only\""); } } if (result0 !== null) { result0 = (function(offset, line, column, id) { entity.readonly = true; })(pos0.offset, pos0.line, pos0.column, result0); } if (result0 === null) { pos = clone(pos0); } if (result0 === null) { pos0 = clone(pos); if (input.substr(pos.offset, 8) === "internal") { result0 = "internal"; advance(pos, 8); } else { result0 = null; if (reportFailures === 0) { matchFailed("\"internal\""); } } if (result0 === null) { if (input.substr(pos.offset, 9) === "chainable") { result0 = "chainable"; advance(pos, 9); } else { result0 = null; if (reportFailures === 0) { matchFailed("\"chainable\""); } } } if (result0 !== null) { result0 = (function(offset, line, column, id) { entity[id] = true; })(pos0.offset, pos0.line, pos0.column, result0); } if (result0 === null) { pos = clone(pos0); } if (result0 === null) { pos0 = clone(pos); pos1 = clone(pos); if (input.substr(pos.offset, 7) === "section") { result0 = "section"; advance(pos, 7); } else { result0 = null; if (reportFailures === 0) { matchFailed("\"section\""); } } if (result0 === null) { if (input.substr(pos.offset, 8) === "alias of") { result0 = "alias of"; advance(pos, 8); } else { result0 = null; if (reportFailures === 0) { matchFailed("\"alias of\""); } } if (result0 === null) { if (input.substr(pos.offset, 10) === "related to") { result0 = "related to"; advance(pos, 10); } else { result0 = null; if (reportFailures === 0) { matchFailed("\"related to\""); } } if (result0 === null) { if (input.substr(pos.offset, 10) === "belongs to") { result0 = "belongs to"; advance(pos, 10); } else { result0 = null; if (reportFailures === 0) { matchFailed("\"belongs to\""); } } } } } if (result0 !== null) { result1 = []; result2 = parse__(); while (result2 !== null) { result1.push(result2); result2 = parse__(); } if (result1 !== null) { if (input.charCodeAt(pos.offset) === 58) { result2 = ":"; advance(pos, 1); } else { result2 = null; if (reportFailures === 0) { matchFailed("\":\""); } } if (result2 !== null) { result3 = []; result4 = parse__(); while (result4 !== null) { result3.push(result4); result4 = parse__(); } if (result3 !== null) { result4 = parse_name(); if (result4 !== null) { result0 = [result0, result1, result2, result3, result4]; } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } if (result0 !== null) { result0 = (function(offset, line, column, id, name) { /* `alias of' -> `alias_of' */ entity[id.replace(/\ /g, '_')] = name; })(pos0.offset, pos0.line, pos0.column, result0[0], result0[4]); } if (result0 === null) { pos = clone(pos0); } if (result0 === null) { pos0 = clone(pos); if (input.substr(pos.offset, 10) === "deprecated") { result0 = "deprecated"; advance(pos, 10); } else { result0 = null; if (reportFailures === 0) { matchFailed("\"deprecated\""); } } if (result0 !== null) { pos1 = clone(pos); pos2 = clone(pos); result1 = []; result2 = parse__(); while (result2 !== null) { result1.push(result2); result2 = parse__(); } if (result1 !== null) { if (input.charCodeAt(pos.offset) === 58) { result2 = ":"; advance(pos, 1); } else { result2 = null; if (reportFailures === 0) { matchFailed("\":\""); } } if (result2 !== null) { result3 = []; result4 = parse__(); while (result4 !== null) { result3.push(result4); result4 = parse__(); } if (result3 !== null) { result4 = parse_version(); if (result4 !== null) { result5 = []; result6 = parse__(); while (result6 !== null) { result5.push(result6); result6 = parse__(); } if (result5 !== null) { if (input.substr(pos.offset, 2) === "..") { result6 = ".."; advance(pos, 2); } else { result6 = null; if (reportFailures === 0) { matchFailed("\"..\""); } } if (result6 !== null) { result7 = []; result8 = parse__(); while (result8 !== null) { result7.push(result8); result8 = parse__(); } if (result7 !== null) { result8 = parse_version(); if (result8 !== null) { result1 = [result1, result2, result3, result4, result5, result6, result7, result8]; } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } if (result1 !== null) { result1 = (function(offset, line, column, since, off) { entity.deprecated = {since: since, off:off}; })(pos1.offset, pos1.line, pos1.column, result1[3], result1[7]); } if (result1 === null) { pos = clone(pos1); } if (result1 === null) { pos1 = clone(pos); pos2 = clone(pos); result1 = []; result2 = parse__(); while (result2 !== null) { result1.push(result2); result2 = parse__(); } if (result1 !== null) { if (input.charCodeAt(pos.offset) === 58) { result2 = ":"; advance(pos, 1); } else { result2 = null; if (reportFailures === 0) { matchFailed("\":\""); } } if (result2 !== null) { result3 = []; result4 = parse__(); while (result4 !== null) { result3.push(result4); result4 = parse__(); } if (result3 !== null) { result4 = parse_version(); if (result4 !== null) { result1 = [result1, result2, result3, result4]; } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } if (result1 !== null) { result1 = (function(offset, line, column, since) { entity.deprecated = {since: since}; })(pos1.offset, pos1.line, pos1.column, result1[3]); } if (result1 === null) { pos = clone(pos1); } if (result1 === null) { pos1 = clone(pos); pos2 = clone(pos); result1 = []; if (result1 !== null) { result1 = (function(offset, line, column) { entity.deprecated = true; })(pos1.offset, pos1.line, pos1.column); } if (result1 === null) { pos = clone(pos1); } } } if (result1 !== null) { result0 = [result0, result1]; } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } } } } return result0; } function parse_version() { var result0, result1, result2; var pos0, pos1, pos2, pos3; pos0 = clone(pos); pos1 = clone(pos); if (/^[0-9]/.test(input.charAt(pos.offset))) { result1 = input.charAt(pos.offset); advance(pos, 1); } else { result1 = null; if (reportFailures === 0) { matchFailed("[0-9]"); } } if (result1 !== null) { result0 = []; while (result1 !== null) { result0.push(result1); if (/^[0-9]/.test(input.charAt(pos.offset))) { result1 = input.charAt(pos.offset); advance(pos, 1); } else { result1 = null; if (reportFailures === 0) { matchFailed("[0-9]"); } } } } else { result0 = null; } if (result0 !== null) { pos2 = clone(pos); pos3 = clone(pos); if (input.charCodeAt(pos.offset) === 46) { result1 = "."; advance(pos, 1); } else { result1 = null; if (reportFailures === 0) { matchFailed("\".\""); } } if (result1 !== null) { result2 = parse_version(); if (result2 !== null) { result1 = [result1, result2]; } else { result1 = null; pos = clone(pos3); } } else { result1 = null; pos = clone(pos3); } if (result1 !== null) { result1 = (function(offset, line, column, v) { return v; })(pos2.offset, pos2.line, pos2.column, result1[1]); } if (result1 === null) { pos = clone(pos2); } result1 = result1 !== null ? result1 : ""; if (result1 !== null) { result0 = [result0, result1]; } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } if (result0 !== null) { result0 = (function(offset, line, column, first, rest) { return first.join('') + (rest ? '.' + rest : ''); })(pos0.offset, pos0.line, pos0.column, result0[0], result0[1]); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_description_text() { var result0, result1, result2, result3; var pos0, pos1, pos2; pos0 = clone(pos); pos1 = clone(pos); pos2 = clone(pos); result1 = parse_INDENT(); if (result1 !== null) { result2 = parse_TEXT(); if (result2 !== null) { result3 = parse_$(); if (result3 !== null) { result1 = [result1, result2, result3]; } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } if (result1 !== null) { result1 = (function(offset, line, column, indent, nested) { return indent + nested; })(pos1.offset, pos1.line, pos1.column, result1[0], result1[1]); } if (result1 === null) { pos = clone(pos1); } if (result1 === null) { result1 = parse_EMPTY_LINE(); } if (result1 !== null) { result0 = []; while (result1 !== null) { result0.push(result1); pos1 = clone(pos); pos2 = clone(pos); result1 = parse_INDENT(); if (result1 !== null) { result2 = parse_TEXT(); if (result2 !== null) { result3 = parse_$(); if (result3 !== null) { result1 = [result1, result2, result3]; } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } } else { result1 = null; pos = clone(pos2); } if (result1 !== null) { result1 = (function(offset, line, column, indent, nested) { return indent + nested; })(pos1.offset, pos1.line, pos1.column, result1[0], result1[1]); } if (result1 === null) { pos = clone(pos1); } if (result1 === null) { result1 = parse_EMPTY_LINE(); } } } else { result0 = null; } if (result0 !== null) { result0 = (function(offset, line, column, text) { entity.description = indent_shift(text.join('\n')); // short description lasts until the first empty line entity.short_description = entity.description.replace(/\n\n[\s\S]*$/, ''); })(pos0.offset, pos0.line, pos0.column, result0); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_signatures() { var result0, result1; var pos0; pos0 = clone(pos); result0 = parse_bare_signatures(); if (result0 !== null) { result1 = parse_argument_descriptions(); result1 = result1 !== null ? result1 : ""; if (result1 !== null) { result0 = [result0, result1]; } else { result0 = null; pos = clone(pos0); } } else { result0 = null; pos = clone(pos0); } return result0; } function parse_class() { var result0, result1, result2, result3, result4, result5, result6, result7; var pos0, pos1, pos2, pos3; pos0 = clone(pos); pos1 = clone(pos); result0 = parse_INDENT(); if (result0 !== null) { if (input.substr(pos.offset, 5) === "class") { result1 = "class"; advance(pos, 5); } else { result1 = null; if (reportFailures === 0) { matchFailed("\"class\""); } } if (result1 !== null) { result3 = parse__(); if (result3 !== null) { result2 = []; while (result3 !== null) { result2.push(result3); result3 = parse__(); } } else { result2 = null; } if (result2 !== null) { result3 = parse_name(); if (result3 !== null) { pos2 = clone(pos); pos3 = clone(pos); result4 = []; result5 = parse__(); while (result5 !== null) { result4.push(result5); result5 = parse__(); } if (result4 !== null) { if (input.charCodeAt(pos.offset) === 60) { result5 = "<"; advance(pos, 1); } else { result5 = null; if (reportFailures === 0) { matchFailed("\"<\""); } } if (result5 !== null) { result6 = []; result7 = parse__(); while (result7 !== null) { result6.push(result7); result7 = parse__(); } if (result6 !== null) { result7 = parse_name(); if (result7 !== null) { result4 = [result4, result5, result6, result7]; } else { result4 = null; pos = clone(pos3); } } else { result4 = null; pos = clone(pos3); } } else { result4 = null; pos = clone(pos3); } } else { result4 = null; pos = clone(pos3); } if (result4 !== null) { result4 = (function(offset, line, column, nested) { return nested; })(pos2.offset, pos2.line, pos2.column, result4[3]); } if (result4 === null) { pos = clone(pos2); } result4 = result4 !== null ? result4 : ""; if (result4 !== null) { result5 = parse_$(); if (result5 !== null) { result0 = [result0, result1, result2, result3, result4, result5]; } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } if (result0 !== null) { result0 = (function(offset, line, column, id, superclass) { entity.id = id; entity.type = 'class'; entity.superclass = superclass || none; })(pos0.offset, pos0.line, pos0.column, result0[3], result0[4]); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_mixin() { var result0, result1, result2, result3, result4; var pos0, pos1; pos0 = clone(pos); pos1 = clone(pos); result0 = parse_INDENT(); if (result0 !== null) { if (input.substr(pos.offset, 5) === "mixin") { result1 = "mixin"; advance(pos, 5); } else { result1 = null; if (reportFailures === 0) { matchFailed("\"mixin\""); } } if (result1 !== null) { result3 = parse__(); if (result3 !== null) { result2 = []; while (result3 !== null) { result2.push(result3); result3 = parse__(); } } else { result2 = null; } if (result2 !== null) { result3 = parse_name(); if (result3 !== null) { result4 = parse_$(); if (result4 !== null) { result0 = [result0, result1, result2, result3, result4]; } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } if (result0 !== null) { result0 = (function(offset, line, column, id) { entity.id = id; entity.type = 'mixin'; })(pos0.offset, pos0.line, pos0.column, result0[3]); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_section() { var result0, result1, result2, result3, result4, result5, result6; var pos0, pos1; pos0 = clone(pos); pos1 = clone(pos); result0 = parse_INDENT(); if (result0 !== null) { if (input.substr(pos.offset, 2) === "==") { result1 = "=="; advance(pos, 2); } else { result1 = null; if (reportFailures === 0) { matchFailed("\"==\""); } } if (result1 !== null) { result2 = []; result3 = parse__(); while (result3 !== null) { result2.push(result3); result3 = parse__(); } if (result2 !== null) { result3 = parse_name(); if (result3 !== null) { result4 = []; result5 = parse__(); while (result5 !== null) { result4.push(result5); result5 = parse__(); } if (result4 !== null) { if (input.substr(pos.offset, 2) === "==") { result5 = "=="; advance(pos, 2); } else { result5 = null; if (reportFailures === 0) { matchFailed("\"==\""); } } if (result5 !== null) { result6 = parse_$(); if (result6 !== null) { result0 = [result0, result1, result2, result3, result4, result5, result6]; } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } if (result0 !== null) { result0 = (function(offset, line, column, id) { entity.id = id; entity.type = 'section'; })(pos0.offset, pos0.line, pos0.column, result0[3]); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_namespace() { var result0, result1, result2; var pos0, pos1; pos0 = clone(pos); pos1 = clone(pos); result0 = parse_INDENT(); if (result0 !== null) { result1 = parse_name(); if (result1 !== null) { result2 = parse_$(); if (result2 !== null) { result0 = [result0, result1, result2]; } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } if (result0 !== null) { result0 = (function(offset, line, column, id) { entity.id = id; entity.type = 'namespace'; })(pos0.offset, pos0.line, pos0.column, result0[1]); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_includes() { var result0, result1, result2, result3, result4; var pos0, pos1; pos0 = clone(pos); pos1 = clone(pos); result0 = parse_INDENT(); if (result0 !== null) { if (input.substr(pos.offset, 8) === "includes") { result1 = "includes"; advance(pos, 8); } else { result1 = null; if (reportFailures === 0) { matchFailed("\"includes\""); } } if (result1 !== null) { result3 = parse__(); if (result3 !== null) { result2 = []; while (result3 !== null) { result2.push(result3); result3 = parse__(); } } else { result2 = null; } if (result2 !== null) { result3 = parse_names(); if (result3 !== null) { result4 = parse_$(); if (result4 !== null) { result0 = [result0, result1, result2, result3, result4]; } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } if (result0 !== null) { result0 = (function(offset, line, column, includes) { entity.included_mixins = includes; })(pos0.offset, pos0.line, pos0.column, result0[3]); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_fires() { var result0, result1, result2, result3, result4; var pos0, pos1; pos0 = clone(pos); pos1 = clone(pos); result0 = parse_INDENT(); if (result0 !== null) { if (input.substr(pos.offset, 5) === "fires") { result1 = "fires"; advance(pos, 5); } else { result1 = null; if (reportFailures === 0) { matchFailed("\"fires\""); } } if (result1 !== null) { result3 = parse__(); if (result3 !== null) { result2 = []; while (result3 !== null) { result2.push(result3); result3 = parse__(); } } else { result2 = null; } if (result2 !== null) { result3 = parse_events(); if (result3 !== null) { result4 = parse_$(); if (result4 !== null) { result0 = [result0, result1, result2, result3, result4]; } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } } else { result0 = null; pos = clone(pos1); } if (result0 !== null) { result0 = (function(offset, line, column, events) { entity.events = events; })(pos0.offset, pos0.line, pos0.column, result0[3]); } if (result0 === null) { pos = clone(pos0); } return result0; } function parse_events() { var result0, result1, result2; var pos0, pos1, pos2, pos3; pos0 = clone(pos); pos1 = clone(pos); result0 = parse_event(); if (result0 !== null) { pos2 = clone(pos); pos3 = clone(pos); if (input.charCodeAt(pos.offset) === 44) { result1 = ","; advance(pos, 1); } else { result1 = null; if (reportFailures === 0) { matchFailed("\",\""); } } if (result1 !== null) { result2 = parse_events(); if (result2 !== null) { result1 = [result1, result2]; } else { result1 = null; pos = clone(pos3); } } else { result1 = null; pos = clone(pos3); } if (result1 !== null) { result1 = (function(offset, line, column, nested) { return