Files
synapse/webclient/js/vextab/vextab_parser.js
T
2014-10-19 08:47:39 +02:00

981 lines
50 KiB
JavaScript

/* parser generated by jison 0.4.13 */
/*
Returns a Parser object of the following structure:
Parser: {
yy: {}
}
Parser.prototype: {
yy: {},
trace: function(),
symbols_: {associative list: name ==> number},
terminals_: {associative list: number ==> name},
productions_: [...],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
table: [...],
defaultActions: {...},
parseError: function(str, hash),
parse: function(input),
lexer: {
EOF: 1,
parseError: function(str, hash),
setInput: function(input),
input: function(),
unput: function(str),
more: function(),
less: function(n),
pastInput: function(),
upcomingInput: function(),
showPosition: function(),
test_match: function(regex_match_array, rule_index),
next: function(),
lex: function(),
begin: function(condition),
popState: function(),
_currentRules: function(),
topState: function(),
pushState: function(condition),
options: {
ranges: boolean (optional: true ==> token location info will include a .range[] member)
flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
},
performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
rules: [...],
conditions: {associative list: name ==> set},
}
}
token location info (@$, _$, etc.): {
first_line: n,
last_line: n,
first_column: n,
last_column: n,
range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
}
the parseError function receives a 'hash' object with these members for lexer and parser errors: {
text: (matched text)
token: (the produced terminal token, if any)
line: (yylineno)
}
while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
loc: (yylloc)
expected: (string describing the set of expected tokens)
recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
}
*/
var vextab_parser = (function(){
var parser = {trace: function trace() { },
yy: {},
symbols_: {"error":2,"e":3,"maybe_vextab":4,"EOF":5,"vextab":6,"stave":7,"voice":8,"maybe_options":9,"stave_data":10,"OPTIONS":11,"options":12,"TABSTAVE":13,"STAVE":14,"VOICE":15,"stave_additions":16,"TEXT":17,"text":18,"NOTES":19,"notes":20,"SLUR":21,"WORD":22,"=":23,"STR":24,",":25,"lingo":26,"line":27,"chord":28,"time":29,"bar":30,"[":31,"]":32,"tuplets":33,"annotations":34,"command":35,"rest":36,"|":37,":":38,"frets":39,"maybe_decorator":40,"/":41,"string":42,"chord_line":43,".":44,"(":45,")":46,"articulation":47,"NUMBER":48,"abc":49,"_":50,"timed_fret":51,"time_values":52,"maybe_dot":53,"time_unit":54,"maybe_slash":55,"w":56,"h":57,"q":58,"d":59,"S":60,"-":61,"s":62,"t":63,"T":64,"b":65,"p":66,"v":67,"V":68,"u":69,"^":70,"$":71,"annotation_words":72,"!":73,"COMMAND":74,"#":75,"ABC":76,"abc_accidental":77,"accidental_type":78,"@":79,"n":80,"~":81,"$accept":0,"$end":1},
terminals_: {2:"error",5:"EOF",11:"OPTIONS",13:"TABSTAVE",14:"STAVE",15:"VOICE",17:"TEXT",19:"NOTES",21:"SLUR",22:"WORD",23:"=",24:"STR",25:",",31:"[",32:"]",37:"|",38:":",41:"/",44:".",45:"(",46:")",48:"NUMBER",50:"_",56:"w",57:"h",58:"q",59:"d",60:"S",61:"-",62:"s",63:"t",64:"T",65:"b",66:"p",67:"v",68:"V",69:"u",70:"^",71:"$",73:"!",74:"COMMAND",75:"#",76:"ABC",79:"@",80:"n",81:"~"},
productions_: [0,[3,2],[4,0],[4,1],[6,1],[6,2],[7,3],[7,2],[7,2],[8,1],[8,1],[8,1],[10,1],[10,2],[16,2],[16,2],[16,2],[9,0],[9,1],[12,3],[12,4],[18,1],[18,3],[20,1],[20,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[30,1],[30,3],[30,3],[30,3],[30,3],[30,3],[27,4],[43,1],[43,3],[28,4],[28,5],[39,1],[39,1],[39,4],[39,2],[39,4],[51,5],[51,1],[51,5],[51,8],[51,1],[51,4],[29,3],[52,2],[54,1],[54,1],[54,1],[54,1],[53,0],[53,1],[55,0],[55,1],[42,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[40,1],[40,1],[40,1],[40,1],[40,0],[33,3],[33,5],[34,3],[72,1],[72,3],[35,3],[36,2],[36,3],[36,4],[49,3],[77,1],[77,2],[77,1],[77,2],[77,1],[77,0],[78,0],[78,1]],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
/* this == yyval */
var $0 = $$.length - 1;
switch (yystate) {
case 1:
if (Vex.Flow.VexTab.DEBUG && $$[$0-1]) {
console.log($$[$0-1]);
console.log(JSON.stringify($$[$0-1], null, " "));
}
return $$[$0-1];
break;
case 2: this.$ = null
break;
case 3: this.$ = $$[$0]
break;
case 4: this.$ = [$$[$0]]
break;
case 5: this.$ = [].concat($$[$0-1], $$[$0])
break;
case 6: this.$ = {
element: $$[$0-2],
options: $$[$0-1],
notes: $$[$0].notes,
text: $$[$0].text,
_l: _$[$0-2].first_line,
_c: _$[$0-2].first_column
}
break;
case 7: this.$ = {
element: $$[$0-1],
options: $$[$0],
_l: _$[$0-1].first_line,
_c: _$[$0-1].first_column
}
break;
case 8:
this.$ = {
element: "options",
params: $$[$0],
_l: _$[$0-1].first_line,
_c: _$[$0-1].first_column
}
break;
case 12: this.$ = $$[$0]
break;
case 13:
var text = [].concat($$[$0-1].text, $$[$0].text);
var notes = [].concat($$[$0-1].notes, $$[$0].notes);
var slurs = [].concat($$[$0-1].slurs, $$[$0].slurs)
this.$ = {text: text, notes: notes, slurs: slurs};
break;
case 14:this.$ = {text: $$[$0], notes: [], slurs: []}
break;
case 15:this.$ = {notes: $$[$0], text: [], slurs: []}
break;
case 16:this.$ = {slurs: $$[$0], notes: [], text: []}
break;
case 17: this.$ = null
break;
case 18: this.$ = $$[$0]
break;
case 19: this.$ = [{
key: $$[$0-2],
value: $$[$0],
_l: _$[$0-2].first_line,
_c: _$[$0-2].first_column
}]
break;
case 20: this.$ = [].concat($$[$0-3], [{
key: $$[$0-2],
value: $$[$0],
_l: _$[$0-2].first_line,
_c: _$[$0-2].first_column
}])
break;
case 21: this.$ = [{text: $$[$0], _l: _$[$0].first_line, _c: _$[$0].first_column}]
break;
case 22: this.$ = [].concat($$[$0-2], {text: $$[$0], _l: _$[$0].first_line, _c: _$[$0].first_column})
break;
case 23: this.$ = $$[$0]
break;
case 24: this.$ = [].concat($$[$0-1], $$[$0])
break;
case 25: this.$ = $$[$0]
break;
case 26: this.$ = $$[$0]
break;
case 27: this.$ = $$[$0]
break;
case 28: this.$ = [{
command: "bar",
type: $$[$0],
_l: _$[$0].first_line,
_c: _$[$0].first_column
}]
break;
case 29: this.$ = [{
command: "open_beam",
_l: _$[$0].first_line,
_c: _$[$0].first_column
}]
break;
case 30: this.$ = [{
command: "close_beam",
_l: _$[$0].first_line,
_c: _$[$0].first_column
}]
break;
case 31: this.$ = [{
command: "tuplet",
params: $$[$0],
_l: _$[$0].first_line,
_c: _$[$0].first_column
}]
break;
case 32: this.$ = [{
command: "annotations",
params: $$[$0],
_l: _$[$0].first_line,
_c: _$[$0].first_column
}]
break;
case 33: this.$ = [{
command: "command",
params: $$[$0],
_l: _$[$0].first_line,
_c: _$[$0].first_column
}]
break;
case 34:
this.$ = [{
command: "rest",
params: $$[$0]
}]
break;
case 35: this.$ = 'single'
break;
case 36: this.$ = 'double'
break;
case 37: this.$ = 'end'
break;
case 38: this.$ = 'repeat-end'
break;
case 39: this.$ = 'repeat-begin'
break;
case 40: this.$ = 'repeat-both'
break;
case 41:
_.extend(_.last($$[$0-3]), {decorator: $$[$0-2]})
_.each($$[$0-3], function(fret) { fret['string'] = $$[$0] })
this.$ = $$[$0-3]
break;
case 42: this.$ = $$[$0]
break;
case 43: this.$ = [].concat($$[$0-2], $$[$0])
break;
case 44: this.$ = [{chord: $$[$0-2], decorator: $$[$0]}]
break;
case 45: this.$ = [{chord: $$[$0-2], articulation: $$[$0-4], decorator: $$[$0]}]
break;
case 46: this.$ = [{
fret: $$[$0],
_l: _$[$0].first_line,
_c: _$[$0].first_column}]
break;
case 47: this.$ = [{abc: $$[$0], _l: _$[$0].first_line, _c: _$[$0].first_column}]
break;
case 48: this.$ = [{abc: $$[$0-3], octave: $$[$0-2],
fret: $$[$0], _l: _$[$0-3].first_line, _c: _$[$0-3].first_column}]
break;
case 49: this.$ = [_.extend($$[$0], {articulation: $$[$0-1]})]
break;
case 50:
_.extend(_.last($$[$0-3]), {decorator: $$[$0-2]})
_.extend($$[$0], {articulation: $$[$0-1]})
$$[$0-3].push($$[$0])
this.$ = $$[$0-3]
break;
case 51: this.$ = {
time: $$[$0-3], dot: $$[$0-2], fret: $$[$0],
_l: _$[$0-4].first_line, _c: _$[$0-4].first_column}
break;
case 52: this.$ = {fret: $$[$0], _l: _$[$0].first_line, _c: _$[$0].first_column}
break;
case 53: this.$ = {time: $$[$0-3], dot: $$[$0-2], abc: $$[$0]}
break;
case 54: this.$ = {time: $$[$0-6], dot: $$[$0-5], abc: $$[$0-3], octave: $$[$0-2], fret: $$[$0]}
break;
case 55: this.$ = {abc: $$[$0], _l: _$[$0].first_line, _c: _$[$0].first_column}
break;
case 56: this.$ = {abc: $$[$0-3], octave: $$[$0-2],
fret: $$[$0], _l: _$[$0-3].first_line, _c: _$[$0-3].first_column}
break;
case 57: this.$ = {time: $$[$0-1], dot: $$[$0]}
break;
case 58: this.$ = $$[$0-1] + $$[$0]
break;
case 59: this.$ = $$[$0]
break;
case 60: this.$ = $$[$0]
break;
case 61: this.$ = $$[$0]
break;
case 62: this.$ = $$[$0]
break;
case 63: this.$ = false
break;
case 64: this.$ = true
break;
case 65: this.$ = ''
break;
case 66: this.$ = 's'
break;
case 67: this.$ = $$[$0]
break;
case 68: this.$ = '-'
break;
case 69: this.$ = 's'
break;
case 70: this.$ = 't'
break;
case 71: this.$ = 'T'
break;
case 72: this.$ = 'b'
break;
case 73: this.$ = 'h'
break;
case 74: this.$ = 'p'
break;
case 75: this.$ = 'v'
break;
case 76: this.$ = 'V'
break;
case 77: this.$ = 'u'
break;
case 78: this.$ = 'd'
break;
case 79: this.$ = null
break;
case 80: this.$ = {tuplet: $$[$0-1]}
break;
case 81: this.$ = {tuplet: $$[$0-3], notes: $$[$0-1]}
break;
case 82: this.$ = $$[$0-1]
break;
case 83: this.$ = [$$[$0]]
break;
case 84: this.$ = [].concat($$[$0-2], $$[$0])
break;
case 85: this.$ = $$[$0-1]
break;
case 86: this.$ = {position: 0}
break;
case 87: this.$ = {position: $$[$0-1]}
break;
case 88: this.$ = {position: $$[$0-1] * -1}
break;
case 89: this.$ = {key: $$[$0-2], accidental: $$[$0-1], accidental_type: $$[$0]}
break;
case 90: this.$ = "#"
break;
case 91: this.$ = "##"
break;
case 92: this.$ = "b"
break;
case 93: this.$ = "bb"
break;
case 94: this.$ = "n"
break;
case 96: this.$ = null;
break;
case 97: this.$ = "c"
break;
}
},
table: [{3:1,4:2,5:[2,2],6:3,7:4,8:5,11:[1,6],13:[1,7],14:[1,8],15:[1,9]},{1:[3]},{5:[1,10]},{5:[2,3],7:11,8:5,11:[1,6],13:[1,7],14:[1,8],15:[1,9]},{5:[2,4],11:[2,4],13:[2,4],14:[2,4],15:[2,4]},{5:[2,17],9:12,11:[2,17],12:13,13:[2,17],14:[2,17],15:[2,17],17:[2,17],19:[2,17],21:[2,17],22:[1,14]},{12:15,22:[1,14]},{5:[2,9],11:[2,9],13:[2,9],14:[2,9],15:[2,9],17:[2,9],19:[2,9],21:[2,9],22:[2,9]},{5:[2,10],11:[2,10],13:[2,10],14:[2,10],15:[2,10],17:[2,10],19:[2,10],21:[2,10],22:[2,10]},{5:[2,11],11:[2,11],13:[2,11],14:[2,11],15:[2,11],17:[2,11],19:[2,11],21:[2,11],22:[2,11]},{1:[2,1]},{5:[2,5],11:[2,5],13:[2,5],14:[2,5],15:[2,5]},{5:[2,7],10:16,11:[2,7],13:[2,7],14:[2,7],15:[2,7],16:17,17:[1,18],19:[1,19],21:[1,20]},{5:[2,18],11:[2,18],13:[2,18],14:[2,18],15:[2,18],17:[2,18],19:[2,18],21:[2,18],22:[1,21]},{23:[1,22]},{5:[2,8],11:[2,8],13:[2,8],14:[2,8],15:[2,8],22:[1,21]},{5:[2,6],11:[2,6],13:[2,6],14:[2,6],15:[2,6],16:23,17:[1,18],19:[1,19],21:[1,20]},{5:[2,12],11:[2,12],13:[2,12],14:[2,12],15:[2,12],17:[2,12],19:[2,12],21:[2,12]},{18:24,24:[1,25]},{20:26,23:[1,43],26:27,27:28,28:29,29:30,30:31,31:[1,32],32:[1,33],33:34,34:35,35:36,36:37,37:[1,42],38:[1,41],39:38,45:[1,39],47:40,48:[1,48],49:49,57:[1,55],61:[1,50],62:[1,51],63:[1,52],64:[1,53],65:[1,54],66:[1,56],70:[1,44],71:[1,45],73:[1,46],75:[1,47],76:[1,57]},{5:[2,17],9:58,11:[2,17],12:13,13:[2,17],14:[2,17],15:[2,17],17:[2,17],19:[2,17],21:[2,17],22:[1,14]},{23:[1,59]},{22:[1,60]},{5:[2,13],11:[2,13],13:[2,13],14:[2,13],15:[2,13],17:[2,13],19:[2,13],21:[2,13]},{5:[2,14],11:[2,14],13:[2,14],14:[2,14],15:[2,14],17:[2,14],19:[2,14],21:[2,14],25:[1,61]},{5:[2,21],11:[2,21],13:[2,21],14:[2,21],15:[2,21],17:[2,21],19:[2,21],21:[2,21],25:[2,21]},{5:[2,15],11:[2,15],13:[2,15],14:[2,15],15:[2,15],17:[2,15],19:[2,15],21:[2,15],23:[1,43],26:62,27:28,28:29,29:30,30:31,31:[1,32],32:[1,33],33:34,34:35,35:36,36:37,37:[1,42],38:[1,41],39:38,45:[1,39],47:40,48:[1,48],49:49,57:[1,55],61:[1,50],62:[1,51],63:[1,52],64:[1,53],65:[1,54],66:[1,56],70:[1,44],71:[1,45],73:[1,46],75:[1,47],76:[1,57]},{5:[2,23],11:[2,23],13:[2,23],14:[2,23],15:[2,23],17:[2,23],19:[2,23],21:[2,23],23:[2,23],31:[2,23],32:[2,23],37:[2,23],38:[2,23],45:[2,23],48:[2,23],57:[2,23],61:[2,23],62:[2,23],63:[2,23],64:[2,23],65:[2,23],66:[2,23],70:[2,23],71:[2,23],73:[2,23],75:[2,23],76:[2,23]},{5:[2,25],11:[2,25],13:[2,25],14:[2,25],15:[2,25],17:[2,25],19:[2,25],21:[2,25],23:[2,25],31:[2,25],32:[2,25],37:[2,25],38:[2,25],45:[2,25],48:[2,25],57:[2,25],61:[2,25],62:[2,25],63:[2,25],64:[2,25],65:[2,25],66:[2,25],70:[2,25],71:[2,25],73:[2,25],75:[2,25],76:[2,25]},{5:[2,26],11:[2,26],13:[2,26],14:[2,26],15:[2,26],17:[2,26],19:[2,26],21:[2,26],23:[2,26],31:[2,26],32:[2,26],37:[2,26],38:[2,26],45:[2,26],48:[2,26],57:[2,26],61:[2,26],62:[2,26],63:[2,26],64:[2,26],65:[2,26],66:[2,26],70:[2,26],71:[2,26],73:[2,26],75:[2,26],76:[2,26]},{5:[2,27],11:[2,27],13:[2,27],14:[2,27],15:[2,27],17:[2,27],19:[2,27],21:[2,27],23:[2,27],31:[2,27],32:[2,27],37:[2,27],38:[2,27],45:[2,27],48:[2,27],57:[2,27],61:[2,27],62:[2,27],63:[2,27],64:[2,27],65:[2,27],66:[2,27],70:[2,27],71:[2,27],73:[2,27],75:[2,27],76:[2,27]},{5:[2,28],11:[2,28],13:[2,28],14:[2,28],15:[2,28],17:[2,28],19:[2,28],21:[2,28],23:[2,28],31:[2,28],32:[2,28],37:[2,28],38:[2,28],45:[2,28],48:[2,28],57:[2,28],61:[2,28],62:[2,28],63:[2,28],64:[2,28],65:[2,28],66:[2,28],70:[2,28],71:[2,28],73:[2,28],75:[2,28],76:[2,28]},{5:[2,29],11:[2,29],13:[2,29],14:[2,29],15:[2,29],17:[2,29],19:[2,29],21:[2,29],23:[2,29],31:[2,29],32:[2,29],37:[2,29],38:[2,29],45:[2,29],48:[2,29],57:[2,29],61:[2,29],62:[2,29],63:[2,29],64:[2,29],65:[2,29],66:[2,29],70:[2,29],71:[2,29],73:[2,29],75:[2,29],76:[2,29]},{5:[2,30],11:[2,30],13:[2,30],14:[2,30],15:[2,30],17:[2,30],19:[2,30],21:[2,30],23:[2,30],31:[2,30],32:[2,30],37:[2,30],38:[2,30],45:[2,30],48:[2,30],57:[2,30],61:[2,30],62:[2,30],63:[2,30],64:[2,30],65:[2,30],66:[2,30],70:[2,30],71:[2,30],73:[2,30],75:[2,30],76:[2,30]},{5:[2,31],11:[2,31],13:[2,31],14:[2,31],15:[2,31],17:[2,31],19:[2,31],21:[2,31],23:[2,31],31:[2,31],32:[2,31],37:[2,31],38:[2,31],45:[2,31],48:[2,31],57:[2,31],61:[2,31],62:[2,31],63:[2,31],64:[2,31],65:[2,31],66:[2,31],70:[2,31],71:[2,31],73:[2,31],75:[2,31],76:[2,31]},{5:[2,32],11:[2,32],13:[2,32],14:[2,32],15:[2,32],17:[2,32],19:[2,32],21:[2,32],23:[2,32],31:[2,32],32:[2,32],37:[2,32],38:[2,32],45:[2,32],48:[2,32],57:[2,32],61:[2,32],62:[2,32],63:[2,32],64:[2,32],65:[2,32],66:[2,32],70:[2,32],71:[2,32],73:[2,32],75:[2,32],76:[2,32]},{5:[2,33],11:[2,33],13:[2,33],14:[2,33],15:[2,33],17:[2,33],19:[2,33],21:[2,33],23:[2,33],31:[2,33],32:[2,33],37:[2,33],38:[2,33],45:[2,33],48:[2,33],57:[2,33],61:[2,33],62:[2,33],63:[2,33],64:[2,33],65:[2,33],66:[2,33],70:[2,33],71:[2,33],73:[2,33],75:[2,33],76:[2,33]},{5:[2,34],11:[2,34],13:[2,34],14:[2,34],15:[2,34],17:[2,34],19:[2,34],21:[2,34],23:[2,34],31:[2,34],32:[2,34],37:[2,34],38:[2,34],45:[2,34],48:[2,34],57:[2,34],61:[2,34],62:[2,34],63:[2,34],64:[2,34],65:[2,34],66:[2,34],70:[2,34],71:[2,34],73:[2,34],75:[2,34],76:[2,34]},{40:63,41:[2,79],57:[2,79],59:[1,67],61:[2,79],62:[2,79],63:[2,79],64:[2,79],65:[2,79],66:[2,79],67:[1,64],68:[1,65],69:[1,66]},{27:69,39:38,43:68,47:70,48:[1,48],49:49,57:[1,55],61:[1,50],62:[1,51],63:[1,52],64:[1,53],65:[1,54],66:[1,56],76:[1,57]},{38:[1,73],45:[1,71],48:[1,74],49:75,51:72,76:[1,57]},{48:[1,78],52:76,54:77,56:[1,79],57:[1,80],58:[1,81]},{5:[2,35],11:[2,35],13:[2,35],14:[2,35],15:[2,35],17:[2,35],19:[2,35],21:[2,35],23:[2,35],31:[2,35],32:[2,35],37:[2,35],38:[2,35],45:[2,35],48:[2,35],57:[2,35],61:[2,35],62:[2,35],63:[2,35],64:[2,35],65:[2,35],66:[2,35],70:[2,35],71:[2,35],73:[2,35],75:[2,35],76:[2,35]},{37:[1,82],38:[1,83]},{48:[1,84]},{22:[1,86],72:85},{74:[1,87]},{48:[1,89],61:[1,90],75:[1,88]},{41:[2,46],57:[2,46],59:[2,46],61:[2,46],62:[2,46],63:[2,46],64:[2,46],65:[2,46],66:[2,46],67:[2,46],68:[2,46],69:[2,46]},{41:[2,47],48:[1,91],57:[2,47],59:[2,47],61:[2,47],62:[2,47],63:[2,47],64:[2,47],65:[2,47],66:[2,47],67:[2,47],68:[2,47],69:[2,47]},{38:[2,68],45:[2,68],48:[2,68],76:[2,68]},{38:[2,69],45:[2,69],48:[2,69],76:[2,69]},{38:[2,70],45:[2,70],48:[2,70],76:[2,70]},{38:[2,71],45:[2,71],48:[2,71],76:[2,71]},{38:[2,72],45:[2,72],48:[2,72],76:[2,72]},{38:[2,73],45:[2,73],48:[2,73],76:[2,73]},{38:[2,74],45:[2,74],48:[2,74],76:[2,74]},{41:[2,95],48:[2,95],57:[2,95],59:[2,95],61:[2,95],62:[2,95],63:[2,95],64:[2,95],65:[2,95],66:[2,95],67:[2,95],68:[2,95],69:[2,95],75:[1,93],77:92,79:[1,94],80:[1,95],81:[2,95]},{5:[2,16],11:[2,16],13:[2,16],14:[2,16],15:[2,16],17:[2,16],19:[2,16],21:[2,16]},{22:[1,96]},{5:[2,19],11:[2,19],13:[2,19],14:[2,19],15:[2,19],17:[2,19],19:[2,19],21:[2,19],22:[2,19]},{24:[1,97]},{5:[2,24],11:[2,24],13:[2,24],14:[2,24],15:[2,24],17:[2,24],19:[2,24],21:[2,24],23:[2,24],31:[2,24],32:[2,24],37:[2,24],38:[2,24],45:[2,24],48:[2,24],57:[2,24],61:[2,24],62:[2,24],63:[2,24],64:[2,24],65:[2,24],66:[2,24],70:[2,24],71:[2,24],73:[2,24],75:[2,24],76:[2,24]},{41:[1,98],47:99,57:[1,55],61:[1,50],62:[1,51],63:[1,52],64:[1,53],65:[1,54],66:[1,56]},{5:[2,75],11:[2,75],13:[2,75],14:[2,75],15:[2,75],17:[2,75],19:[2,75],21:[2,75],23:[2,75],31:[2,75],32:[2,75],37:[2,75],38:[2,75],41:[2,75],45:[2,75],48:[2,75],57:[2,75],61:[2,75],62:[2,75],63:[2,75],64:[2,75],65:[2,75],66:[2,75],70:[2,75],71:[2,75],73:[2,75],75:[2,75],76:[2,75]},{5:[2,76],11:[2,76],13:[2,76],14:[2,76],15:[2,76],17:[2,76],19:[2,76],21:[2,76],23:[2,76],31:[2,76],32:[2,76],37:[2,76],38:[2,76],41:[2,76],45:[2,76],48:[2,76],57:[2,76],61:[2,76],62:[2,76],63:[2,76],64:[2,76],65:[2,76],66:[2,76],70:[2,76],71:[2,76],73:[2,76],75:[2,76],76:[2,76]},{5:[2,77],11:[2,77],13:[2,77],14:[2,77],15:[2,77],17:[2,77],19:[2,77],21:[2,77],23:[2,77],31:[2,77],32:[2,77],37:[2,77],38:[2,77],41:[2,77],45:[2,77],48:[2,77],57:[2,77],61:[2,77],62:[2,77],63:[2,77],64:[2,77],65:[2,77],66:[2,77],70:[2,77],71:[2,77],73:[2,77],75:[2,77],76:[2,77]},{5:[2,78],11:[2,78],13:[2,78],14:[2,78],15:[2,78],17:[2,78],19:[2,78],21:[2,78],23:[2,78],31:[2,78],32:[2,78],37:[2,78],38:[2,78],41:[2,78],45:[2,78],48:[2,78],57:[2,78],61:[2,78],62:[2,78],63:[2,78],64:[2,78],65:[2,78],66:[2,78],70:[2,78],71:[2,78],73:[2,78],75:[2,78],76:[2,78]},{44:[1,101],46:[1,100]},{44:[2,42],46:[2,42]},{38:[1,73],48:[1,74],49:75,51:72,76:[1,57]},{27:69,39:38,43:102,47:70,48:[1,48],49:49,57:[1,55],61:[1,50],62:[1,51],63:[1,52],64:[1,53],65:[1,54],66:[1,56],76:[1,57]},{41:[2,49],57:[2,49],59:[2,49],61:[2,49],62:[2,49],63:[2,49],64:[2,49],65:[2,49],66:[2,49],67:[2,49],68:[2,49],69:[2,49]},{48:[1,78],52:103,54:77,56:[1,79],57:[1,80],58:[1,81]},{41:[2,52],57:[2,52],59:[2,52],61:[2,52],62:[2,52],63:[2,52],64:[2,52],65:[2,52],66:[2,52],67:[2,52],68:[2,52],69:[2,52]},{41:[2,55],48:[1,104],57:[2,55],59:[2,55],61:[2,55],62:[2,55],63:[2,55],64:[2,55],65:[2,55],66:[2,55],67:[2,55],68:[2,55],69:[2,55]},{5:[2,63],11:[2,63],13:[2,63],14:[2,63],15:[2,63],17:[2,63],19:[2,63],21:[2,63],23:[2,63],31:[2,63],32:[2,63],37:[2,63],38:[2,63],45:[2,63],48:[2,63],53:105,57:[2,63],59:[1,106],61:[2,63],62:[2,63],63:[2,63],64:[2,63],65:[2,63],66:[2,63],70:[2,63],71:[2,63],73:[2,63],75:[2,63],76:[2,63]},{5:[2,65],11:[2,65],13:[2,65],14:[2,65],15:[2,65],17:[2,65],19:[2,65],21:[2,65],23:[2,65],31:[2,65],32:[2,65],37:[2,65],38:[2,65],45:[2,65],48:[2,65],55:107,57:[2,65],59:[2,65],60:[1,108],61:[2,65],62:[2,65],63:[2,65],64:[2,65],65:[2,65],66:[2,65],70:[2,65],71:[2,65],73:[2,65],75:[2,65],76:[2,65]},{5:[2,59],11:[2,59],13:[2,59],14:[2,59],15:[2,59],17:[2,59],19:[2,59],21:[2,59],23:[2,59],31:[2,59],32:[2,59],37:[2,59],38:[2,59],45:[2,59],48:[2,59],57:[2,59],59:[2,59],60:[2,59],61:[2,59],62:[2,59],63:[2,59],64:[2,59],65:[2,59],66:[2,59],70:[2,59],71:[2,59],73:[2,59],75:[2,59],76:[2,59]},{5:[2,60],11:[2,60],13:[2,60],14:[2,60],15:[2,60],17:[2,60],19:[2,60],21:[2,60],23:[2,60],31:[2,60],32:[2,60],37:[2,60],38:[2,60],45:[2,60],48:[2,60],57:[2,60],59:[2,60],60:[2,60],61:[2,60],62:[2,60],63:[2,60],64:[2,60],65:[2,60],66:[2,60],70:[2,60],71:[2,60],73:[2,60],75:[2,60],76:[2,60]},{5:[2,61],11:[2,61],13:[2,61],14:[2,61],15:[2,61],17:[2,61],19:[2,61],21:[2,61],23:[2,61],31:[2,61],32:[2,61],37:[2,61],38:[2,61],45:[2,61],48:[2,61],57:[2,61],59:[2,61],60:[2,61],61:[2,61],62:[2,61],63:[2,61],64:[2,61],65:[2,61],66:[2,61],70:[2,61],71:[2,61],73:[2,61],75:[2,61],76:[2,61]},{5:[2,62],11:[2,62],13:[2,62],14:[2,62],15:[2,62],17:[2,62],19:[2,62],21:[2,62],23:[2,62],31:[2,62],32:[2,62],37:[2,62],38:[2,62],45:[2,62],48:[2,62],57:[2,62],59:[2,62],60:[2,62],61:[2,62],62:[2,62],63:[2,62],64:[2,62],65:[2,62],66:[2,62],70:[2,62],71:[2,62],73:[2,62],75:[2,62],76:[2,62]},{23:[1,110],37:[1,109],38:[1,111]},{37:[1,112],38:[1,113]},{25:[1,115],70:[1,114]},{25:[1,117],71:[1,116]},{25:[2,83],71:[2,83]},{73:[1,118]},{5:[2,86],11:[2,86],13:[2,86],14:[2,86],15:[2,86],17:[2,86],19:[2,86],21:[2,86],23:[2,86],31:[2,86],32:[2,86],37:[2,86],38:[2,86],45:[2,86],48:[2,86],57:[2,86],61:[2,86],62:[2,86],63:[2,86],64:[2,86],65:[2,86],66:[2,86],70:[2,86],71:[2,86],73:[2,86],75:[2,86],76:[2,86]},{75:[1,119]},{48:[1,120]},{50:[1,121]},{41:[2,96],48:[2,96],57:[2,96],59:[2,96],61:[2,96],62:[2,96],63:[2,96],64:[2,96],65:[2,96],66:[2,96],67:[2,96],68:[2,96],69:[2,96],78:122,81:[1,123]},{41:[2,90],48:[2,90],57:[2,90],59:[2,90],61:[2,90],62:[2,90],63:[2,90],64:[2,90],65:[2,90],66:[2,90],67:[2,90],68:[2,90],69:[2,90],75:[1,124],81:[2,90]},{41:[2,92],48:[2,92],57:[2,92],59:[2,92],61:[2,92],62:[2,92],63:[2,92],64:[2,92],65:[2,92],66:[2,92],67:[2,92],68:[2,92],69:[2,92],79:[1,125],81:[2,92]},{41:[2,94],48:[2,94],57:[2,94],59:[2,94],61:[2,94],62:[2,94],63:[2,94],64:[2,94],65:[2,94],66:[2,94],67:[2,94],68:[2,94],69:[2,94],81:[2,94]},{5:[2,20],11:[2,20],13:[2,20],14:[2,20],15:[2,20],17:[2,20],19:[2,20],21:[2,20],22:[2,20]},{5:[2,22],11:[2,22],13:[2,22],14:[2,22],15:[2,22],17:[2,22],19:[2,22],21:[2,22],25:[2,22]},{42:126,48:[1,127]},{38:[1,73],48:[1,74],49:75,51:128,76:[1,57]},{5:[2,79],11:[2,79],13:[2,79],14:[2,79],15:[2,79],17:[2,79],19:[2,79],21:[2,79],23:[2,79],31:[2,79],32:[2,79],37:[2,79],38:[2,79],40:129,45:[2,79],48:[2,79],57:[2,79],59:[1,67],61:[2,79],62:[2,79],63:[2,79],64:[2,79],65:[2,79],66:[2,79],67:[1,64],68:[1,65],69:[1,66],70:[2,79],71:[2,79],73:[2,79],75:[2,79],76:[2,79]},{27:130,39:38,47:70,48:[1,48],49:49,57:[1,55],61:[1,50],62:[1,51],63:[1,52],64:[1,53],65:[1,54],66:[1,56],76:[1,57]},{44:[1,101],46:[1,131]},{38:[2,63],53:132,59:[1,106]},{50:[1,133]},{5:[2,57],11:[2,57],13:[2,57],14:[2,57],15:[2,57],17:[2,57],19:[2,57],21:[2,57],23:[2,57],31:[2,57],32:[2,57],37:[2,57],38:[2,57],45:[2,57],48:[2,57],57:[2,57],61:[2,57],62:[2,57],63:[2,57],64:[2,57],65:[2,57],66:[2,57],70:[2,57],71:[2,57],73:[2,57],75:[2,57],76:[2,57]},{5:[2,64],11:[2,64],13:[2,64],14:[2,64],15:[2,64],17:[2,64],19:[2,64],21:[2,64],23:[2,64],31:[2,64],32:[2,64],37:[2,64],38:[2,64],45:[2,64],48:[2,64],57:[2,64],61:[2,64],62:[2,64],63:[2,64],64:[2,64],65:[2,64],66:[2,64],70:[2,64],71:[2,64],73:[2,64],75:[2,64],76:[2,64]},{5:[2,58],11:[2,58],13:[2,58],14:[2,58],15:[2,58],17:[2,58],19:[2,58],21:[2,58],23:[2,58],31:[2,58],32:[2,58],37:[2,58],38:[2,58],45:[2,58],48:[2,58],57:[2,58],59:[2,58],61:[2,58],62:[2,58],63:[2,58],64:[2,58],65:[2,58],66:[2,58],70:[2,58],71:[2,58],73:[2,58],75:[2,58],76:[2,58]},{5:[2,66],11:[2,66],13:[2,66],14:[2,66],15:[2,66],17:[2,66],19:[2,66],21:[2,66],23:[2,66],31:[2,66],32:[2,66],37:[2,66],38:[2,66],45:[2,66],48:[2,66],57:[2,66],59:[2,66],61:[2,66],62:[2,66],63:[2,66],64:[2,66],65:[2,66],66:[2,66],70:[2,66],71:[2,66],73:[2,66],75:[2,66],76:[2,66]},{5:[2,36],11:[2,36],13:[2,36],14:[2,36],15:[2,36],17:[2,36],19:[2,36],21:[2,36],23:[2,36],31:[2,36],32:[2,36],37:[2,36],38:[2,36],45:[2,36],48:[2,36],57:[2,36],61:[2,36],62:[2,36],63:[2,36],64:[2,36],65:[2,36],66:[2,36],70:[2,36],71:[2,36],73:[2,36],75:[2,36],76:[2,36]},{5:[2,37],11:[2,37],13:[2,37],14:[2,37],15:[2,37],17:[2,37],19:[2,37],21:[2,37],23:[2,37],31:[2,37],32:[2,37],37:[2,37],38:[2,37],45:[2,37],48:[2,37],57:[2,37],61:[2,37],62:[2,37],63:[2,37],64:[2,37],65:[2,37],66:[2,37],70:[2,37],71:[2,37],73:[2,37],75:[2,37],76:[2,37]},{5:[2,39],11:[2,39],13:[2,39],14:[2,39],15:[2,39],17:[2,39],19:[2,39],21:[2,39],23:[2,39],31:[2,39],32:[2,39],37:[2,39],38:[2,39],45:[2,39],48:[2,39],57:[2,39],61:[2,39],62:[2,39],63:[2,39],64:[2,39],65:[2,39],66:[2,39],70:[2,39],71:[2,39],73:[2,39],75:[2,39],76:[2,39]},{5:[2,38],11:[2,38],13:[2,38],14:[2,38],15:[2,38],17:[2,38],19:[2,38],21:[2,38],23:[2,38],31:[2,38],32:[2,38],37:[2,38],38:[2,38],45:[2,38],48:[2,38],57:[2,38],61:[2,38],62:[2,38],63:[2,38],64:[2,38],65:[2,38],66:[2,38],70:[2,38],71:[2,38],73:[2,38],75:[2,38],76:[2,38]},{5:[2,40],11:[2,40],13:[2,40],14:[2,40],15:[2,40],17:[2,40],19:[2,40],21:[2,40],23:[2,40],31:[2,40],32:[2,40],37:[2,40],38:[2,40],45:[2,40],48:[2,40],57:[2,40],61:[2,40],62:[2,40],63:[2,40],64:[2,40],65:[2,40],66:[2,40],70:[2,40],71:[2,40],73:[2,40],75:[2,40],76:[2,40]},{5:[2,80],11:[2,80],13:[2,80],14:[2,80],15:[2,80],17:[2,80],19:[2,80],21:[2,80],23:[2,80],31:[2,80],32:[2,80],37:[2,80],38:[2,80],45:[2,80],48:[2,80],57:[2,80],61:[2,80],62:[2,80],63:[2,80],64:[2,80],65:[2,80],66:[2,80],70:[2,80],71:[2,80],73:[2,80],75:[2,80],76:[2,80]},{48:[1,134]},{5:[2,82],11:[2,82],13:[2,82],14:[2,82],15:[2,82],17:[2,82],19:[2,82],21:[2,82],23:[2,82],31:[2,82],32:[2,82],37:[2,82],38:[2,82],45:[2,82],48:[2,82],57:[2,82],61:[2,82],62:[2,82],63:[2,82],64:[2,82],65:[2,82],66:[2,82],70:[2,82],71:[2,82],73:[2,82],75:[2,82],76:[2,82]},{22:[1,135]},{5:[2,85],11:[2,85],13:[2,85],14:[2,85],15:[2,85],17:[2,85],19:[2,85],21:[2,85],23:[2,85],31:[2,85],32:[2,85],37:[2,85],38:[2,85],45:[2,85],48:[2,85],57:[2,85],61:[2,85],62:[2,85],63:[2,85],64:[2,85],65:[2,85],66:[2,85],70:[2,85],71:[2,85],73:[2,85],75:[2,85],76:[2,85]},{5:[2,87],11:[2,87],13:[2,87],14:[2,87],15:[2,87],17:[2,87],19:[2,87],21:[2,87],23:[2,87],31:[2,87],32:[2,87],37:[2,87],38:[2,87],45:[2,87],48:[2,87],57:[2,87],61:[2,87],62:[2,87],63:[2,87],64:[2,87],65:[2,87],66:[2,87],70:[2,87],71:[2,87],73:[2,87],75:[2,87],76:[2,87]},{75:[1,136]},{48:[1,137]},{41:[2,89],48:[2,89],57:[2,89],59:[2,89],61:[2,89],62:[2,89],63:[2,89],64:[2,89],65:[2,89],66:[2,89],67:[2,89],68:[2,89],69:[2,89]},{41:[2,97],48:[2,97],57:[2,97],59:[2,97],61:[2,97],62:[2,97],63:[2,97],64:[2,97],65:[2,97],66:[2,97],67:[2,97],68:[2,97],69:[2,97]},{41:[2,91],48:[2,91],57:[2,91],59:[2,91],61:[2,91],62:[2,91],63:[2,91],64:[2,91],65:[2,91],66:[2,91],67:[2,91],68:[2,91],69:[2,91],81:[2,91]},{41:[2,93],48:[2,93],57:[2,93],59:[2,93],61:[2,93],62:[2,93],63:[2,93],64:[2,93],65:[2,93],66:[2,93],67:[2,93],68:[2,93],69:[2,93],81:[2,93]},{5:[2,41],11:[2,41],13:[2,41],14:[2,41],15:[2,41],17:[2,41],19:[2,41],21:[2,41],23:[2,41],31:[2,41],32:[2,41],37:[2,41],38:[2,41],44:[2,41],45:[2,41],46:[2,41],48:[2,41],57:[2,41],61:[2,41],62:[2,41],63:[2,41],64:[2,41],65:[2,41],66:[2,41],70:[2,41],71:[2,41],73:[2,41],75:[2,41],76:[2,41]},{5:[2,67],11:[2,67],13:[2,67],14:[2,67],15:[2,67],17:[2,67],19:[2,67],21:[2,67],23:[2,67],31:[2,67],32:[2,67],37:[2,67],38:[2,67],44:[2,67],45:[2,67],46:[2,67],48:[2,67],57:[2,67],61:[2,67],62:[2,67],63:[2,67],64:[2,67],65:[2,67],66:[2,67],70:[2,67],71:[2,67],73:[2,67],75:[2,67],76:[2,67]},{41:[2,50],57:[2,50],59:[2,50],61:[2,50],62:[2,50],63:[2,50],64:[2,50],65:[2,50],66:[2,50],67:[2,50],68:[2,50],69:[2,50]},{5:[2,44],11:[2,44],13:[2,44],14:[2,44],15:[2,44],17:[2,44],19:[2,44],21:[2,44],23:[2,44],31:[2,44],32:[2,44],37:[2,44],38:[2,44],45:[2,44],48:[2,44],57:[2,44],61:[2,44],62:[2,44],63:[2,44],64:[2,44],65:[2,44],66:[2,44],70:[2,44],71:[2,44],73:[2,44],75:[2,44],76:[2,44]},{44:[2,43],46:[2,43]},{5:[2,79],11:[2,79],13:[2,79],14:[2,79],15:[2,79],17:[2,79],19:[2,79],21:[2,79],23:[2,79],31:[2,79],32:[2,79],37:[2,79],38:[2,79],40:138,45:[2,79],48:[2,79],57:[2,79],59:[1,67],61:[2,79],62:[2,79],63:[2,79],64:[2,79],65:[2,79],66:[2,79],67:[1,64],68:[1,65],69:[1,66],70:[2,79],71:[2,79],73:[2,79],75:[2,79],76:[2,79]},{38:[1,139]},{48:[1,140]},{70:[1,141]},{25:[2,84],71:[2,84]},{5:[2,88],11:[2,88],13:[2,88],14:[2,88],15:[2,88],17:[2,88],19:[2,88],21:[2,88],23:[2,88],31:[2,88],32:[2,88],37:[2,88],38:[2,88],45:[2,88],48:[2,88],57:[2,88],61:[2,88],62:[2,88],63:[2,88],64:[2,88],65:[2,88],66:[2,88],70:[2,88],71:[2,88],73:[2,88],75:[2,88],76:[2,88]},{41:[2,48],57:[2,48],59:[2,48],61:[2,48],62:[2,48],63:[2,48],64:[2,48],65:[2,48],66:[2,48],67:[2,48],68:[2,48],69:[2,48]},{5:[2,45],11:[2,45],13:[2,45],14:[2,45],15:[2,45],17:[2,45],19:[2,45],21:[2,45],23:[2,45],31:[2,45],32:[2,45],37:[2,45],38:[2,45],45:[2,45],48:[2,45],57:[2,45],61:[2,45],62:[2,45],63:[2,45],64:[2,45],65:[2,45],66:[2,45],70:[2,45],71:[2,45],73:[2,45],75:[2,45],76:[2,45]},{48:[1,142],49:143,76:[1,57]},{41:[2,56],57:[2,56],59:[2,56],61:[2,56],62:[2,56],63:[2,56],64:[2,56],65:[2,56],66:[2,56],67:[2,56],68:[2,56],69:[2,56]},{5:[2,81],11:[2,81],13:[2,81],14:[2,81],15:[2,81],17:[2,81],19:[2,81],21:[2,81],23:[2,81],31:[2,81],32:[2,81],37:[2,81],38:[2,81],45:[2,81],48:[2,81],57:[2,81],61:[2,81],62:[2,81],63:[2,81],64:[2,81],65:[2,81],66:[2,81],70:[2,81],71:[2,81],73:[2,81],75:[2,81],76:[2,81]},{41:[2,51],57:[2,51],59:[2,51],61:[2,51],62:[2,51],63:[2,51],64:[2,51],65:[2,51],66:[2,51],67:[2,51],68:[2,51],69:[2,51]},{41:[2,53],48:[1,144],57:[2,53],59:[2,53],61:[2,53],62:[2,53],63:[2,53],64:[2,53],65:[2,53],66:[2,53],67:[2,53],68:[2,53],69:[2,53]},{50:[1,145]},{48:[1,146]},{41:[2,54],57:[2,54],59:[2,54],61:[2,54],62:[2,54],63:[2,54],64:[2,54],65:[2,54],66:[2,54],67:[2,54],68:[2,54],69:[2,54]}],
defaultActions: {10:[2,1]},
parseError: function parseError(str, hash) {
if (hash.recoverable) {
this.trace(str);
} else {
throw new Error(str);
}
},
parse: function parse(input) {
var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
var args = lstack.slice.call(arguments, 1);
this.lexer.setInput(input);
this.lexer.yy = this.yy;
this.yy.lexer = this.lexer;
this.yy.parser = this;
if (typeof this.lexer.yylloc == 'undefined') {
this.lexer.yylloc = {};
}
var yyloc = this.lexer.yylloc;
lstack.push(yyloc);
var ranges = this.lexer.options && this.lexer.options.ranges;
if (typeof this.yy.parseError === 'function') {
this.parseError = this.yy.parseError;
} else {
this.parseError = Object.getPrototypeOf(this).parseError;
}
function popStack(n) {
stack.length = stack.length - 2 * n;
vstack.length = vstack.length - n;
lstack.length = lstack.length - n;
}
function lex() {
var token;
token = self.lexer.lex() || EOF;
if (typeof token !== 'number') {
token = self.symbols_[token] || token;
}
return token;
}
var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
while (true) {
state = stack[stack.length - 1];
if (this.defaultActions[state]) {
action = this.defaultActions[state];
} else {
if (symbol === null || typeof symbol == 'undefined') {
symbol = lex();
}
action = table[state] && table[state][symbol];
}
if (typeof action === 'undefined' || !action.length || !action[0]) {
var errStr = '';
expected = [];
for (p in table[state]) {
if (this.terminals_[p] && p > TERROR) {
expected.push('\'' + this.terminals_[p] + '\'');
}
}
if (this.lexer.showPosition) {
errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + this.lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
} else {
errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
}
this.parseError(errStr, {
text: this.lexer.match,
token: this.terminals_[symbol] || symbol,
line: this.lexer.yylineno,
loc: yyloc,
expected: expected
});
}
if (action[0] instanceof Array && action.length > 1) {
throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
}
switch (action[0]) {
case 1:
stack.push(symbol);
vstack.push(this.lexer.yytext);
lstack.push(this.lexer.yylloc);
stack.push(action[1]);
symbol = null;
if (!preErrorSymbol) {
yyleng = this.lexer.yyleng;
yytext = this.lexer.yytext;
yylineno = this.lexer.yylineno;
yyloc = this.lexer.yylloc;
if (recovering > 0) {
recovering--;
}
} else {
symbol = preErrorSymbol;
preErrorSymbol = null;
}
break;
case 2:
len = this.productions_[action[1]][1];
yyval.$ = vstack[vstack.length - len];
yyval._$ = {
first_line: lstack[lstack.length - (len || 1)].first_line,
last_line: lstack[lstack.length - 1].last_line,
first_column: lstack[lstack.length - (len || 1)].first_column,
last_column: lstack[lstack.length - 1].last_column
};
if (ranges) {
yyval._$.range = [
lstack[lstack.length - (len || 1)].range[0],
lstack[lstack.length - 1].range[1]
];
}
r = this.performAction.apply(yyval, [
yytext,
yyleng,
yylineno,
this.yy,
action[1],
vstack,
lstack
].concat(args));
if (typeof r !== 'undefined') {
return r;
}
if (len) {
stack = stack.slice(0, -1 * len * 2);
vstack = vstack.slice(0, -1 * len);
lstack = lstack.slice(0, -1 * len);
}
stack.push(this.productions_[action[1]][0]);
vstack.push(yyval.$);
lstack.push(yyval._$);
newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
stack.push(newState);
break;
case 3:
return true;
}
}
return true;
}};
Vex.L("Starting parser.");
/* generated by jison-lex 0.2.1 */
var lexer = (function(){
var lexer = {
EOF:1,
parseError:function parseError(str, hash) {
if (this.yy.parser) {
this.yy.parser.parseError(str, hash);
} else {
throw new Error(str);
}
},
// resets the lexer, sets new input
setInput:function (input) {
this._input = input;
this._more = this._backtrack = this.done = false;
this.yylineno = this.yyleng = 0;
this.yytext = this.matched = this.match = '';
this.conditionStack = ['INITIAL'];
this.yylloc = {
first_line: 1,
first_column: 0,
last_line: 1,
last_column: 0
};
if (this.options.ranges) {
this.yylloc.range = [0,0];
}
this.offset = 0;
return this;
},
// consumes and returns one char from the input
input:function () {
var ch = this._input[0];
this.yytext += ch;
this.yyleng++;
this.offset++;
this.match += ch;
this.matched += ch;
var lines = ch.match(/(?:\r\n?|\n).*/g);
if (lines) {
this.yylineno++;
this.yylloc.last_line++;
} else {
this.yylloc.last_column++;
}
if (this.options.ranges) {
this.yylloc.range[1]++;
}
this._input = this._input.slice(1);
return ch;
},
// unshifts one char (or a string) into the input
unput:function (ch) {
var len = ch.length;
var lines = ch.split(/(?:\r\n?|\n)/g);
this._input = ch + this._input;
this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);
//this.yyleng -= len;
this.offset -= len;
var oldLines = this.match.split(/(?:\r\n?|\n)/g);
this.match = this.match.substr(0, this.match.length - 1);
this.matched = this.matched.substr(0, this.matched.length - 1);
if (lines.length - 1) {
this.yylineno -= lines.length - 1;
}
var r = this.yylloc.range;
this.yylloc = {
first_line: this.yylloc.first_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.first_column,
last_column: lines ?
(lines.length === oldLines.length ? this.yylloc.first_column : 0)
+ oldLines[oldLines.length - lines.length].length - lines[0].length :
this.yylloc.first_column - len
};
if (this.options.ranges) {
this.yylloc.range = [r[0], r[0] + this.yyleng - len];
}
this.yyleng = this.yytext.length;
return this;
},
// When called from action, caches matched text and appends it on next action
more:function () {
this._more = true;
return this;
},
// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
reject:function () {
if (this.options.backtrack_lexer) {
this._backtrack = true;
} else {
return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
text: "",
token: null,
line: this.yylineno
});
}
return this;
},
// retain first n characters of the match
less:function (n) {
this.unput(this.match.slice(n));
},
// displays already matched input, i.e. for error messages
pastInput:function () {
var past = this.matched.substr(0, this.matched.length - this.match.length);
return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
},
// displays upcoming input, i.e. for error messages
upcomingInput:function () {
var next = this.match;
if (next.length < 20) {
next += this._input.substr(0, 20-next.length);
}
return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
},
// displays the character position where the lexing error occurred, i.e. for error messages
showPosition:function () {
var pre = this.pastInput();
var c = new Array(pre.length + 1).join("-");
return pre + this.upcomingInput() + "\n" + c + "^";
},
// test the lexed token: return FALSE when not a match, otherwise return token
test_match:function (match, indexed_rule) {
var token,
lines,
backup;
if (this.options.backtrack_lexer) {
// save context
backup = {
yylineno: this.yylineno,
yylloc: {
first_line: this.yylloc.first_line,
last_line: this.last_line,
first_column: this.yylloc.first_column,
last_column: this.yylloc.last_column
},
yytext: this.yytext,
match: this.match,
matches: this.matches,
matched: this.matched,
yyleng: this.yyleng,
offset: this.offset,
_more: this._more,
_input: this._input,
yy: this.yy,
conditionStack: this.conditionStack.slice(0),
done: this.done
};
if (this.options.ranges) {
backup.yylloc.range = this.yylloc.range.slice(0);
}
}
lines = match[0].match(/(?:\r\n?|\n).*/g);
if (lines) {
this.yylineno += lines.length;
}
this.yylloc = {
first_line: this.yylloc.last_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.last_column,
last_column: lines ?
lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
this.yylloc.last_column + match[0].length
};
this.yytext += match[0];
this.match += match[0];
this.matches = match;
this.yyleng = this.yytext.length;
if (this.options.ranges) {
this.yylloc.range = [this.offset, this.offset += this.yyleng];
}
this._more = false;
this._backtrack = false;
this._input = this._input.slice(match[0].length);
this.matched += match[0];
token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
if (this.done && this._input) {
this.done = false;
}
if (token) {
return token;
} else if (this._backtrack) {
// recover context
for (var k in backup) {
this[k] = backup[k];
}
return false; // rule action called reject() implying the next rule should be tested instead.
}
return false;
},
// return next match in input
next:function () {
if (this.done) {
return this.EOF;
}
if (!this._input) {
this.done = true;
}
var token,
match,
tempMatch,
index;
if (!this._more) {
this.yytext = '';
this.match = '';
}
var rules = this._currentRules();
for (var i = 0; i < rules.length; i++) {
tempMatch = this._input.match(this.rules[rules[i]]);
if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
match = tempMatch;
index = i;
if (this.options.backtrack_lexer) {
token = this.test_match(tempMatch, rules[i]);
if (token !== false) {
return token;
} else if (this._backtrack) {
match = false;
continue; // rule action called reject() implying a rule MISmatch.
} else {
// else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
return false;
}
} else if (!this.options.flex) {
break;
}
}
}
if (match) {
token = this.test_match(match, rules[index]);
if (token !== false) {
return token;
}
// else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
return false;
}
if (this._input === "") {
return this.EOF;
} else {
return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
text: "",
token: null,
line: this.yylineno
});
}
},
// return next match that has a token
lex:function lex() {
var r = this.next();
if (r) {
return r;
} else {
return this.lex();
}
},
// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
begin:function begin(condition) {
this.conditionStack.push(condition);
},
// pop the previously active lexer condition state off the condition stack
popState:function popState() {
var n = this.conditionStack.length - 1;
if (n > 0) {
return this.conditionStack.pop();
} else {
return this.conditionStack[0];
}
},
// produce the lexer rule set which is active for the currently active lexer condition state
_currentRules:function _currentRules() {
if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
} else {
return this.conditions["INITIAL"].rules;
}
},
// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
topState:function topState(n) {
n = this.conditionStack.length - 1 - Math.abs(n || 0);
if (n >= 0) {
return this.conditionStack[n];
} else {
return "INITIAL";
}
},
// alias for begin(condition)
pushState:function pushState(condition) {
this.begin(condition);
},
// return the number of states currently on the stack
stateStackSize:function stateStackSize() {
return this.conditionStack.length;
},
options: {},
performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
var YYSTATE=YY_START;
switch($avoiding_name_collisions) {
case 0: this.begin('notes'); return 19;
break;
case 1: this.begin('options'); return 13;
break;
case 2: this.begin('options'); return 14;
break;
case 3: this.begin('options'); return 15;
break;
case 4: this.begin('options'); return 11;
break;
case 5: this.begin('text'); return 17;
break;
case 6: this.begin('options'); return 21;
break;
case 7:return 22
break;
case 8: this.begin('annotations'); return "$"
break;
case 9: this.begin('notes'); return "$"
break;
case 10:return 22
break;
case 11: this.begin('command'); return "!"
break;
case 12: this.begin('notes'); return "!"
break;
case 13:return 74
break;
case 14:return 24
break;
case 15:return 41
break;
case 16:return '+'
break;
case 17:return 38
break;
case 18:return 23
break;
case 19:return 45
break;
case 20:return 46
break;
case 21:return 31
break;
case 22:return 32
break;
case 23:return 70
break;
case 24:return 25
break;
case 25:return 37
break;
case 26:return 44
break;
case 27:return 75
break;
case 28:return 79
break;
case 29:return 65
break;
case 30:return 62
break;
case 31:return 57
break;
case 32:return 66
break;
case 33:return 63
break;
case 34:return 64
break;
case 35:return 61
break;
case 36:return 50
break;
case 37:return 67
break;
case 38:return 68
break;
case 39:return 69
break;
case 40:return 59
break;
case 41:return 48
break;
case 42:return 58
break;
case 43:return 56
break;
case 44:return 57
break;
case 45:return 59
break;
case 46:return 60
break;
case 47:return 76
break;
case 48:return 80
break;
case 49:return 81
break;
case 50: this.begin('INITIAL');
break;
case 51:/* skip whitespace */
break;
case 52:return 5
break;
case 53:return 'INVALID'
break;
}
},
rules: [/^(?:notes\b)/,/^(?:tabstave\b)/,/^(?:stave\b)/,/^(?:voice\b)/,/^(?:options\b)/,/^(?:text\b)/,/^(?:slur\b)/,/^(?:[^\s=]+)/,/^(?:[$])/,/^(?:[$])/,/^(?:[^,$]+)/,/^(?:[!])/,/^(?:[!])/,/^(?:[^!]+)/,/^(?:[^,\r\n]+)/,/^(?:\/)/,/^(?:\+)/,/^(?::)/,/^(?:=)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\^)/,/^(?:,)/,/^(?:\|)/,/^(?:\.)/,/^(?:#)/,/^(?:@)/,/^(?:[b])/,/^(?:[s])/,/^(?:[h])/,/^(?:[p])/,/^(?:[t])/,/^(?:[T])/,/^(?:[-])/,/^(?:[_])/,/^(?:[v])/,/^(?:[V])/,/^(?:[u])/,/^(?:[d])/,/^(?:[0-9]+)/,/^(?:[q])/,/^(?:[w])/,/^(?:[h])/,/^(?:[d])/,/^(?:[S])/,/^(?:[A-GXLR])/,/^(?:[n])/,/^(?:[~])/,/^(?:[\r\n]+)/,/^(?:\s+)/,/^(?:$)/,/^(?:.)/],
conditions: {"notes":{"rules":[8,11,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53],"inclusive":true},"text":{"rules":[14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,41,42,43,44,45,50,51,52,53],"inclusive":true},"slur":{"rules":[15,16,17,18,19,20,21,22,23,24,25,26,27,28,50,51,52,53],"inclusive":true},"annotations":{"rules":[9,10,15,16,17,18,19,20,21,22,23,24,25,26,27,28,50,51,52,53],"inclusive":true},"options":{"rules":[7,15,16,17,18,19,20,21,22,23,24,25,26,27,28,50,51,52,53],"inclusive":true},"command":{"rules":[12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,50,51,52,53],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,15,16,17,18,19,20,21,22,23,24,25,26,27,28,50,51,52,53],"inclusive":true}}
};
return lexer;
})();
parser.lexer = lexer;
function Parser () {
this.yy = {};
}
Parser.prototype = parser;parser.Parser = Parser;
return new Parser;
})();
if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
exports.parser = vextab_parser;
exports.Parser = vextab_parser.Parser;
exports.parse = function () { return vextab_parser.parse.apply(vextab_parser, arguments); };
exports.main = function commonjsMain(args) {
if (!args[1]) {
console.log('Usage: '+args[0]+' FILE');
process.exit(1);
}
var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8");
return exports.parser.parse(source);
};
if (typeof module !== 'undefined' && require.main === module) {
exports.main(process.argv.slice(1));
}
}