@k-l-lambda/lilylet 0.1.75 → 0.1.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/abc/grammar.jison.js +85 -79
- package/lib/lilylet/abcDecoder.js +167 -0
- package/lib/lilylet/grammar.jison.js +143 -125
- package/lib/lilylet/highlight.js +3 -1
- package/lib/lilylet/lilypondEncoder.js +10 -7
- package/lib/lilylet/measureLayout.d.ts +11 -0
- package/lib/lilylet/measureLayout.js +97 -0
- package/lib/lilylet/measureLayoutFromXml.d.ts +1 -0
- package/lib/lilylet/measureLayoutFromXml.js +3 -1
- package/lib/lilylet/meiEncoder.js +146 -70
- package/lib/lilylet/musicXmlDecoder.js +119 -24
- package/lib/lilylet/musicXmlEncoder.js +85 -18
- package/lib/lilylet/musicXmlTypes.d.ts +3 -1
- package/lib/lilylet/musicXmlUtils.js +1 -1
- package/lib/lilylet/serializer.js +21 -2
- package/lib/lilylet/types.d.ts +6 -2
- package/lib/lilylet/types.js +1 -0
- package/package.json +3 -1
- package/source/abc/abc.jison +8 -4
- package/source/abc/grammar.jison.js +85 -79
- package/source/lilylet/abcDecoder.ts +189 -0
- package/source/lilylet/grammar.jison.js +143 -125
- package/source/lilylet/highlight.ts +3 -1
- package/source/lilylet/lilylet.jison +33 -17
- package/source/lilylet/lilypondEncoder.ts +11 -7
- package/source/lilylet/measureLayout.ts +92 -0
- package/source/lilylet/measureLayoutFromXml.ts +3 -1
- package/source/lilylet/meiEncoder.ts +164 -66
- package/source/lilylet/musicXmlDecoder.ts +117 -23
- package/source/lilylet/musicXmlEncoder.ts +89 -16
- package/source/lilylet/musicXmlTypes.ts +5 -1
- package/source/lilylet/musicXmlUtils.ts +1 -1
- package/source/lilylet/serializer.ts +21 -2
- package/source/lilylet/types.ts +10 -1
package/lib/abc/grammar.jison.js
CHANGED
|
@@ -72,12 +72,12 @@
|
|
|
72
72
|
}
|
|
73
73
|
*/
|
|
74
74
|
Object.defineProperty(globalThis, "__abcGrammar__", { value: (function(){
|
|
75
|
-
var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,13],$V1=[1,8],$V2=[1,9],$V3=[1,10],$V4=[1,11],$V5=[1,12],$V6=[5,17,27,29,30,32,34],$V7=[2,
|
|
75
|
+
var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,13],$V1=[1,8],$V2=[1,9],$V3=[1,10],$V4=[1,11],$V5=[1,12],$V6=[5,17,27,29,30,32,34],$V7=[2,130],$V8=[1,22],$V9=[1,23],$Va=[1,24],$Vb=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vc=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,64,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vd=[2,68],$Ve=[1,40],$Vf=[1,41],$Vg=[1,42],$Vh=[1,43],$Vi=[1,52],$Vj=[1,58],$Vk=[1,57],$Vl=[1,55],$Vm=[1,56],$Vn=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vo=[16,22,24,25,26,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vp=[1,84],$Vq=[1,83],$Vr=[1,81],$Vs=[1,91],$Vt=[1,97],$Vu=[1,113],$Vv=[1,79],$Vw=[1,121],$Vx=[1,86],$Vy=[1,78],$Vz=[1,122],$VA=[1,80],$VB=[1,95],$VC=[1,96],$VD=[1,98],$VE=[1,99],$VF=[1,100],$VG=[1,101],$VH=[1,87],$VI=[1,88],$VJ=[1,102],$VK=[1,103],$VL=[1,85],$VM=[1,94],$VN=[1,104],$VO=[1,109],$VP=[1,108],$VQ=[1,112],$VR=[1,115],$VS=[1,116],$VT=[1,117],$VU=[1,118],$VV=[5,13,15,16,17,24,25,26,27,29,30,32,34,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VW=[1,132],$VX=[1,133],$VY=[1,134],$VZ=[1,135],$V_=[1,136],$V$=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V01=[1,143],$V11=[1,139],$V21=[1,140],$V31=[1,141],$V41=[1,142],$V51=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V61=[1,145],$V71=[1,146],$V81=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V91=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Va1=[1,153],$Vb1=[1,152],$Vc1=[1,161],$Vd1=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Ve1=[2,96],$Vf1=[25,49,72],$Vg1=[2,232],$Vh1=[1,169],$Vi1=[1,168],$Vj1=[1,187],$Vk1=[1,190],$Vl1=[1,183],$Vm1=[1,184],$Vn1=[1,182],$Vo1=[1,185],$Vp1=[1,192],$Vq1=[1,189],$Vr1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vs1=[2,160],$Vt1=[1,203],$Vu1=[1,204],$Vv1=[1,221],$Vw1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vx1=[1,231],$Vy1=[1,239],$Vz1=[1,240],$VA1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$VB1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VC1=[1,244],$VD1=[1,243],$VE1=[1,251],$VF1=[13,14,15,16,22,23,24,25,26],$VG1=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,58,59,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VH1=[1,263],$VI1=[14,16,25,40,49,72,87,100,132,136,137,138,139],$VJ1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VK1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VL1=[2,270],$VM1=[1,287],$VN1=[15,16,24,25,34,40,49,61,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,132,136,137,138,139],$VO1=[1,301],$VP1=[16,24,40,101],$VQ1=[16,67,101],$VR1=[61,66,101],$VS1=[101,119,120],$VT1=[16,24],$VU1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VV1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$VW1=[1,314],$VX1=[1,313],$VY1=[1,330],$VZ1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139];
|
|
76
76
|
var parser = {trace: function trace () { },
|
|
77
77
|
yy: {},
|
|
78
78
|
symbols_: {"error":2,"start_symbol":3,"tunes":4,"EOF":5,"tune":6,"header":7,"body":8,"head_lines":9,"head_line":10,"comment":11,"staff_layout_statement":12,"LAYOUT_END":13,"]":14,"}":15,")":16,"COMMENT":17,"SCORE":18,"staff_layout":19,"staff_layout_items":20,"staff_layout_item":21,"|":22,"NN":23,"(":24,"[":25,"{":26,"T:":27,"string_content":28,"C:":29,"K:":30,"key_signature":31,"V:":32,"header_value":33,"H":34,":":35,"string":36,"number":37,"frac":38,"numeric_tempo":39,"=":40,"upper_phonet":41,"voice_exp":42,"staff_shift":43,"NAME":44,"clef":45,"STAFF":46,"plus_minus_number":47,"key_root":48,"A":49,"sharp_or_flat":50,"key_mode":51,"TREBLE":52,"BASS":53,"TENOR":54,"ALTO":55,"SHARP":56,"FLAT":57,"MAJ":58,"MIN":59,"+":60,"-":61,"STR_START":62,"STR_END":63,"STR_CONTENT":64,"patches":65,"/":66,"N":67,"assigns":68,"assign":69,"assign_value":70,"lower_phonet":71,"a":72,"patch":73,"bar":74,"tailless_patch":75,"&":76,"music":77,"volta_rest":78,",":79,"expressive_mark":80,"text":81,"event":82,"grace_events":83,"control":84,"broken_rhythm":85,"triplet":86,"^":87,"articulation_letter":88,"P":89,"T":90,"J":91,"L":92,"M":93,"R":94,"O":95,"S":96,"u":97,"v":98,"articulation":99,".":100,"!":101,"articulation_content":102,"directive_text":103,"~":104,"scope_articulation":105,"parenthese":106,"DYNAMIC":107,"fingering_numbers":108,"tremolo":109,"dc":110,"al":111,"octave_shift":112,"8va":113,"8vb":114,"15ma":115,"15mb":116,"D.C.":117,"D.S.":118,"alcoda":119,"alfine":120,"<":121,">":122,"pitch_or_chord":123,"pitch":124,"chord":125,"accidentals":126,"pitches":127,"quotes":128,"sub_quotes":129,"sup_quotes":130,"'":131,"_":132,"acc_pitch":133,"rest_phonet":134,"phonet":135,"z":136,"Z":137,"x":138,"y":139,"duration":140,"events":141,"grace_music":142,"slashes":143,"broken_right":144,"broken_left":145,"$accept":0,"$end":1},
|
|
79
79
|
terminals_: {2:"error",5:"EOF",13:"LAYOUT_END",14:"]",15:"}",16:")",17:"COMMENT",18:"SCORE",22:"|",23:"NN",24:"(",25:"[",26:"{",27:"T:",29:"C:",30:"K:",32:"V:",34:"H",35:":",40:"=",44:"NAME",46:"STAFF",49:"A",52:"TREBLE",53:"BASS",54:"TENOR",55:"ALTO",56:"SHARP",57:"FLAT",58:"MAJ",59:"MIN",60:"+",61:"-",62:"STR_START",63:"STR_END",64:"STR_CONTENT",66:"/",67:"N",72:"a",76:"&",79:",",87:"^",89:"P",90:"T",91:"J",92:"L",93:"M",94:"R",95:"O",96:"S",97:"u",98:"v",100:".",101:"!",104:"~",107:"DYNAMIC",113:"8va",114:"8vb",115:"15ma",116:"15mb",117:"D.C.",118:"D.S.",119:"alcoda",120:"alfine",121:"<",122:">",131:"'",132:"_",136:"z",137:"Z",138:"x",139:"y"},
|
|
80
|
-
productions_: [0,[3,2],[4,1],[4,2],[6,2],[7,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,2],[11,1],[12,3],[19,1],[20,1],[20,2],[20,2],[21,1],[21,3],[21,3],[21,3],[21,3],[21,3],[10,2],[10,2],[10,2],[10,2],[10,3],[33,1],[33,1],[33,1],[33,1],[33,4],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[43,2],[43,2],[31,1],[31,1],[31,1],[48,1],[48,2],[48,2],[48,3],[45,1],[45,1],[45,1],[45,1],[45,2],[45,2],[45,2],[45,2],[50,1],[50,1],[51,1],[51,1],[51,1],[47,2],[47,2],[36,3],[28,0],[28,2],[8,1],[38,3],[37,1],[37,2],[39,3],[42,1],[42,2],[42,2],[42,3],[42,3],[42,4],[42,1],[42,2],[42,3],[42,2],[42,3],[42,3],[42,4],[68,1],[68,2],[69,3],[70,1],[70,1],[70,1],[70,1],[70,1],[41,1],[71,1],[65,1],[65,2],[65,2],[65,2],[65,1],[65,2],[65,2],[65,2],[65,2],[65,2],[65,3],[73,2],[75,1],[74,1],[74,2],[74,2],[74,2],[74,3],[74,4],[74,2],[74,2],[74,3],[74,3],[74,2],[74,3],[74,3],[74,4],[74,1],[78,2],[78,3],[77,0],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,3],[77,3],[77,3],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[84,5],[84,4],[84,4],[84,5],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[99,3],[99,3],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[102,1],[102,2],[102,3],[102,1],[102,1],[102,1],[102,1],[102,3],[102,2],[102,1],[102,2],[108,1],[108,2],[109,1],[109,2],[103,1],[103,2],[103,2],[103,2],[112,1],[112,1],[112,1],[112,1],[110,1],[110,1],[111,1],[111,1],[105,1],[105,1],[105,1],[106,1],[106,1],[81,1],[123,1],[123,1],[123,2],[125,3],[125,3],[125,2],[127,1],[127,2],[127,2],[127,3],[127,2],[127,3],[127,4],[127,3],[127,2],[128,1],[128,1],[129,1],[129,2],[130,1],[130,2],[126,1],[126,1],[126,1],[126,2],[126,2],[126,2],[126,2],[126,2],[124,1],[124,2],[124,1],[133,1],[133,2],[133,2],[133,3],[135,1],[135,1],[134,1],[134,1],[134,1],[134,1],[82,1],[82,2],[141,1],[141,2],[83,3],[83,4],[142,1],[142,2],[142,2],[142,2],[142,2],[142,2],[140,3],[140,2],[140,1],[140,1],[140,2],[143,1],[143,2],[85,1],[85,1],[144,1],[144,2],[145,1],[145,2],[86,6],[86,4],[86,2]],
|
|
80
|
+
productions_: [0,[3,2],[4,1],[4,2],[6,2],[7,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,2],[11,1],[12,3],[19,1],[20,1],[20,2],[20,2],[21,1],[21,3],[21,3],[21,3],[21,3],[21,3],[10,2],[10,2],[10,2],[10,2],[10,3],[33,1],[33,1],[33,1],[33,1],[33,4],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[43,2],[43,2],[31,1],[31,1],[31,1],[48,1],[48,2],[48,2],[48,3],[45,1],[45,1],[45,1],[45,1],[45,2],[45,2],[45,2],[45,2],[50,1],[50,1],[51,1],[51,1],[51,1],[47,2],[47,2],[36,3],[28,0],[28,2],[8,1],[38,3],[37,1],[37,2],[39,3],[42,1],[42,2],[42,2],[42,3],[42,3],[42,4],[42,1],[42,2],[42,3],[42,2],[42,3],[42,3],[42,4],[68,1],[68,2],[69,3],[70,1],[70,1],[70,1],[70,1],[70,1],[41,1],[71,1],[65,1],[65,2],[65,2],[65,2],[65,1],[65,2],[65,2],[65,2],[65,2],[65,2],[65,3],[73,2],[75,1],[74,1],[74,2],[74,2],[74,2],[74,3],[74,4],[74,2],[74,2],[74,3],[74,3],[74,2],[74,3],[74,3],[74,4],[74,1],[78,2],[78,2],[78,3],[78,3],[77,0],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,3],[77,3],[77,3],[77,4],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[84,5],[84,4],[84,4],[84,5],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[99,3],[99,3],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[102,1],[102,2],[102,3],[102,1],[102,1],[102,1],[102,1],[102,3],[102,2],[102,1],[102,2],[108,1],[108,2],[109,1],[109,2],[103,1],[103,2],[103,2],[103,2],[112,1],[112,1],[112,1],[112,1],[110,1],[110,1],[111,1],[111,1],[105,1],[105,1],[105,1],[106,1],[106,1],[81,1],[123,1],[123,1],[123,2],[125,3],[125,3],[125,2],[127,1],[127,2],[127,2],[127,3],[127,2],[127,3],[127,4],[127,3],[127,2],[128,1],[128,1],[129,1],[129,2],[130,1],[130,2],[126,1],[126,1],[126,1],[126,2],[126,2],[126,2],[126,2],[126,2],[124,1],[124,2],[124,1],[133,1],[133,2],[133,2],[133,3],[135,1],[135,1],[134,1],[134,1],[134,1],[134,1],[82,1],[82,2],[141,1],[141,2],[83,3],[83,4],[142,1],[142,2],[142,2],[142,2],[142,2],[142,2],[140,3],[140,2],[140,1],[140,1],[140,2],[143,1],[143,2],[85,1],[85,1],[144,1],[144,2],[145,1],[145,2],[86,6],[86,4],[86,2]],
|
|
81
81
|
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
|
|
82
82
|
/* this == yyval */
|
|
83
83
|
|
|
@@ -86,16 +86,16 @@ switch (yystate) {
|
|
|
86
86
|
case 1:
|
|
87
87
|
return $$[$0-1];
|
|
88
88
|
break;
|
|
89
|
-
case 2: case 6: case 7: case 18: case 98: case 99: case 102: case
|
|
89
|
+
case 2: case 6: case 7: case 18: case 98: case 99: case 102: case 217: case 219: case 221: case 224: case 255: case 259:
|
|
90
90
|
this.$ = [$$[$0]];
|
|
91
91
|
break;
|
|
92
|
-
case 3: case 8: case 9: case 10: case 19: case 100: case 103: case
|
|
92
|
+
case 3: case 8: case 9: case 10: case 19: case 100: case 103: case 218: case 256: case 261: case 262: case 263:
|
|
93
93
|
this.$ = [...$$[$0-1], $$[$0]];
|
|
94
94
|
break;
|
|
95
95
|
case 4:
|
|
96
96
|
this.$ = tune($$[$0-1], $$[$0]);
|
|
97
97
|
break;
|
|
98
|
-
case 11: case 12: case 13: case 14: case 16: case 67: case 101: case 104: case 105: case 106: case 107: case
|
|
98
|
+
case 11: case 12: case 13: case 14: case 16: case 67: case 101: case 104: case 105: case 106: case 107: case 138: case 139: case 166: case 167: case 225:
|
|
99
99
|
this.$ = $$[$0-1];
|
|
100
100
|
break;
|
|
101
101
|
case 15:
|
|
@@ -140,7 +140,7 @@ break;
|
|
|
140
140
|
case 43: case 44:
|
|
141
141
|
this.$ = staffShift($$[$0]);
|
|
142
142
|
break;
|
|
143
|
-
case 45: case 47: case 88: case
|
|
143
|
+
case 45: case 47: case 88: case 213:
|
|
144
144
|
this.$ = $$[$0];
|
|
145
145
|
break;
|
|
146
146
|
case 46:
|
|
@@ -245,7 +245,7 @@ break;
|
|
|
245
245
|
case 90:
|
|
246
246
|
this.$ = assign($$[$0-2], $$[$0]);
|
|
247
247
|
break;
|
|
248
|
-
case 108: case
|
|
248
|
+
case 108: case 140: case 141:
|
|
249
249
|
this.$ = $$[$0-2];
|
|
250
250
|
break;
|
|
251
251
|
case 109:
|
|
@@ -282,222 +282,228 @@ case 122:
|
|
|
282
282
|
this.$ = '|' + $$[$0-1] + $$[$0];
|
|
283
283
|
break;
|
|
284
284
|
case 123:
|
|
285
|
-
this.$ = ':|' + $$[$0
|
|
285
|
+
this.$ = ':|' + $$[$0];
|
|
286
286
|
break;
|
|
287
287
|
case 124:
|
|
288
|
-
this.$ = ':|' + $$[$0-
|
|
288
|
+
this.$ = ':|' + $$[$0-1] + $$[$0];
|
|
289
289
|
break;
|
|
290
290
|
case 125:
|
|
291
291
|
this.$ = '&';
|
|
292
292
|
break;
|
|
293
|
-
case 126:
|
|
293
|
+
case 126: case 127:
|
|
294
294
|
this.$ = ',' + $$[$0];
|
|
295
295
|
break;
|
|
296
|
-
case
|
|
296
|
+
case 128: case 129:
|
|
297
297
|
this.$ = $$[$0-2] + ',' + $$[$0];
|
|
298
298
|
break;
|
|
299
|
-
case
|
|
299
|
+
case 131: case 132: case 133: case 134: case 135: case 137:
|
|
300
300
|
this.$ = $$[$0-1] ? [...$$[$0-1], $$[$0]] : [$$[$0]];
|
|
301
301
|
break;
|
|
302
|
-
case
|
|
302
|
+
case 136:
|
|
303
303
|
Object.assign($$[$0-1].at(-1), $$[$0]); this.$ = $$[$0-1];
|
|
304
304
|
break;
|
|
305
|
-
case
|
|
305
|
+
case 142:
|
|
306
|
+
this.$ = $$[$0-2] ? [...$$[$0-2], {volta: String($$[$0])}] : [{volta: String($$[$0])}];
|
|
307
|
+
break;
|
|
308
|
+
case 143:
|
|
309
|
+
this.$ = $$[$0-3] ? [...$$[$0-3], {volta: String($$[$0-1]) + $$[$0]}] : [{volta: String($$[$0-1]) + $$[$0]}];
|
|
310
|
+
break;
|
|
311
|
+
case 155: case 158:
|
|
306
312
|
this.$ = ({control: header($$[$0-3], $$[$0-1])});
|
|
307
313
|
break;
|
|
308
|
-
case
|
|
314
|
+
case 156:
|
|
309
315
|
this.$ = ({control: header("K", $$[$0-1])});
|
|
310
316
|
break;
|
|
311
|
-
case
|
|
317
|
+
case 157:
|
|
312
318
|
this.$ = ({control: header("V", $$[$0-1])});
|
|
313
319
|
break;
|
|
314
|
-
case
|
|
320
|
+
case 160: case 161: case 162: case 163:
|
|
315
321
|
this.$ = ({express: $$[$0]});
|
|
316
322
|
break;
|
|
317
|
-
case
|
|
323
|
+
case 164:
|
|
318
324
|
this.$ = ({express: "coda"});
|
|
319
325
|
break;
|
|
320
|
-
case
|
|
326
|
+
case 165:
|
|
321
327
|
this.$ = ({express: "segno"});
|
|
322
328
|
break;
|
|
323
|
-
case
|
|
329
|
+
case 168:
|
|
324
330
|
this.$ = articulation("prall");
|
|
325
331
|
break;
|
|
326
|
-
case
|
|
332
|
+
case 169:
|
|
327
333
|
this.$ = articulation("trill");
|
|
328
334
|
break;
|
|
329
|
-
case
|
|
335
|
+
case 170:
|
|
330
336
|
this.$ = articulation("fermata");
|
|
331
337
|
break;
|
|
332
|
-
case
|
|
338
|
+
case 171:
|
|
333
339
|
this.$ = articulation("slide");
|
|
334
340
|
break;
|
|
335
|
-
case
|
|
341
|
+
case 172:
|
|
336
342
|
this.$ = articulation("accent");
|
|
337
343
|
break;
|
|
338
|
-
case
|
|
344
|
+
case 173: case 177:
|
|
339
345
|
this.$ = articulation("mordent");
|
|
340
346
|
break;
|
|
341
|
-
case
|
|
347
|
+
case 174:
|
|
342
348
|
this.$ = articulation("roll");
|
|
343
349
|
break;
|
|
344
|
-
case
|
|
350
|
+
case 175:
|
|
345
351
|
this.$ = articulation("upbow");
|
|
346
352
|
break;
|
|
347
|
-
case
|
|
353
|
+
case 176:
|
|
348
354
|
this.$ = articulation("downbow");
|
|
349
355
|
break;
|
|
350
|
-
case
|
|
356
|
+
case 178: case 181: case 182: case 183:
|
|
351
357
|
this.$ = articulation($$[$0]);
|
|
352
358
|
break;
|
|
353
|
-
case
|
|
359
|
+
case 179:
|
|
354
360
|
this.$ = articulation($$[$0-1], $$[$0]);
|
|
355
361
|
break;
|
|
356
|
-
case
|
|
362
|
+
case 180:
|
|
357
363
|
this.$ = articulation($$[$0-2] + '=' + String($$[$0]));
|
|
358
364
|
break;
|
|
359
|
-
case
|
|
365
|
+
case 184: case 186:
|
|
360
366
|
this.$ = ({fingering: Number($$[$0])});
|
|
361
367
|
break;
|
|
362
|
-
case
|
|
368
|
+
case 185:
|
|
363
369
|
this.$ = ({fingering: Number($$[$0-1])});
|
|
364
370
|
break;
|
|
365
|
-
case
|
|
371
|
+
case 187:
|
|
366
372
|
this.$ = ({tremolo: $$[$0]});
|
|
367
373
|
break;
|
|
368
|
-
case
|
|
374
|
+
case 188:
|
|
369
375
|
this.$ = ({tremolo: $$[$0-1]}) // unknown meaning of '-'?;
|
|
370
376
|
break;
|
|
371
|
-
case
|
|
377
|
+
case 189:
|
|
372
378
|
this.$ = String($$[$0]);
|
|
373
379
|
break;
|
|
374
|
-
case
|
|
380
|
+
case 190:
|
|
375
381
|
this.$ = $$[$0-1] + $$[$0];
|
|
376
382
|
break;
|
|
377
|
-
case
|
|
383
|
+
case 191: case 198: case 230: case 232: case 270: case 274:
|
|
378
384
|
this.$ = 1;
|
|
379
385
|
break;
|
|
380
|
-
case
|
|
386
|
+
case 192: case 231: case 271: case 275:
|
|
381
387
|
this.$ = $$[$0-1] + 1;
|
|
382
388
|
break;
|
|
383
|
-
case
|
|
389
|
+
case 193:
|
|
384
390
|
this.$ = ({directive: $$[$0]});
|
|
385
391
|
break;
|
|
386
|
-
case
|
|
392
|
+
case 194:
|
|
387
393
|
this.$ = ({directive: `${$$[$0-1]} ${$$[$0]}`});
|
|
388
394
|
break;
|
|
389
|
-
case
|
|
395
|
+
case 195:
|
|
390
396
|
this.$ = octaveShift($$[$0-1]);
|
|
391
397
|
break;
|
|
392
|
-
case
|
|
398
|
+
case 196:
|
|
393
399
|
this.$ = octaveShift(0);
|
|
394
400
|
break;
|
|
395
|
-
case
|
|
401
|
+
case 197: case 228: case 233: case 276:
|
|
396
402
|
this.$ = -1;
|
|
397
403
|
break;
|
|
398
|
-
case
|
|
404
|
+
case 199: case 236:
|
|
399
405
|
this.$ = -2;
|
|
400
406
|
break;
|
|
401
|
-
case
|
|
407
|
+
case 200: case 235:
|
|
402
408
|
this.$ = 2;
|
|
403
409
|
break;
|
|
404
|
-
case
|
|
410
|
+
case 203:
|
|
405
411
|
this.$ = "al coda";
|
|
406
412
|
break;
|
|
407
|
-
case
|
|
413
|
+
case 204:
|
|
408
414
|
this.$ = "al fine";
|
|
409
415
|
break;
|
|
410
|
-
case
|
|
416
|
+
case 210:
|
|
411
417
|
this.$ = ({text: $$[$0]});
|
|
412
418
|
break;
|
|
413
|
-
case
|
|
419
|
+
case 211:
|
|
414
420
|
this.$ = chord([$$[$0]]);
|
|
415
421
|
break;
|
|
416
|
-
case
|
|
422
|
+
case 214:
|
|
417
423
|
this.$ = chord($$[$0-1]);
|
|
418
424
|
break;
|
|
419
|
-
case
|
|
425
|
+
case 215: case 216:
|
|
420
426
|
this.$ = chord([]);
|
|
421
427
|
break;
|
|
422
|
-
case
|
|
428
|
+
case 220: case 222:
|
|
423
429
|
this.$ = [...$$[$0-2], $$[$0]];
|
|
424
430
|
break;
|
|
425
|
-
case
|
|
431
|
+
case 223:
|
|
426
432
|
this.$ = [...$$[$0-3], $$[$0]];
|
|
427
433
|
break;
|
|
428
|
-
case
|
|
434
|
+
case 229: case 277:
|
|
429
435
|
this.$ = $$[$0-1] - 1;
|
|
430
436
|
break;
|
|
431
|
-
case
|
|
437
|
+
case 234: case 237:
|
|
432
438
|
this.$ = 0;
|
|
433
439
|
break;
|
|
434
|
-
case
|
|
440
|
+
case 238:
|
|
435
441
|
this.$ = 0.5;
|
|
436
442
|
break;
|
|
437
|
-
case
|
|
443
|
+
case 239:
|
|
438
444
|
this.$ = -0.5;
|
|
439
445
|
break;
|
|
440
|
-
case
|
|
446
|
+
case 241:
|
|
441
447
|
$$[$0-1].tie = true; this.$ = $$[$0-1];
|
|
442
448
|
break;
|
|
443
|
-
case
|
|
449
|
+
case 242: case 243:
|
|
444
450
|
this.$ = pitch(null, $$[$0], 0);
|
|
445
451
|
break;
|
|
446
|
-
case
|
|
452
|
+
case 244:
|
|
447
453
|
this.$ = pitch(null, $$[$0-1], $$[$0]);
|
|
448
454
|
break;
|
|
449
|
-
case
|
|
455
|
+
case 245:
|
|
450
456
|
this.$ = pitch($$[$0-1], $$[$0], 0);
|
|
451
457
|
break;
|
|
452
|
-
case
|
|
458
|
+
case 246:
|
|
453
459
|
this.$ = pitch($$[$0-2], $$[$0-1], $$[$0]);
|
|
454
460
|
break;
|
|
455
|
-
case
|
|
461
|
+
case 253:
|
|
456
462
|
this.$ = ({event: event($$[$0])});
|
|
457
463
|
break;
|
|
458
|
-
case
|
|
464
|
+
case 254:
|
|
459
465
|
this.$ = ({event: event($$[$0-1], $$[$0])});
|
|
460
466
|
break;
|
|
461
|
-
case
|
|
467
|
+
case 257:
|
|
462
468
|
this.$ = grace($$[$0-1]);
|
|
463
469
|
break;
|
|
464
|
-
case
|
|
470
|
+
case 258:
|
|
465
471
|
this.$ = grace($$[$0-1], true);
|
|
466
472
|
break;
|
|
467
|
-
case
|
|
473
|
+
case 260: case 264:
|
|
468
474
|
this.$ = [$$[$0-1], $$[$0]];
|
|
469
475
|
break;
|
|
470
|
-
case
|
|
476
|
+
case 265:
|
|
471
477
|
this.$ = frac(Number($$[$0-2]), Number($$[$0]));
|
|
472
478
|
break;
|
|
473
|
-
case
|
|
479
|
+
case 266:
|
|
474
480
|
this.$ = frac(1, Number($$[$0]));
|
|
475
481
|
break;
|
|
476
|
-
case
|
|
482
|
+
case 267:
|
|
477
483
|
this.$ = frac(Number($$[$0]));
|
|
478
484
|
break;
|
|
479
|
-
case
|
|
485
|
+
case 268:
|
|
480
486
|
this.$ = frac(1, Math.pow(2, $$[$0]));
|
|
481
487
|
break;
|
|
482
|
-
case
|
|
488
|
+
case 269:
|
|
483
489
|
this.$ = frac(Number($$[$0-1]), Math.pow(2, $$[$0]));
|
|
484
490
|
break;
|
|
485
|
-
case
|
|
491
|
+
case 272: case 273:
|
|
486
492
|
this.$ = ({broken: $$[$0]});
|
|
487
493
|
break;
|
|
488
|
-
case
|
|
494
|
+
case 278:
|
|
489
495
|
this.$ = ({triplet: $$[$0-4], multiplier: $$[$0-2], n: $$[$0]});
|
|
490
496
|
break;
|
|
491
|
-
case
|
|
497
|
+
case 279:
|
|
492
498
|
this.$ = ({triplet: $$[$0-2], multiplier: $$[$0]});
|
|
493
499
|
break;
|
|
494
|
-
case
|
|
500
|
+
case 280:
|
|
495
501
|
this.$ = ({triplet: $$[$0]});
|
|
496
502
|
break;
|
|
497
503
|
}
|
|
498
504
|
},
|
|
499
|
-
table: [{3:1,4:2,6:3,7:4,9:5,10:6,11:7,17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5},{1:[3]},{5:[1,14],6:15,7:4,9:5,10:6,11:7,17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5},o($V6,[2,2]),o([5,13,14,15,16,17,24,25,26,27,29,30,32,34,40,44,49,61,62,67,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V7,{8:16,65:17,73:18,74:19,75:20,77:21,22:$V8,35:$V9,76:$Va}),o([5,22,24,25,26,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,5],{10:25,11:26,12:27,13:[1,28],14:[1,29],15:[1,30],16:[1,31],17:$V0,18:[1,32],27:$V1,29:$V2,30:$V3,32:$V4,34:$V5}),o($Vb,[2,6]),o($Vb,[2,7]),o($Vc,$Vd,{28:33}),o($Vc,$Vd,{28:34}),{31:35,44:[1,37],45:38,48:36,49:[1,39],52:$Ve,53:$Vf,54:$Vg,55:$Vh},{31:53,33:44,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{35:[1,59]},o($Vb,[2,15]),{1:[2,1]},o($V6,[2,3]),o($V6,[2,4]),o([16,22,24,25,26,35,40,44,49,61,62,67,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V7,{77:21,73:60,11:61,75:62,10:65,5:[2,70],13:[1,66],14:[1,63],15:[1,64],17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5,76:[1,67]}),o($Vn,[2,98]),o($Vo,$V7,{73:68,77:69}),o($Vn,[2,102]),o([5,13,14,15,17,27,29,30,32],[2,110],{74:70,80:71,81:72,82:73,83:74,84:75,85:76,86:77,99:82,36:89,123:90,144:92,145:93,124:105,125:106,126:107,133:110,134:111,135:114,41:119,71:120,16:$Vp,22:$V8,24:$Vq,25:$Vr,26:$Vs,34:$Vt,35:$V9,40:$Vu,44:$Vv,49:$Vw,61:$Vx,62:$Vl,67:$Vy,72:$Vz,76:$Va,87:$VA,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,100:$VL,101:$VM,104:$VN,121:$VO,122:$VP,132:$VQ,136:$VR,137:$VS,138:$VT,139:$VU}),o($VV,[2,111],{14:[1,125],22:[1,124],35:[1,123],67:[1,126]}),{22:[1,127],35:[1,128]},o($Vn,[2,125]),o($Vb,[2,8]),o($Vb,[2,9]),o($Vb,[2,10]),o($Vb,[2,11]),o($Vb,[2,12]),o($Vb,[2,13]),o($Vb,[2,14]),{19:129,20:130,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},o($Vb,[2,27],{64:$V_}),o($Vb,[2,28],{64:$V_}),o($Vb,[2,29]),o($Vb,[2,45]),o($Vb,[2,46]),o($Vb,[2,47]),o($V$,[2,48],{50:137,51:138,44:$V01,56:$V11,57:$V21,58:$V31,59:$V41}),o($V51,[2,52],{47:144,60:$V61,61:$V71}),o($V51,[2,53],{47:147,60:$V61,61:$V71}),o($V51,[2,54],{47:148,60:$V61,61:$V71}),o($V51,[2,55],{47:149,60:$V61,61:$V71}),o($Vb,[2,30]),o($V81,[2,32],{38:150,37:151,67:$Vm}),o($V91,[2,33],{68:154,69:156,44:[1,155],66:$Va1,67:$Vb1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,34],{40:[1,157]}),o($Vb,[2,35]),o($V81,[2,37],{37:158,67:$Vm}),o($Vb,[2,38]),o($Vb,[2,39]),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,40],{69:156,68:159,47:160,44:$Vc1,60:$V61,61:$V71}),o($Vb,[2,41]),o($Vb,[2,42]),o([63,64],$Vd,{28:162}),o($Vd1,[2,72]),o($V$,$Ve1,{50:137,51:138,44:$V01,56:$V11,57:$V21,58:$V31,59:$V41}),{47:163,60:$V61,61:$V71},{31:53,33:164,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},o($Vn,[2,100]),o($Vn,[2,101]),o($Vn,[2,103]),o($Vn,[2,104]),o($Vn,[2,105]),o($Vn,[2,106]),o($Vn,[2,107]),o($Vo,$V7,{77:69,73:165}),o($Vn,[2,99]),{16:$Vp,22:$V8,24:$Vq,25:$Vr,26:$Vs,34:$Vt,35:$V9,36:89,40:$Vu,41:119,44:$Vv,49:$Vw,61:$Vx,62:$Vl,67:$Vy,71:120,72:$Vz,74:70,76:$Va,80:71,81:72,82:73,83:74,84:75,85:76,86:77,87:$VA,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,121:$VO,122:$VP,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,144:92,145:93},o($Vn,[2,109]),o($Vn,[2,129]),o($Vn,[2,130]),o($Vn,[2,131]),o($Vn,[2,132]),o($Vn,[2,133]),o($Vn,[2,134]),o($Vn,[2,135]),o($Vn,[2,136]),o($Vn,[2,137]),o($Vf1,$Vg1,{88:167,34:[1,172],44:[1,166],66:$Vh1,87:$Vi1,89:[1,170],90:[1,171],91:[1,173],92:[1,174],93:[1,175],94:[1,176],95:[1,177],96:[1,178],97:[1,179],98:[1,180]}),{16:$Vj1,25:$Vk1,30:$Vl1,32:$Vm1,34:$Vn1,40:$Vu,41:119,44:$Vo1,49:$Vw,67:[1,181],71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vn,[2,156]),o($Vr1,$Vs1,{37:193,67:$Vm}),o($Vn,[2,158]),o($Vn,[2,159]),o($Vn,[2,160]),o($Vn,[2,161]),o($Vn,[2,162]),o($Vn,[2,207]),o($Vr1,[2,250],{140:194,37:195,143:197,66:[1,196],67:$Vm}),{16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,66:[1,199],71:120,72:$Vz,80:201,82:200,84:202,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,142:198},o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,132,136,137,138,139],[2,269],{122:[1,205]}),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,122,132,136,137,138,139],[2,270],{121:[1,206]}),{24:[1,214],44:[1,220],66:[1,222],67:$Vv1,72:[1,211],87:[1,212],102:207,103:208,105:209,107:[1,210],108:213,109:215,110:216,112:217,113:[1,225],114:[1,226],115:[1,227],116:[1,228],117:[1,223],118:[1,224],121:[1,218],122:[1,219]},o($Vn,[2,165]),o($Vn,[2,166]),o($Vn,[2,167]),o($Vn,[2,168]),o($Vn,[2,169]),o($Vn,[2,170]),o($Vn,[2,171]),o($Vn,[2,172]),o($Vn,[2,173]),o($Vn,[2,174]),o($Vw1,[2,208]),o($Vw1,[2,209]),{25:$Vx1,41:119,49:$Vw,71:120,72:$Vz,125:229,135:230},o($Vn,[2,271]),o($Vn,[2,273]),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,237],{61:[1,232]}),o($Vw1,[2,239]),o($Vf1,[2,230],{66:[1,234],132:[1,233]}),o($Vf1,[2,231],{40:[1,235]}),o($Vw1,[2,240],{128:236,129:237,130:238,79:$Vy1,131:$Vz1}),o($Vw1,[2,246]),o($Vw1,[2,247]),o($Vw1,[2,248]),o($Vw1,[2,249]),o($VA1,[2,244]),o($VA1,[2,245]),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$Ve1),o($VA1,[2,97]),o($Vn,[2,112]),o($Vn,[2,117]),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,118],{35:[1,241]}),o($Vn,[2,121],{78:242,79:$VB1}),o($VV,[2,113],{14:[1,246],22:[1,245],35:[1,244],67:[1,247]}),o($Vn,[2,114]),{13:[1,248]},{13:[2,17],21:249,22:$VC1,23:$VW,24:$VX,25:$VY,26:$VZ},o($VD1,[2,18]),o($VD1,[2,21]),{20:251,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},{20:252,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},{20:253,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,63,64,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,69]),o($V$,[2,49],{51:254,44:$V01,58:$V31,59:$V41}),o($Vb,[2,50]),o($VE1,[2,60]),o($VE1,[2,61]),o($Vb,[2,62]),o($Vb,[2,63]),o($Vb,[2,64]),o($Vb,[2,56]),{37:255,67:$Vm},{37:256,67:$Vm},o($Vb,[2,57]),o($Vb,[2,58]),o($Vb,[2,59]),{40:[1,257]},{66:$Va1,67:$Vb1},o($Vd1,[2,73]),{37:258,67:$Vm},o($V$,[2,76],{69:259,44:$Vc1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,77],{69:156,68:260,47:261,40:$VF1,44:$Vc1,60:$V61,61:$V71}),o($Vb,[2,88]),{37:263,67:$Vm},o($V91,[2,84],{69:156,68:264,44:[1,265],67:$Vb1}),o($V$,[2,82],{69:259,44:$Vc1}),o($V$,[2,44],{69:156,68:266,44:$Vc1}),{40:$VF1},{63:[1,267],64:$V_},o($Vb,[2,43]),o($Vb,[2,31]),o($Vn,[2,108]),o($Vn,[2,138]),o($Vn,[2,139]),o($Vf1,[2,232]),o($Vf1,[2,235]),o($Vn,[2,141]),o($Vn,[2,142]),o($Vn,[2,143]),o($Vn,[2,144]),o($Vn,[2,145]),o($Vn,[2,146]),o($Vn,[2,147]),o($Vn,[2,148]),o($Vn,[2,149]),o($Vn,[2,150]),o($Vn,[2,151]),o($Vn,[2,140]),{35:[1,268]},{31:53,33:269,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{31:53,33:270,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{35:[1,271]},{14:[1,272],16:[1,276],25:[1,275],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,100:[1,274],124:273,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o([5,13,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,213],{14:[1,277]}),o($VG1,[2,214]),{25:[1,279],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:278,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:280,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{41:119,49:$Vw,71:120,72:$Vz,135:230},o($Vf1,$Vg1,{66:$Vh1,87:$Vi1}),o($VH1,[2,277],{35:[1,281],67:$Vb1}),o($Vn,[2,251]),o($Vr1,[2,264],{143:283,66:[1,282],67:$Vb1}),o($VI1,$VJ1,{37:284,67:$Vm}),o($Vn,[2,265],{66:$VK1}),{15:[1,286],16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:288,82:287,84:289,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:201,82:200,84:202,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,142:290},o($VL1,[2,256]),{25:$Vx1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,82:291,87:$Vp1,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{25:$Vx1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,82:292,87:$Vp1,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VL1,$Vs1),{16:$Vj1,25:$Vk1,30:$Vl1,32:$Vm1,34:$Vn1,40:$Vu,41:119,44:$Vo1,49:$Vw,71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vn,[2,272]),o($Vn,[2,274]),{101:[1,293]},{101:[1,294]},{16:[1,298],24:[1,297],40:[1,296],101:[2,175],106:295},{101:[2,178]},{101:[2,179]},{101:[2,180]},{67:$VM1,101:[2,181]},{67:$Vv1,108:300},{61:[1,301],66:[1,302],101:[2,184]},{101:[2,190],111:303,119:[1,304],120:[1,305]},{16:[1,307],24:[1,306]},o($VN1,[2,202]),o($VN1,[2,203]),o($VN1,[2,204]),o($VO1,[2,186]),o($VP1,[2,188]),o($VQ1,[2,198]),o($VQ1,[2,199]),o($VR1,[2,194]),o($VR1,[2,195]),o($VR1,[2,196]),o($VR1,[2,197]),o($Vw1,[2,210]),o($Vw1,[2,242],{129:237,130:238,128:308,79:$Vy1,131:$Vz1}),{16:$Vj1,25:$Vk1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vw1,[2,238]),o($Vf1,[2,233]),o($Vf1,[2,236]),o($Vf1,[2,234]),o($Vw1,[2,241]),o($Vw1,[2,223],{79:[1,309]}),o($Vw1,[2,224],{131:[1,310]}),o($VS1,[2,225]),o($VT1,[2,227]),o($Vn,[2,119]),o($Vn,[2,122],{79:$VU1}),{67:[1,312]},o($Vn,[2,115]),{35:[1,313]},o($Vn,[2,120]),o($Vn,[2,123],{78:314,79:$VB1}),o($Vb,[2,16]),o($VD1,[2,19]),o($VD1,[2,20]),{16:[1,315],21:249,22:$VC1,23:$VW,24:$VX,25:$VY,26:$VZ},{14:[1,316],15:[1,317],21:249,22:$VC1,23:$VW,24:$VX,25:$VY,26:$VZ},{14:[1,319],15:[1,318],21:249,22:$VC1,23:$VW,24:$VX,25:$VY,26:$VZ},o($Vb,[2,51]),o($V81,[2,65],{67:$Vb1}),o($V81,[2,66],{67:$Vb1}),{37:320,67:$Vm},o($V81,[2,71],{67:$Vb1}),o($Vb,[2,89]),o($V$,[2,78],{69:259,44:$Vc1}),o($V$,[2,79],{69:156,68:321,44:$Vc1}),{36:323,37:324,41:327,44:$VV1,47:325,49:$Vw,60:$V61,61:$V71,62:$Vl,67:$Vm,70:322},o($V81,[2,74],{67:$Vb1}),o($V$,[2,85],{69:259,44:$Vc1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,86],{69:156,68:328,40:$VF1,44:$Vc1}),o($V$,[2,83],{69:259,44:$Vc1}),o($Vb,[2,67]),{31:53,33:329,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{14:[1,330]},{14:[1,331]},{31:53,33:332,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},o($Vw1,[2,211]),o($VG1,[2,215]),{25:[1,334],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:333,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:335,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VG1,[2,222]),o($Vw1,[2,212]),o($VG1,[2,216]),{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:336,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VG1,[2,218]),{37:337,67:$Vm},o($VI1,$VJ1,{37:338,67:$Vm}),o($Vn,[2,266],{66:$VK1}),o($Vr1,[2,263],{67:$Vb1}),o($Vw1,[2,268]),o($Vn,[2,254]),o($VL1,[2,258]),o($VL1,[2,259]),o($VL1,[2,260]),{15:[1,339],16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:288,82:287,84:289,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VL1,[2,257]),o($VL1,[2,261]),o($Vn,[2,163]),o($Vn,[2,164]),{101:[2,176]},{36:323,37:324,41:327,44:$VV1,47:325,49:$Vw,60:$V61,61:$V71,62:$Vl,67:$Vm,70:340},{101:[2,205]},{101:[2,206]},o($VO1,[2,187]),{16:[1,341],67:$VM1,101:[2,183]},{101:[2,185]},o($VP1,[2,189]),{101:[2,191]},{101:[2,200]},{101:[2,201]},{101:[2,192]},{101:[2,193]},o($Vw1,[2,243]),o($VS1,[2,226]),o($VT1,[2,228]),{67:[1,342]},o($VW1,[2,126]),o($Vn,[2,116]),o($Vn,[2,124],{79:$VU1}),o($VD1,[2,22]),o($VD1,[2,23]),o($VD1,[2,25]),o($VD1,[2,24]),o($VD1,[2,26]),o($V81,[2,36],{67:$Vb1}),o($V$,[2,80],{69:259,44:$Vc1}),o($Vb,[2,90]),o($Vb,[2,91]),o($V81,[2,92],{67:$Vb1}),o($Vb,[2,93]),o($Vb,[2,94]),o($Vb,[2,95]),o($V$,[2,87],{69:259,44:$Vc1}),{14:[1,343]},o($Vn,[2,153]),o($Vn,[2,154]),{14:[1,344]},o($VG1,[2,217]),{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:345,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VG1,[2,219]),o($VG1,[2,221]),o($VH1,[2,276],{35:[1,346],67:$Vb1}),o($Vr1,[2,262],{67:$Vb1}),o($Vn,[2,255]),{101:[2,177]},{101:[2,182]},o($VW1,[2,127]),o($Vn,[2,152]),o($Vn,[2,155]),o($VG1,[2,220]),{37:347,67:$Vm},o($Vr1,[2,275],{67:$Vb1})],
|
|
500
|
-
defaultActions: {14:[2,1],210:[2,
|
|
505
|
+
table: [{3:1,4:2,6:3,7:4,9:5,10:6,11:7,17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5},{1:[3]},{5:[1,14],6:15,7:4,9:5,10:6,11:7,17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5},o($V6,[2,2]),o([5,13,14,15,16,17,24,25,26,27,29,30,32,34,40,44,49,61,62,67,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V7,{8:16,65:17,73:18,74:19,75:20,77:21,22:$V8,35:$V9,76:$Va}),o([5,22,24,25,26,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,5],{10:25,11:26,12:27,13:[1,28],14:[1,29],15:[1,30],16:[1,31],17:$V0,18:[1,32],27:$V1,29:$V2,30:$V3,32:$V4,34:$V5}),o($Vb,[2,6]),o($Vb,[2,7]),o($Vc,$Vd,{28:33}),o($Vc,$Vd,{28:34}),{31:35,44:[1,37],45:38,48:36,49:[1,39],52:$Ve,53:$Vf,54:$Vg,55:$Vh},{31:53,33:44,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{35:[1,59]},o($Vb,[2,15]),{1:[2,1]},o($V6,[2,3]),o($V6,[2,4]),o([16,22,24,25,26,35,40,44,49,61,62,67,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V7,{77:21,73:60,11:61,75:62,10:65,5:[2,70],13:[1,66],14:[1,63],15:[1,64],17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5,76:[1,67]}),o($Vn,[2,98]),o($Vo,$V7,{73:68,77:69}),o($Vn,[2,102]),o([5,13,14,15,17,27,29,30,32],[2,110],{74:70,80:71,81:72,82:73,83:74,84:75,85:76,86:77,99:82,36:89,123:90,144:92,145:93,124:105,125:106,126:107,133:110,134:111,135:114,41:119,71:120,16:$Vp,22:$V8,24:$Vq,25:$Vr,26:$Vs,34:$Vt,35:$V9,40:$Vu,44:$Vv,49:$Vw,61:$Vx,62:$Vl,67:$Vy,72:$Vz,76:$Va,87:$VA,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,100:$VL,101:$VM,104:$VN,121:$VO,122:$VP,132:$VQ,136:$VR,137:$VS,138:$VT,139:$VU}),o($VV,[2,111],{14:[1,125],22:[1,124],35:[1,123],67:[1,126]}),{22:[1,127],35:[1,128]},o($Vn,[2,125]),o($Vb,[2,8]),o($Vb,[2,9]),o($Vb,[2,10]),o($Vb,[2,11]),o($Vb,[2,12]),o($Vb,[2,13]),o($Vb,[2,14]),{19:129,20:130,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},o($Vb,[2,27],{64:$V_}),o($Vb,[2,28],{64:$V_}),o($Vb,[2,29]),o($Vb,[2,45]),o($Vb,[2,46]),o($Vb,[2,47]),o($V$,[2,48],{50:137,51:138,44:$V01,56:$V11,57:$V21,58:$V31,59:$V41}),o($V51,[2,52],{47:144,60:$V61,61:$V71}),o($V51,[2,53],{47:147,60:$V61,61:$V71}),o($V51,[2,54],{47:148,60:$V61,61:$V71}),o($V51,[2,55],{47:149,60:$V61,61:$V71}),o($Vb,[2,30]),o($V81,[2,32],{38:150,37:151,67:$Vm}),o($V91,[2,33],{68:154,69:156,44:[1,155],66:$Va1,67:$Vb1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,34],{40:[1,157]}),o($Vb,[2,35]),o($V81,[2,37],{37:158,67:$Vm}),o($Vb,[2,38]),o($Vb,[2,39]),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,40],{69:156,68:159,47:160,44:$Vc1,60:$V61,61:$V71}),o($Vb,[2,41]),o($Vb,[2,42]),o([63,64],$Vd,{28:162}),o($Vd1,[2,72]),o($V$,$Ve1,{50:137,51:138,44:$V01,56:$V11,57:$V21,58:$V31,59:$V41}),{47:163,60:$V61,61:$V71},{31:53,33:164,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},o($Vn,[2,100]),o($Vn,[2,101]),o($Vn,[2,103]),o($Vn,[2,104]),o($Vn,[2,105]),o($Vn,[2,106]),o($Vn,[2,107]),o($Vo,$V7,{77:69,73:165}),o($Vn,[2,99]),{16:$Vp,22:$V8,24:$Vq,25:$Vr,26:$Vs,34:$Vt,35:$V9,36:89,40:$Vu,41:119,44:$Vv,49:$Vw,61:$Vx,62:$Vl,67:$Vy,71:120,72:$Vz,74:70,76:$Va,80:71,81:72,82:73,83:74,84:75,85:76,86:77,87:$VA,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,121:$VO,122:$VP,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,144:92,145:93},o($Vn,[2,109]),o($Vn,[2,131]),o($Vn,[2,132]),o($Vn,[2,133]),o($Vn,[2,134]),o($Vn,[2,135]),o($Vn,[2,136]),o($Vn,[2,137]),o($Vn,[2,138]),o($Vn,[2,139]),o($Vf1,$Vg1,{88:167,34:[1,172],44:[1,166],66:$Vh1,87:$Vi1,89:[1,170],90:[1,171],91:[1,173],92:[1,174],93:[1,175],94:[1,176],95:[1,177],96:[1,178],97:[1,179],98:[1,180]}),{16:$Vj1,25:$Vk1,30:$Vl1,32:$Vm1,34:$Vn1,40:$Vu,41:119,44:$Vo1,49:$Vw,67:[1,181],71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vn,[2,159]),o($Vr1,$Vs1,{37:193,67:$Vm}),o($Vn,[2,161]),o($Vn,[2,162]),o($Vn,[2,163]),o($Vn,[2,164]),o($Vn,[2,165]),o($Vn,[2,210]),o($Vr1,[2,253],{140:194,37:195,143:197,66:[1,196],67:$Vm}),{16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,66:[1,199],71:120,72:$Vz,80:201,82:200,84:202,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,142:198},o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,132,136,137,138,139],[2,272],{122:[1,205]}),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,122,132,136,137,138,139],[2,273],{121:[1,206]}),{24:[1,214],44:[1,220],66:[1,222],67:$Vv1,72:[1,211],87:[1,212],102:207,103:208,105:209,107:[1,210],108:213,109:215,110:216,112:217,113:[1,225],114:[1,226],115:[1,227],116:[1,228],117:[1,223],118:[1,224],121:[1,218],122:[1,219]},o($Vn,[2,168]),o($Vn,[2,169]),o($Vn,[2,170]),o($Vn,[2,171]),o($Vn,[2,172]),o($Vn,[2,173]),o($Vn,[2,174]),o($Vn,[2,175]),o($Vn,[2,176]),o($Vn,[2,177]),o($Vw1,[2,211]),o($Vw1,[2,212]),{25:$Vx1,41:119,49:$Vw,71:120,72:$Vz,125:229,135:230},o($Vn,[2,274]),o($Vn,[2,276]),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,240],{61:[1,232]}),o($Vw1,[2,242]),o($Vf1,[2,233],{66:[1,234],132:[1,233]}),o($Vf1,[2,234],{40:[1,235]}),o($Vw1,[2,243],{128:236,129:237,130:238,79:$Vy1,131:$Vz1}),o($Vw1,[2,249]),o($Vw1,[2,250]),o($Vw1,[2,251]),o($Vw1,[2,252]),o($VA1,[2,247]),o($VA1,[2,248]),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$Ve1),o($VA1,[2,97]),o($Vn,[2,112]),o($Vn,[2,117]),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,118],{35:[1,241]}),o($VB1,[2,121],{78:242,61:$VC1,79:$VD1}),o($VV,[2,113],{14:[1,247],22:[1,246],35:[1,245],67:[1,248]}),o($Vn,[2,114]),{13:[1,249]},{13:[2,17],21:250,22:$VE1,23:$VW,24:$VX,25:$VY,26:$VZ},o($VF1,[2,18]),o($VF1,[2,21]),{20:252,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},{20:253,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},{20:254,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,63,64,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,69]),o($V$,[2,49],{51:255,44:$V01,58:$V31,59:$V41}),o($Vb,[2,50]),o($VG1,[2,60]),o($VG1,[2,61]),o($Vb,[2,62]),o($Vb,[2,63]),o($Vb,[2,64]),o($Vb,[2,56]),{37:256,67:$Vm},{37:257,67:$Vm},o($Vb,[2,57]),o($Vb,[2,58]),o($Vb,[2,59]),{40:[1,258]},{66:$Va1,67:$Vb1},o($Vd1,[2,73]),{37:259,67:$Vm},o($V$,[2,76],{69:260,44:$Vc1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,77],{69:156,68:261,47:262,40:$VH1,44:$Vc1,60:$V61,61:$V71}),o($Vb,[2,88]),{37:264,67:$Vm},o($V91,[2,84],{69:156,68:265,44:[1,266],67:$Vb1}),o($V$,[2,82],{69:260,44:$Vc1}),o($V$,[2,44],{69:156,68:267,44:$Vc1}),{40:$VH1},{63:[1,268],64:$V_},o($Vb,[2,43]),o($Vb,[2,31]),o($Vn,[2,108]),o($Vn,[2,140]),o($Vn,[2,141]),o($Vf1,[2,235]),o($Vf1,[2,238]),o($Vn,[2,144]),o($Vn,[2,145]),o($Vn,[2,146]),o($Vn,[2,147]),o($Vn,[2,148]),o($Vn,[2,149]),o($Vn,[2,150]),o($Vn,[2,151]),o($Vn,[2,152]),o($Vn,[2,153]),o($Vn,[2,154]),o($VB1,[2,142],{78:269,61:$VC1,79:$VD1}),{35:[1,270]},{31:53,33:271,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{31:53,33:272,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{35:[1,273]},{14:[1,274],16:[1,278],25:[1,277],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,100:[1,276],124:275,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o([5,13,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,216],{14:[1,279]}),o($VI1,[2,217]),{25:[1,281],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:280,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:282,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{41:119,49:$Vw,71:120,72:$Vz,135:230},o($Vf1,$Vg1,{66:$Vh1,87:$Vi1}),o($VJ1,[2,280],{35:[1,283],67:$Vb1}),o($Vn,[2,254]),o($Vr1,[2,267],{143:285,66:[1,284],67:$Vb1}),o($VK1,$VL1,{37:286,67:$Vm}),o($Vn,[2,268],{66:$VM1}),{15:[1,288],16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:290,82:289,84:291,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:201,82:200,84:202,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,142:292},o($VN1,[2,259]),{25:$Vx1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,82:293,87:$Vp1,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{25:$Vx1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,82:294,87:$Vp1,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VN1,$Vs1),{16:$Vj1,25:$Vk1,30:$Vl1,32:$Vm1,34:$Vn1,40:$Vu,41:119,44:$Vo1,49:$Vw,71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vn,[2,275]),o($Vn,[2,277]),{101:[1,295]},{101:[1,296]},{16:[1,300],24:[1,299],40:[1,298],101:[2,178],106:297},{101:[2,181]},{101:[2,182]},{101:[2,183]},{67:$VO1,101:[2,184]},{67:$Vv1,108:302},{61:[1,303],66:[1,304],101:[2,187]},{101:[2,193],111:305,119:[1,306],120:[1,307]},{16:[1,309],24:[1,308]},o($VP1,[2,205]),o($VP1,[2,206]),o($VP1,[2,207]),o($VQ1,[2,189]),o($VR1,[2,191]),o($VS1,[2,201]),o($VS1,[2,202]),o($VT1,[2,197]),o($VT1,[2,198]),o($VT1,[2,199]),o($VT1,[2,200]),o($Vw1,[2,213]),o($Vw1,[2,245],{129:237,130:238,128:310,79:$Vy1,131:$Vz1}),{16:$Vj1,25:$Vk1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vw1,[2,241]),o($Vf1,[2,236]),o($Vf1,[2,239]),o($Vf1,[2,237]),o($Vw1,[2,244]),o($Vw1,[2,226],{79:[1,311]}),o($Vw1,[2,227],{131:[1,312]}),o($VU1,[2,228]),o($VV1,[2,230]),o($Vn,[2,119]),o($VB1,[2,122],{61:$VW1,79:$VX1}),{67:[1,315]},{67:[1,316]},o($Vn,[2,115]),{35:[1,317]},o($Vn,[2,120]),o($VB1,[2,123],{78:318,61:$VC1,79:$VD1}),o($Vb,[2,16]),o($VF1,[2,19]),o($VF1,[2,20]),{16:[1,319],21:250,22:$VE1,23:$VW,24:$VX,25:$VY,26:$VZ},{14:[1,320],15:[1,321],21:250,22:$VE1,23:$VW,24:$VX,25:$VY,26:$VZ},{14:[1,323],15:[1,322],21:250,22:$VE1,23:$VW,24:$VX,25:$VY,26:$VZ},o($Vb,[2,51]),o($V81,[2,65],{67:$Vb1}),o($V81,[2,66],{67:$Vb1}),{37:324,67:$Vm},o($V81,[2,71],{67:$Vb1}),o($Vb,[2,89]),o($V$,[2,78],{69:260,44:$Vc1}),o($V$,[2,79],{69:156,68:325,44:$Vc1}),{36:327,37:328,41:331,44:$VY1,47:329,49:$Vw,60:$V61,61:$V71,62:$Vl,67:$Vm,70:326},o($V81,[2,74],{67:$Vb1}),o($V$,[2,85],{69:260,44:$Vc1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,86],{69:156,68:332,40:$VH1,44:$Vc1}),o($V$,[2,83],{69:260,44:$Vc1}),o($Vb,[2,67]),o($VB1,[2,143],{61:$VW1,79:$VX1}),{31:53,33:333,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{14:[1,334]},{14:[1,335]},{31:53,33:336,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},o($Vw1,[2,214]),o($VI1,[2,218]),{25:[1,338],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:337,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:339,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VI1,[2,225]),o($Vw1,[2,215]),o($VI1,[2,219]),{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:340,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VI1,[2,221]),{37:341,67:$Vm},o($VK1,$VL1,{37:342,67:$Vm}),o($Vn,[2,269],{66:$VM1}),o($Vr1,[2,266],{67:$Vb1}),o($Vw1,[2,271]),o($Vn,[2,257]),o($VN1,[2,261]),o($VN1,[2,262]),o($VN1,[2,263]),{15:[1,343],16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:290,82:289,84:291,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VN1,[2,260]),o($VN1,[2,264]),o($Vn,[2,166]),o($Vn,[2,167]),{101:[2,179]},{36:327,37:328,41:331,44:$VY1,47:329,49:$Vw,60:$V61,61:$V71,62:$Vl,67:$Vm,70:344},{101:[2,208]},{101:[2,209]},o($VQ1,[2,190]),{16:[1,345],67:$VO1,101:[2,186]},{101:[2,188]},o($VR1,[2,192]),{101:[2,194]},{101:[2,203]},{101:[2,204]},{101:[2,195]},{101:[2,196]},o($Vw1,[2,246]),o($VU1,[2,229]),o($VV1,[2,231]),{67:[1,346]},{67:[1,347]},o($VZ1,[2,126]),o($VZ1,[2,127]),o($Vn,[2,116]),o($VB1,[2,124],{61:$VW1,79:$VX1}),o($VF1,[2,22]),o($VF1,[2,23]),o($VF1,[2,25]),o($VF1,[2,24]),o($VF1,[2,26]),o($V81,[2,36],{67:$Vb1}),o($V$,[2,80],{69:260,44:$Vc1}),o($Vb,[2,90]),o($Vb,[2,91]),o($V81,[2,92],{67:$Vb1}),o($Vb,[2,93]),o($Vb,[2,94]),o($Vb,[2,95]),o($V$,[2,87],{69:260,44:$Vc1}),{14:[1,348]},o($Vn,[2,156]),o($Vn,[2,157]),{14:[1,349]},o($VI1,[2,220]),{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:350,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VI1,[2,222]),o($VI1,[2,224]),o($VJ1,[2,279],{35:[1,351],67:$Vb1}),o($Vr1,[2,265],{67:$Vb1}),o($Vn,[2,258]),{101:[2,180]},{101:[2,185]},o($VZ1,[2,128]),o($VZ1,[2,129]),o($Vn,[2,155]),o($Vn,[2,158]),o($VI1,[2,223]),{37:352,67:$Vm},o($Vr1,[2,278],{67:$Vb1})],
|
|
506
|
+
defaultActions: {14:[2,1],210:[2,181],211:[2,182],212:[2,183],297:[2,179],299:[2,208],300:[2,209],303:[2,188],305:[2,194],306:[2,203],307:[2,204],308:[2,195],309:[2,196],344:[2,180],345:[2,185]},
|
|
501
507
|
parseError: function parseError (str, hash) {
|
|
502
508
|
if (hash.recoverable) {
|
|
503
509
|
this.trace(str);
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import parse from "../abc/parser.js";
|
|
7
7
|
import { Phonet, Accidental, ArticulationType, OrnamentType, DynamicType, HairpinType, PedalType, NavigationMarkType, Placement, } from "./types.js";
|
|
8
8
|
import { parseStaffLayout, StaffGroupType } from "./staffLayout.js";
|
|
9
|
+
import { buildMeasureLayout, applyNavText } from "./measureLayoutFromXml.js";
|
|
9
10
|
// ============ Constants ============
|
|
10
11
|
// NotaGen catalog tags appear as leading single-% comments in ABC files,
|
|
11
12
|
// in the order: period, composer, instrumentation. They are mapped to
|
|
@@ -406,6 +407,112 @@ const convertBarline = (bar) => {
|
|
|
406
407
|
return "|";
|
|
407
408
|
}
|
|
408
409
|
};
|
|
410
|
+
// First integer of a volta spec ("2" from "2", "1" from "1,2", "1" from "1,3,5").
|
|
411
|
+
const firstVoltaNum = (spec) => {
|
|
412
|
+
const m = spec.match(/\d+/);
|
|
413
|
+
return m ? parseInt(m[0], 10) : 1;
|
|
414
|
+
};
|
|
415
|
+
// Pull a trailing volta digit list out of a bar string: ":|1,2" → "1,2", "|2" → "2",
|
|
416
|
+
// "|" / ":|" / "|]" → undefined. (The repeat glyph is stripped; only the volta remains.)
|
|
417
|
+
const trailVoltaOf = (bar) => {
|
|
418
|
+
const m = bar.match(/(\d+(?:,\d+)*)$/);
|
|
419
|
+
return m ? m[1] : undefined;
|
|
420
|
+
};
|
|
421
|
+
/**
|
|
422
|
+
* Build a MeasureRepeatInfo[] from the per-measure ABC bar tokens, mirroring how
|
|
423
|
+
* abc2xml maps ABC bars to MusicXML <repeat>/<ending> (so this converges with the
|
|
424
|
+
* MusicXML→lilylet path through the shared buildMeasureLayout). One entry per lilylet
|
|
425
|
+
* measure (indices are 1:1 — the decoder never merges bars).
|
|
426
|
+
*
|
|
427
|
+
* ABC convention (matches abc2xml): a repeat-START "|:" / volta-START "[1" attaches to
|
|
428
|
+
* the bar PRECEDING the measure it opens, i.e. the trailing bar of measure N opens the
|
|
429
|
+
* repeat/volta of measure N+1. A repeat-END ":|" closes ON measure N. "::"/":|:" both
|
|
430
|
+
* ends (on N) and starts (on N+1). The 3×-repeat forms ("|::"/"::|") are treated as a
|
|
431
|
+
* plain 2× backward+forward pair, exactly as abc2xml emits them.
|
|
432
|
+
*/
|
|
433
|
+
const collectAbcRepeatInfo = (bars) => {
|
|
434
|
+
const n = bars.length;
|
|
435
|
+
const infos = [];
|
|
436
|
+
for (let i = 0; i < n; i++)
|
|
437
|
+
infos.push({ index: i + 1 });
|
|
438
|
+
// Track the currently-open volta so we can close it (endingStop) when the next
|
|
439
|
+
// volta opens or a repeat ends — abc2xml back-patches the stop onto the prior
|
|
440
|
+
// measure's right barline; here we set endingStop on the measure before the new one.
|
|
441
|
+
let openEndingStart = -1; // measure index (1-based) where the current volta began
|
|
442
|
+
const closeOpenEnding = (lastIndex) => {
|
|
443
|
+
if (openEndingStart >= 1 && lastIndex >= openEndingStart) {
|
|
444
|
+
infos[lastIndex - 1].endingStop = infos[openEndingStart - 1].endingStart;
|
|
445
|
+
}
|
|
446
|
+
openEndingStart = -1;
|
|
447
|
+
};
|
|
448
|
+
// ABC marks the "to coda" jump origin and the coda landing with the SAME !coda!
|
|
449
|
+
// glyph: the first occurrence is the To-Coda jump, the second is the Coda section.
|
|
450
|
+
// (applyNavText can't tell them apart from a lone "coda" word, so disambiguate here.)
|
|
451
|
+
let codaSeen = 0;
|
|
452
|
+
for (let i = 0; i < n; i++) {
|
|
453
|
+
const idx = i + 1; // 1-based measure index
|
|
454
|
+
const info = infos[i];
|
|
455
|
+
const { trailBar, leadVolta, navTexts } = bars[i];
|
|
456
|
+
// Navigation directives / glyphs (D.C./D.S./al Fine/al Coda, Fine, Coda, Segno)
|
|
457
|
+
// → MeasureRepeatInfo flags via the shared recognizer, so ABC and MusicXML derive
|
|
458
|
+
// the same jumps. The first !coda! is the To-Coda origin, the second the landing.
|
|
459
|
+
for (const raw of navTexts || []) {
|
|
460
|
+
if (/\bcoda\b/i.test(raw) && !/\b(to|al)\s*coda\b/i.test(raw)) {
|
|
461
|
+
// bare "Coda" glyph: 1st = tocoda origin, 2nd = coda landing
|
|
462
|
+
if (codaSeen === 0)
|
|
463
|
+
info.tocoda = true;
|
|
464
|
+
else
|
|
465
|
+
info.coda = true;
|
|
466
|
+
codaSeen++;
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
applyNavText(info, raw);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
// A bracket-volta term ("[1") at the START of this measure opens an ending here.
|
|
473
|
+
if (leadVolta !== undefined) {
|
|
474
|
+
if (openEndingStart >= 1 && openEndingStart !== idx)
|
|
475
|
+
closeOpenEnding(idx - 1);
|
|
476
|
+
info.endingStart = firstVoltaNum(leadVolta);
|
|
477
|
+
openEndingStart = idx;
|
|
478
|
+
}
|
|
479
|
+
if (!trailBar)
|
|
480
|
+
continue;
|
|
481
|
+
// Repeat END on this measure: any bar beginning with ":|" or "::".
|
|
482
|
+
// Consistency note: like abc2xml, we do NOT honor the ABC 3×-repeat forms
|
|
483
|
+
// ("|::"/"::|") as a times count — abc2xml emits them as a plain backward+forward
|
|
484
|
+
// repeat pair (2×), and matching that keeps the ABC and MusicXML paths identical.
|
|
485
|
+
const isEndStart = trailBar === ":|:" || trailBar === ":||:" || trailBar === "::";
|
|
486
|
+
const isEnd = trailBar.startsWith(":|") || trailBar.startsWith("::");
|
|
487
|
+
if (isEnd) {
|
|
488
|
+
info.repeatEnd = true;
|
|
489
|
+
closeOpenEnding(idx);
|
|
490
|
+
}
|
|
491
|
+
// Repeat START opened by this trailing bar attaches to the NEXT measure
|
|
492
|
+
// ("|:" forward, ":|:"/"::"/":||:" end-and-start).
|
|
493
|
+
const startsNext = trailBar.includes("|:") || isEndStart;
|
|
494
|
+
if (startsNext && idx < n) {
|
|
495
|
+
infos[idx].repeatStart = true;
|
|
496
|
+
}
|
|
497
|
+
// A trailing volta digit ("|2", ":|1,2") opens an ending on the NEXT measure.
|
|
498
|
+
const tv = trailVoltaOf(trailBar);
|
|
499
|
+
if (tv !== undefined && idx < n) {
|
|
500
|
+
if (openEndingStart >= 1)
|
|
501
|
+
closeOpenEnding(idx);
|
|
502
|
+
infos[idx].endingStart = firstVoltaNum(tv);
|
|
503
|
+
openEndingStart = idx + 1;
|
|
504
|
+
}
|
|
505
|
+
else if ((trailBar === "||" || trailBar === "|]" || trailBar === ":|]") && openEndingStart >= 1 && openEndingStart <= idx) {
|
|
506
|
+
// A section bar ("||", final "|]") closes an open ending here — matching
|
|
507
|
+
// abc2xml, which stops the volta at the next structural bar (so a trailing
|
|
508
|
+
// final ending like ":|2 …||" is a single section, not run to piece end).
|
|
509
|
+
closeOpenEnding(idx);
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
// Close a still-open final volta at the last measure.
|
|
513
|
+
closeOpenEnding(n);
|
|
514
|
+
return infos;
|
|
515
|
+
};
|
|
409
516
|
// All voice numbers under a node, flattened.
|
|
410
517
|
const collectScoreVoices = (node) => {
|
|
411
518
|
if (typeof node === "string") {
|
|
@@ -1230,6 +1337,10 @@ const decodeTune = (tune, options = {}) => {
|
|
|
1230
1337
|
const voiceKeyAlterations = new Map();
|
|
1231
1338
|
// Process each ABC measure into Lilylet Measure
|
|
1232
1339
|
const lilyletMeasures = [];
|
|
1340
|
+
// Per-measure repeat markup (trailing bar + leading bracket-volta), gathered for the
|
|
1341
|
+
// reference voice so we can derive metadata.measureLayout after the loop. ABC repeat
|
|
1342
|
+
// markup is voice-global by convention, so one voice suffices.
|
|
1343
|
+
const barInfos = [];
|
|
1233
1344
|
for (let mi = 0; mi < measures.length; mi++) {
|
|
1234
1345
|
const abcMeasure = measures[mi];
|
|
1235
1346
|
// Group patches by voice number
|
|
@@ -1241,6 +1352,52 @@ const decodeTune = (tune, options = {}) => {
|
|
|
1241
1352
|
}
|
|
1242
1353
|
voicePatches.get(voiceNum).push(patch);
|
|
1243
1354
|
}
|
|
1355
|
+
// Capture this measure's repeat markup from the reference voice (the lowest
|
|
1356
|
+
// voice number present). trailBar = its raw trailing bar; leadVolta = a "[N"
|
|
1357
|
+
// bracket-volta term at the start of its music. Navigation directives/glyphs
|
|
1358
|
+
// (!D.C.!/!D.S.!/!fine!/!coda!/!segno!) are gathered from ALL voices, since an
|
|
1359
|
+
// engraver may place them on any single staff of a grand-staff system.
|
|
1360
|
+
{
|
|
1361
|
+
const refVoice = Math.min(...Array.from(voicePatches.keys()));
|
|
1362
|
+
const refPatches = voicePatches.get(refVoice) || [];
|
|
1363
|
+
let trailBar = null;
|
|
1364
|
+
let leadVolta;
|
|
1365
|
+
for (const p of refPatches) {
|
|
1366
|
+
if (p.bar)
|
|
1367
|
+
trailBar = p.bar; // last non-null trailing bar wins
|
|
1368
|
+
if (leadVolta === undefined) {
|
|
1369
|
+
const vt = (p.terms || []).find((t) => t.volta !== undefined);
|
|
1370
|
+
if (vt)
|
|
1371
|
+
leadVolta = vt.volta;
|
|
1372
|
+
}
|
|
1373
|
+
}
|
|
1374
|
+
const navTexts = [];
|
|
1375
|
+
for (const patches of voicePatches.values()) {
|
|
1376
|
+
for (const p of patches) {
|
|
1377
|
+
for (const t of (p.terms || [])) {
|
|
1378
|
+
// !D.C.!/!D.S.! (incl. "al fine"/"al coda") → directive text.
|
|
1379
|
+
if (typeof t.directive === "string")
|
|
1380
|
+
navTexts.push(t.directive);
|
|
1381
|
+
// !fine!/!coda!/!segno! decorations parse to an articulation name.
|
|
1382
|
+
else if (t.articulation === "fine" || t.articulation === "coda" || t.articulation === "segno") {
|
|
1383
|
+
navTexts.push(t.articulation);
|
|
1384
|
+
}
|
|
1385
|
+
// A quoted text annotation that is EXACTLY a navigation word
|
|
1386
|
+
// ("Fine", "D.C. al Fine", "Coda", …) is treated as navigation, as
|
|
1387
|
+
// abc2xml does. Strip the placement prefix (^/_/</>/@) and trailing
|
|
1388
|
+
// punctuation; require a pure nav phrase so ordinary text/lyrics are
|
|
1389
|
+
// not misread.
|
|
1390
|
+
else if (typeof t.text === "string") {
|
|
1391
|
+
const body = t.text.replace(/^[\^_<>@]/, "").trim().replace(/[.\s]+$/, "");
|
|
1392
|
+
if (/^(d\.?\s*[cs]\.?(\s+al\s+(fine|coda))?|fine|coda|segno|to\s*coda)$/i.test(body)) {
|
|
1393
|
+
navTexts.push(body);
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
barInfos.push({ trailBar, leadVolta, navTexts: navTexts.length ? navTexts : undefined });
|
|
1400
|
+
}
|
|
1244
1401
|
// Process each voice
|
|
1245
1402
|
const partVoicesMap = new Map(); // partIndex → (staffNum → voices)
|
|
1246
1403
|
for (const [voiceNum, patches] of voicePatches) {
|
|
@@ -1346,6 +1503,16 @@ const decodeTune = (tune, options = {}) => {
|
|
|
1346
1503
|
});
|
|
1347
1504
|
}
|
|
1348
1505
|
}
|
|
1506
|
+
// Derive a performance-order measure layout from the ABC repeat/volta markup,
|
|
1507
|
+
// converging with the MusicXML path via the shared buildMeasureLayout. Emitted as
|
|
1508
|
+
// metadata.measureLayout → serialized [measures "..."] → MEI <expansion>.
|
|
1509
|
+
try {
|
|
1510
|
+
const repeatInfos = collectAbcRepeatInfo(barInfos);
|
|
1511
|
+
const layout = buildMeasureLayout(repeatInfos, repeatInfos.length);
|
|
1512
|
+
if (layout)
|
|
1513
|
+
metadata.measureLayout = layout;
|
|
1514
|
+
}
|
|
1515
|
+
catch { /* repeat derivation is best-effort; never block decode */ }
|
|
1349
1516
|
const doc = {
|
|
1350
1517
|
measures: lilyletMeasures,
|
|
1351
1518
|
};
|