UNPKG

idyll-compiler

Version:
385 lines (376 loc) 30.7 kB
// Generated automatically by nearley, version 2.20.1 // http://github.com/Hardmath123/nearley (function () { function id(x) { return x[0]; } var grammar = { Lexer: undefined, ParserRules: [ {"name": "_$ebnf$1", "symbols": []}, {"name": "_$ebnf$1", "symbols": ["_$ebnf$1", "wschar"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "_", "symbols": ["_$ebnf$1"], "postprocess": function(d) {return null;}}, {"name": "__$ebnf$1", "symbols": ["wschar"]}, {"name": "__$ebnf$1", "symbols": ["__$ebnf$1", "wschar"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "__", "symbols": ["__$ebnf$1"], "postprocess": function(d) {return null;}}, {"name": "wschar", "symbols": [/[ \t\n\v\f]/], "postprocess": id}, {"name": "Sourcefile$string$1", "symbols": [{"literal":"E"}, {"literal":"O"}, {"literal":"F"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Sourcefile", "symbols": ["Blocks", "Sourcefile$string$1"], "postprocess": function(data, location, reject) { return data[0]; } }, {"name": "Blocks$ebnf$1", "symbols": []}, {"name": "Blocks$ebnf$1$subexpression$1$string$1", "symbols": [{"literal":"B"}, {"literal":"R"}, {"literal":"E"}, {"literal":"A"}, {"literal":"K"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Blocks$ebnf$1$subexpression$1", "symbols": ["Blocks$ebnf$1$subexpression$1$string$1", "__"]}, {"name": "Blocks$ebnf$1", "symbols": ["Blocks$ebnf$1", "Blocks$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "Blocks$ebnf$2", "symbols": []}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$1$string$1", "symbols": [{"literal":"B"}, {"literal":"R"}, {"literal":"E"}, {"literal":"A"}, {"literal":"K"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$1", "symbols": ["Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$1$string$1", "__"]}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1", "symbols": ["Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$1"]}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$2$string$1", "symbols": [{"literal":"B"}, {"literal":"R"}, {"literal":"E"}, {"literal":"A"}, {"literal":"K"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$2", "symbols": ["Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$2$string$1", "__"]}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1", "symbols": ["Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1", "Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$1", "symbols": ["BreakBlock", "__", "Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1"]}, {"name": "Blocks$ebnf$2$subexpression$1", "symbols": ["Blocks$ebnf$2$subexpression$1$subexpression$1"]}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1", "symbols": []}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1$subexpression$1$string$1", "symbols": [{"literal":"B"}, {"literal":"R"}, {"literal":"E"}, {"literal":"A"}, {"literal":"K"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1$subexpression$1", "symbols": ["Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1$subexpression$1$string$1", "__"]}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1", "symbols": ["Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1", "Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "Blocks$ebnf$2$subexpression$1$subexpression$2", "symbols": ["NoBreakBlock", "__", "Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1"]}, {"name": "Blocks$ebnf$2$subexpression$1", "symbols": ["Blocks$ebnf$2$subexpression$1$subexpression$2"]}, {"name": "Blocks$ebnf$2", "symbols": ["Blocks$ebnf$2", "Blocks$ebnf$2$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "Blocks$ebnf$3$subexpression$1", "symbols": ["BreakBlock", "__"]}, {"name": "Blocks$ebnf$3", "symbols": ["Blocks$ebnf$3$subexpression$1"], "postprocess": id}, {"name": "Blocks$ebnf$3", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "Blocks", "symbols": ["Blocks$ebnf$1", "Blocks$ebnf$2", "Blocks$ebnf$3"], "postprocess": function(data, location, reject) { var blocks = []; data[1].forEach(function(d) { blocks.push(d[0][0]); }) if (data[2]) { blocks.push(data[2][0]); } return blocks; } }, {"name": "Block$subexpression$1", "symbols": ["BreakBlock"]}, {"name": "Block$subexpression$1", "symbols": ["NoBreakBlock"]}, {"name": "Block", "symbols": ["Block$subexpression$1"], "postprocess": function(data, location, reject) { return data[0][0]; } }, {"name": "NoBreakBlock$subexpression$1", "symbols": ["Header"]}, {"name": "NoBreakBlock$subexpression$1", "symbols": ["Quote"]}, {"name": "NoBreakBlock$subexpression$1", "symbols": ["MultilineCode"]}, {"name": "NoBreakBlock$subexpression$1", "symbols": ["UnorderedList"]}, {"name": "NoBreakBlock$subexpression$1", "symbols": ["OrderedList"]}, {"name": "NoBreakBlock", "symbols": ["NoBreakBlock$subexpression$1"], "postprocess": function(data, location, reject) { return data[0][0]; } }, {"name": "BreakBlock$subexpression$1", "symbols": ["Paragraph"]}, {"name": "BreakBlock", "symbols": ["BreakBlock$subexpression$1"], "postprocess": function(data, location, reject) { return data[0][0]; } }, {"name": "Header$string$1", "symbols": [{"literal":"H"}, {"literal":"E"}, {"literal":"A"}, {"literal":"D"}, {"literal":"E"}, {"literal":"R"}, {"literal":"_"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Header$ebnf$1$subexpression$1", "symbols": ["__", "ParagraphItem"]}, {"name": "Header$ebnf$1", "symbols": ["Header$ebnf$1$subexpression$1"]}, {"name": "Header$ebnf$1$subexpression$2", "symbols": ["__", "ParagraphItem"]}, {"name": "Header$ebnf$1", "symbols": ["Header$ebnf$1", "Header$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "Header$string$2", "symbols": [{"literal":"H"}, {"literal":"E"}, {"literal":"A"}, {"literal":"D"}, {"literal":"E"}, {"literal":"R"}, {"literal":"_"}, {"literal":"E"}, {"literal":"N"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Header", "symbols": ["Header$string$1", /[1-6]/, "Header$ebnf$1", "__", "Header$string$2"], "postprocess": function(data, location, reject) { var children = []; data[2].map(function (child) { children.push(child[1]); }); return ["h" + data[1], [], children]; } }, {"name": "Quote$string$1", "symbols": [{"literal":"Q"}, {"literal":"U"}, {"literal":"O"}, {"literal":"T"}, {"literal":"E"}, {"literal":"_"}, {"literal":"S"}, {"literal":"T"}, {"literal":"A"}, {"literal":"R"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Quote$ebnf$1$subexpression$1", "symbols": ["__", "ParagraphItem"]}, {"name": "Quote$ebnf$1", "symbols": ["Quote$ebnf$1$subexpression$1"]}, {"name": "Quote$ebnf$1$subexpression$2", "symbols": ["__", "ParagraphItem"]}, {"name": "Quote$ebnf$1", "symbols": ["Quote$ebnf$1", "Quote$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "Quote$string$2", "symbols": [{"literal":"Q"}, {"literal":"U"}, {"literal":"O"}, {"literal":"T"}, {"literal":"E"}, {"literal":"_"}, {"literal":"E"}, {"literal":"N"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Quote", "symbols": ["Quote$string$1", "Quote$ebnf$1", "__", "Quote$string$2"], "postprocess": function(data, location, reject) { var children = []; data[1].map(function (child) { children.push(child[1]); }); return ["blockquote", [], children]; } }, {"name": "UnorderedList$string$1", "symbols": [{"literal":"U"}, {"literal":"N"}, {"literal":"O"}, {"literal":"R"}, {"literal":"D"}, {"literal":"E"}, {"literal":"R"}, {"literal":"E"}, {"literal":"D"}, {"literal":"_"}, {"literal":"L"}, {"literal":"I"}, {"literal":"S"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "UnorderedList$ebnf$1$subexpression$1", "symbols": ["__", "ListItem"]}, {"name": "UnorderedList$ebnf$1", "symbols": ["UnorderedList$ebnf$1$subexpression$1"]}, {"name": "UnorderedList$ebnf$1$subexpression$2", "symbols": ["__", "ListItem"]}, {"name": "UnorderedList$ebnf$1", "symbols": ["UnorderedList$ebnf$1", "UnorderedList$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "UnorderedList$string$2", "symbols": [{"literal":"L"}, {"literal":"I"}, {"literal":"S"}, {"literal":"T"}, {"literal":"_"}, {"literal":"E"}, {"literal":"N"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "UnorderedList", "symbols": ["UnorderedList$string$1", "UnorderedList$ebnf$1", "__", "UnorderedList$string$2"], "postprocess": function(data, location, reject) { var children = []; data[1].map(function (child) { children.push(["li", [], child[1]]); }); return ["ul", [], children]; } }, {"name": "OrderedList$string$1", "symbols": [{"literal":"O"}, {"literal":"R"}, {"literal":"D"}, {"literal":"E"}, {"literal":"R"}, {"literal":"E"}, {"literal":"D"}, {"literal":"_"}, {"literal":"L"}, {"literal":"I"}, {"literal":"S"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "OrderedList$ebnf$1$subexpression$1", "symbols": ["__", "ListItem"]}, {"name": "OrderedList$ebnf$1", "symbols": ["OrderedList$ebnf$1$subexpression$1"]}, {"name": "OrderedList$ebnf$1$subexpression$2", "symbols": ["__", "ListItem"]}, {"name": "OrderedList$ebnf$1", "symbols": ["OrderedList$ebnf$1", "OrderedList$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "OrderedList$string$2", "symbols": [{"literal":"L"}, {"literal":"I"}, {"literal":"S"}, {"literal":"T"}, {"literal":"_"}, {"literal":"E"}, {"literal":"N"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "OrderedList", "symbols": ["OrderedList$string$1", "OrderedList$ebnf$1", "__", "OrderedList$string$2"], "postprocess": function(data, location, reject) { var children = []; data[1].map(function (child) { children.push(["li", [], child[1]]); }); return ["ol", [], children]; } }, {"name": "ListItem$string$1", "symbols": [{"literal":"L"}, {"literal":"I"}, {"literal":"S"}, {"literal":"T"}, {"literal":"_"}, {"literal":"I"}, {"literal":"T"}, {"literal":"E"}, {"literal":"M"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ListItem$ebnf$1$subexpression$1", "symbols": ["__", "ParagraphItem"]}, {"name": "ListItem$ebnf$1", "symbols": ["ListItem$ebnf$1$subexpression$1"]}, {"name": "ListItem$ebnf$1$subexpression$2", "symbols": ["__", "ParagraphItem"]}, {"name": "ListItem$ebnf$1", "symbols": ["ListItem$ebnf$1", "ListItem$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "ListItem", "symbols": ["ListItem$string$1", "ListItem$ebnf$1"], "postprocess": function(data, location, reject) { var children = []; data[1].map(function (child) { children.push(child[1]); }); return children; } }, {"name": "MultilineCode$string$1", "symbols": [{"literal":"M"}, {"literal":"U"}, {"literal":"L"}, {"literal":"T"}, {"literal":"I"}, {"literal":"L"}, {"literal":"I"}, {"literal":"N"}, {"literal":"E"}, {"literal":"_"}, {"literal":"C"}, {"literal":"O"}, {"literal":"D"}, {"literal":"E"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "MultilineCode$ebnf$1$subexpression$1", "symbols": ["__", "TokenValue"]}, {"name": "MultilineCode$ebnf$1", "symbols": ["MultilineCode$ebnf$1$subexpression$1"]}, {"name": "MultilineCode$ebnf$1$subexpression$2", "symbols": ["__", "TokenValue"]}, {"name": "MultilineCode$ebnf$1", "symbols": ["MultilineCode$ebnf$1", "MultilineCode$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "MultilineCode", "symbols": ["MultilineCode$string$1", "MultilineCode$ebnf$1"], "postprocess": function(data, location, reject) { if (data[1].length > 1 && data[1][0][1].trim() !== '') { return ["CodeHighlight", [['language', ['value', data[1][0][1]]]], [data[1][1][1]]]; } else { return ["pre", [], [["code", [], [data[1][data[1].length - 1][1]]]]]; } } }, {"name": "Paragraph$ebnf$1", "symbols": []}, {"name": "Paragraph$ebnf$1$subexpression$1", "symbols": ["ParagraphItem", "__"]}, {"name": "Paragraph$ebnf$1", "symbols": ["Paragraph$ebnf$1", "Paragraph$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "Paragraph", "symbols": ["Paragraph$ebnf$1", "ParagraphItem"], "postprocess": function(data, location, reject) { var children = []; data[0].map(function (child) { children.push(child[0]); }); children.push(data[1]); var lastWasString = false; // If there are multiple strings split across // children merge them to avoid issues with // Equation and other components that // consume their children programatically. children = children.reduce((acc, c) => { if (typeof c === 'string' && lastWasString) { acc[acc.length - 1] += c; lastWasString = true; } else if (typeof c === 'string') { acc.push(c); lastWasString = true; } else { acc.push(c); lastWasString = false; } return acc; }, []) if (children.length === 1 && typeof children[0] !== 'string') { return children[0]; } else if (children.filter(function (c) { return typeof c === 'string' }).length === 0) { return ["_idyllContainer", [], children]; } return ["p", [], children]; } }, {"name": "ParagraphItem$subexpression$1", "symbols": ["Text"]}, {"name": "ParagraphItem$subexpression$1", "symbols": ["ClosedComponent"]}, {"name": "ParagraphItem$subexpression$1", "symbols": ["OpenComponent"]}, {"name": "ParagraphItem$subexpression$1", "symbols": ["TextInline"]}, {"name": "ParagraphItem", "symbols": ["ParagraphItem$subexpression$1"], "postprocess": function(data, location, reject) { return data[0][0]; } }, {"name": "Text$string$1", "symbols": [{"literal":"W"}, {"literal":"O"}, {"literal":"R"}, {"literal":"D"}, {"literal":"S"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "Text", "symbols": ["Text$string$1", "__", "TokenValue"], "postprocess": function(data, location, reject) { return data[2]; } }, {"name": "TextInline$subexpression$1", "symbols": ["CodeInline"]}, {"name": "TextInline$subexpression$1", "symbols": ["BoldInline"]}, {"name": "TextInline$subexpression$1", "symbols": ["EmInline"]}, {"name": "TextInline$subexpression$1", "symbols": ["LinkInline"]}, {"name": "TextInline$subexpression$1", "symbols": ["ImageInline"]}, {"name": "TextInline", "symbols": ["TextInline$subexpression$1"], "postprocess": function(data, location, reject) { return data[0][0]; } }, {"name": "BoldInline$string$1", "symbols": [{"literal":"S"}, {"literal":"T"}, {"literal":"R"}, {"literal":"O"}, {"literal":"N"}, {"literal":"G"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "BoldInline$ebnf$1$subexpression$1", "symbols": ["__", "ParagraphItem"]}, {"name": "BoldInline$ebnf$1", "symbols": ["BoldInline$ebnf$1$subexpression$1"]}, {"name": "BoldInline$ebnf$1$subexpression$2", "symbols": ["__", "ParagraphItem"]}, {"name": "BoldInline$ebnf$1", "symbols": ["BoldInline$ebnf$1", "BoldInline$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "BoldInline$string$2", "symbols": [{"literal":"S"}, {"literal":"T"}, {"literal":"R"}, {"literal":"O"}, {"literal":"N"}, {"literal":"G"}, {"literal":"_"}, {"literal":"E"}, {"literal":"N"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "BoldInline", "symbols": ["BoldInline$string$1", "BoldInline$ebnf$1", "__", "BoldInline$string$2"], "postprocess": function(data, location, reject) { var children = []; data[1].map(function (child) { children.push(child[1]); }); return ["strong", [], children]; } }, {"name": "EmInline$string$1", "symbols": [{"literal":"E"}, {"literal":"M"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "EmInline$ebnf$1$subexpression$1", "symbols": ["__", "ParagraphItem"]}, {"name": "EmInline$ebnf$1", "symbols": ["EmInline$ebnf$1$subexpression$1"]}, {"name": "EmInline$ebnf$1$subexpression$2", "symbols": ["__", "ParagraphItem"]}, {"name": "EmInline$ebnf$1", "symbols": ["EmInline$ebnf$1", "EmInline$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "EmInline$string$2", "symbols": [{"literal":"E"}, {"literal":"M"}, {"literal":"_"}, {"literal":"E"}, {"literal":"N"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "EmInline", "symbols": ["EmInline$string$1", "EmInline$ebnf$1", "__", "EmInline$string$2"], "postprocess": function(data, location, reject) { var children = []; data[1].map(function (child) { children.push(child[1]); }); return ["em", [], children]; } }, {"name": "CodeInline$string$1", "symbols": [{"literal":"I"}, {"literal":"N"}, {"literal":"L"}, {"literal":"I"}, {"literal":"N"}, {"literal":"E"}, {"literal":"_"}, {"literal":"C"}, {"literal":"O"}, {"literal":"D"}, {"literal":"E"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "CodeInline", "symbols": ["CodeInline$string$1", "__", "TokenValue"], "postprocess": function(data, location, reject) { return ['code', [], [data[2]]]; } }, {"name": "ImageInline$string$1", "symbols": [{"literal":"I"}, {"literal":"M"}, {"literal":"A"}, {"literal":"G"}, {"literal":"E"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ImageInline", "symbols": ["ImageInline$string$1", "__", "TokenValue", "__", "TokenValue"], "postprocess": function(data, location, reject) { return ['img', [["src", ["value", data[4]]], ["alt", ["value", data[2]]]], []]; } }, {"name": "LinkInline$string$1", "symbols": [{"literal":"L"}, {"literal":"I"}, {"literal":"N"}, {"literal":"K"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "LinkInline", "symbols": ["LinkInline$string$1", "__", "TokenValue", "__", "TokenValue"], "postprocess": function(data, location, reject) { return ['a', [["href", ["value", data[4]]]], [data[2]]]; } }, {"name": "OpenComponent", "symbols": ["OpenComponentStart", "__", "Blocks", "OpenComponentEnd"], "postprocess": function(data, location, reject) { return [data[0][0], data[0][1], data[2] || []]; } }, {"name": "OpenComponentStart$string$1", "symbols": [{"literal":"O"}, {"literal":"P"}, {"literal":"E"}, {"literal":"N"}, {"literal":"_"}, {"literal":"B"}, {"literal":"R"}, {"literal":"A"}, {"literal":"C"}, {"literal":"K"}, {"literal":"E"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "OpenComponentStart$string$2", "symbols": [{"literal":"C"}, {"literal":"L"}, {"literal":"O"}, {"literal":"S"}, {"literal":"E"}, {"literal":"_"}, {"literal":"B"}, {"literal":"R"}, {"literal":"A"}, {"literal":"C"}, {"literal":"K"}, {"literal":"E"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "OpenComponentStart", "symbols": ["OpenComponentStart$string$1", "__", "ComponentName", "__", "ComponentProperties", "OpenComponentStart$string$2"], "postprocess": function(data, location, reject) { return [data[2], data[4]]; } }, {"name": "OpenComponentEnd$string$1", "symbols": [{"literal":"O"}, {"literal":"P"}, {"literal":"E"}, {"literal":"N"}, {"literal":"_"}, {"literal":"B"}, {"literal":"R"}, {"literal":"A"}, {"literal":"C"}, {"literal":"K"}, {"literal":"E"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "OpenComponentEnd$string$2", "symbols": [{"literal":"F"}, {"literal":"O"}, {"literal":"R"}, {"literal":"W"}, {"literal":"A"}, {"literal":"R"}, {"literal":"D"}, {"literal":"_"}, {"literal":"S"}, {"literal":"L"}, {"literal":"A"}, {"literal":"S"}, {"literal":"H"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "OpenComponentEnd$string$3", "symbols": [{"literal":"C"}, {"literal":"L"}, {"literal":"O"}, {"literal":"S"}, {"literal":"E"}, {"literal":"_"}, {"literal":"B"}, {"literal":"R"}, {"literal":"A"}, {"literal":"C"}, {"literal":"K"}, {"literal":"E"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "OpenComponentEnd", "symbols": ["OpenComponentEnd$string$1", "__", "OpenComponentEnd$string$2", "__", "ComponentName", "__", "OpenComponentEnd$string$3"], "postprocess": function(data, location, reject) { return data; } }, {"name": "ClosedComponent$string$1", "symbols": [{"literal":"O"}, {"literal":"P"}, {"literal":"E"}, {"literal":"N"}, {"literal":"_"}, {"literal":"B"}, {"literal":"R"}, {"literal":"A"}, {"literal":"C"}, {"literal":"K"}, {"literal":"E"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ClosedComponent$string$2", "symbols": [{"literal":"F"}, {"literal":"O"}, {"literal":"R"}, {"literal":"W"}, {"literal":"A"}, {"literal":"R"}, {"literal":"D"}, {"literal":"_"}, {"literal":"S"}, {"literal":"L"}, {"literal":"A"}, {"literal":"S"}, {"literal":"H"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ClosedComponent$string$3", "symbols": [{"literal":"C"}, {"literal":"L"}, {"literal":"O"}, {"literal":"S"}, {"literal":"E"}, {"literal":"_"}, {"literal":"B"}, {"literal":"R"}, {"literal":"A"}, {"literal":"C"}, {"literal":"K"}, {"literal":"E"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ClosedComponent", "symbols": ["ClosedComponent$string$1", "__", "ComponentName", "__", "ComponentProperties", "ClosedComponent$string$2", "__", "ClosedComponent$string$3"], "postprocess": function(data, location, reject) { return [data[2], data[4], []]; } }, {"name": "ComponentName$string$1", "symbols": [{"literal":"C"}, {"literal":"O"}, {"literal":"M"}, {"literal":"P"}, {"literal":"O"}, {"literal":"N"}, {"literal":"E"}, {"literal":"N"}, {"literal":"T"}, {"literal":"_"}, {"literal":"N"}, {"literal":"A"}, {"literal":"M"}, {"literal":"E"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ComponentName", "symbols": ["ComponentName$string$1", "__", "TokenValue"], "postprocess": function(data, location, reject) { return data[2]; } }, {"name": "ComponentProperties$ebnf$1", "symbols": []}, {"name": "ComponentProperties$ebnf$1$subexpression$1", "symbols": ["ComponentProperty", "__"]}, {"name": "ComponentProperties$ebnf$1", "symbols": ["ComponentProperties$ebnf$1", "ComponentProperties$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "ComponentProperties", "symbols": ["ComponentProperties$ebnf$1"], "postprocess": function(data, location, reject) { return data[0].map(function(d) { return d[0]; }); } }, {"name": "ComponentProperty$string$1", "symbols": [{"literal":"C"}, {"literal":"O"}, {"literal":"M"}, {"literal":"P"}, {"literal":"O"}, {"literal":"N"}, {"literal":"E"}, {"literal":"N"}, {"literal":"T"}, {"literal":"_"}, {"literal":"W"}, {"literal":"O"}, {"literal":"R"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ComponentProperty$string$2", "symbols": [{"literal":"P"}, {"literal":"A"}, {"literal":"R"}, {"literal":"A"}, {"literal":"M"}, {"literal":"_"}, {"literal":"S"}, {"literal":"E"}, {"literal":"P"}, {"literal":"A"}, {"literal":"R"}, {"literal":"A"}, {"literal":"T"}, {"literal":"O"}, {"literal":"R"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ComponentProperty", "symbols": ["ComponentProperty$string$1", "__", "TokenValue", "__", "ComponentProperty$string$2", "__", "ComponentPropertyValue"], "postprocess": function(data, location, reject) { var key = data[2]; var val = data[6]; return [key, val]; } }, {"name": "ComponentPropertyValue$subexpression$1$string$1", "symbols": [{"literal":"N"}, {"literal":"U"}, {"literal":"M"}, {"literal":"B"}, {"literal":"E"}, {"literal":"R"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ComponentPropertyValue$subexpression$1", "symbols": ["ComponentPropertyValue$subexpression$1$string$1"]}, {"name": "ComponentPropertyValue$subexpression$1$string$2", "symbols": [{"literal":"E"}, {"literal":"X"}, {"literal":"P"}, {"literal":"R"}, {"literal":"E"}, {"literal":"S"}, {"literal":"S"}, {"literal":"I"}, {"literal":"O"}, {"literal":"N"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ComponentPropertyValue$subexpression$1", "symbols": ["ComponentPropertyValue$subexpression$1$string$2"]}, {"name": "ComponentPropertyValue$subexpression$1$string$3", "symbols": [{"literal":"S"}, {"literal":"T"}, {"literal":"R"}, {"literal":"I"}, {"literal":"N"}, {"literal":"G"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ComponentPropertyValue$subexpression$1", "symbols": ["ComponentPropertyValue$subexpression$1$string$3"]}, {"name": "ComponentPropertyValue$subexpression$1$string$4", "symbols": [{"literal":"C"}, {"literal":"O"}, {"literal":"M"}, {"literal":"P"}, {"literal":"O"}, {"literal":"N"}, {"literal":"E"}, {"literal":"N"}, {"literal":"T"}, {"literal":"_"}, {"literal":"W"}, {"literal":"O"}, {"literal":"R"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ComponentPropertyValue$subexpression$1", "symbols": ["ComponentPropertyValue$subexpression$1$string$4"]}, {"name": "ComponentPropertyValue$subexpression$1$string$5", "symbols": [{"literal":"B"}, {"literal":"O"}, {"literal":"O"}, {"literal":"L"}, {"literal":"E"}, {"literal":"A"}, {"literal":"N"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ComponentPropertyValue$subexpression$1", "symbols": ["ComponentPropertyValue$subexpression$1$string$5"]}, {"name": "ComponentPropertyValue", "symbols": ["ComponentPropertyValue$subexpression$1", "__", "TokenValue"], "postprocess": function(data, location, reject) { var t = data[0][0]; var val = data[2]; if (t === 'NUMBER') { val = +val; } else if (t === 'EXPRESSION' || t === 'STRING') { val = val.substring(1, val.length-1); } else if (t === 'BOOLEAN') { val = (val === 'true'); } var typeString = ''; if (t === 'EXPRESSION') { typeString = 'expression'; } else if (t === 'NUMBER' || t === 'STRING' || t === 'BOOLEAN') { typeString = 'value'; } else if (t === 'COMPONENT_WORD') { typeString = 'variable'; } return [typeString, val]; } }, {"name": "TokenValue$string$1", "symbols": [{"literal":"T"}, {"literal":"O"}, {"literal":"K"}, {"literal":"E"}, {"literal":"N"}, {"literal":"_"}, {"literal":"V"}, {"literal":"A"}, {"literal":"L"}, {"literal":"U"}, {"literal":"E"}, {"literal":"_"}, {"literal":"S"}, {"literal":"T"}, {"literal":"A"}, {"literal":"R"}, {"literal":"T"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "TokenValue$ebnf$1", "symbols": []}, {"name": "TokenValue$ebnf$1", "symbols": ["TokenValue$ebnf$1", /[^\"]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "TokenValue$string$2", "symbols": [{"literal":"T"}, {"literal":"O"}, {"literal":"K"}, {"literal":"E"}, {"literal":"N"}, {"literal":"_"}, {"literal":"V"}, {"literal":"A"}, {"literal":"L"}, {"literal":"U"}, {"literal":"E"}, {"literal":"_"}, {"literal":"E"}, {"literal":"N"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "TokenValue", "symbols": ["TokenValue$string$1", "__", {"literal":"\""}, "TokenValue$ebnf$1", {"literal":"\""}, "__", "TokenValue$string$2"], "postprocess": function(data, location, reject) { return data[3].join('').replace(/"/g, '"'); } } ] , ParserStart: "Sourcefile" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })();