UNPKG

78.2 kBJavaScriptView Raw
1import { select } from "d3";
2import { K as defaultConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, t as getDiagramTitle, c as getConfig, l as log, u as utils, v as clear$1, e as common } from "./mermaid-6dc72991.js";
3var parser = function() {
4 var o = function(k, v, o2, l) {
5 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
6 ;
7 return o2;
8 }, $V0 = [1, 4], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 8, 9, 10, 11, 27, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $V4 = [2, 2], $V5 = [1, 13], $V6 = [1, 14], $V7 = [1, 15], $V8 = [1, 16], $V9 = [1, 23], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 49], $Ve = [1, 48], $Vf = [1, 29], $Vg = [1, 30], $Vh = [1, 31], $Vi = [1, 32], $Vj = [1, 33], $Vk = [1, 44], $Vl = [1, 46], $Vm = [1, 42], $Vn = [1, 47], $Vo = [1, 43], $Vp = [1, 50], $Vq = [1, 45], $Vr = [1, 51], $Vs = [1, 52], $Vt = [1, 34], $Vu = [1, 35], $Vv = [1, 36], $Vw = [1, 37], $Vx = [1, 57], $Vy = [1, 8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $Vz = [1, 61], $VA = [1, 60], $VB = [1, 62], $VC = [8, 9, 11, 73, 75], $VD = [1, 88], $VE = [1, 93], $VF = [1, 92], $VG = [1, 89], $VH = [1, 85], $VI = [1, 91], $VJ = [1, 87], $VK = [1, 94], $VL = [1, 90], $VM = [1, 95], $VN = [1, 86], $VO = [8, 9, 10, 11, 73, 75], $VP = [8, 9, 10, 11, 44, 73, 75], $VQ = [8, 9, 10, 11, 29, 42, 44, 46, 48, 50, 52, 54, 56, 58, 61, 63, 65, 66, 68, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VR = [8, 9, 11, 42, 58, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VS = [42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VT = [1, 121], $VU = [1, 120], $VV = [1, 128], $VW = [1, 142], $VX = [1, 143], $VY = [1, 144], $VZ = [1, 145], $V_ = [1, 130], $V$ = [1, 132], $V01 = [1, 136], $V11 = [1, 137], $V21 = [1, 138], $V31 = [1, 139], $V41 = [1, 140], $V51 = [1, 141], $V61 = [1, 146], $V71 = [1, 147], $V81 = [1, 126], $V91 = [1, 127], $Va1 = [1, 134], $Vb1 = [1, 129], $Vc1 = [1, 133], $Vd1 = [1, 131], $Ve1 = [8, 9, 10, 11, 27, 32, 34, 36, 38, 42, 58, 81, 82, 83, 84, 85, 86, 99, 102, 103, 106, 108, 111, 112, 113, 118, 119, 120, 121], $Vf1 = [1, 149], $Vg1 = [8, 9, 11], $Vh1 = [8, 9, 10, 11, 14, 42, 58, 86, 102, 103, 106, 108, 111, 112, 113], $Vi1 = [1, 169], $Vj1 = [1, 165], $Vk1 = [1, 166], $Vl1 = [1, 170], $Vm1 = [1, 167], $Vn1 = [1, 168], $Vo1 = [75, 113, 116], $Vp1 = [8, 9, 10, 11, 12, 14, 27, 29, 32, 42, 58, 73, 81, 82, 83, 84, 85, 86, 87, 102, 106, 108, 111, 112, 113], $Vq1 = [10, 103], $Vr1 = [31, 47, 49, 51, 53, 55, 60, 62, 64, 65, 67, 69, 113, 114, 115], $Vs1 = [1, 235], $Vt1 = [1, 233], $Vu1 = [1, 237], $Vv1 = [1, 231], $Vw1 = [1, 232], $Vx1 = [1, 234], $Vy1 = [1, 236], $Vz1 = [1, 238], $VA1 = [1, 255], $VB1 = [8, 9, 11, 103], $VC1 = [8, 9, 10, 11, 58, 81, 102, 103, 106, 107, 108, 109];
9 var parser2 = {
10 trace: function trace() {
11 },
12 yy: {},
13 symbols_: { "error": 2, "start": 3, "graphConfig": 4, "document": 5, "line": 6, "statement": 7, "SEMI": 8, "NEWLINE": 9, "SPACE": 10, "EOF": 11, "GRAPH": 12, "NODIR": 13, "DIR": 14, "FirstStmtSeparator": 15, "ending": 16, "endToken": 17, "spaceList": 18, "spaceListNewline": 19, "vertexStatement": 20, "separator": 21, "styleStatement": 22, "linkStyleStatement": 23, "classDefStatement": 24, "classStatement": 25, "clickStatement": 26, "subgraph": 27, "textNoTags": 28, "SQS": 29, "text": 30, "SQE": 31, "end": 32, "direction": 33, "acc_title": 34, "acc_title_value": 35, "acc_descr": 36, "acc_descr_value": 37, "acc_descr_multiline_value": 38, "link": 39, "node": 40, "styledVertex": 41, "AMP": 42, "vertex": 43, "STYLE_SEPARATOR": 44, "idString": 45, "DOUBLECIRCLESTART": 46, "DOUBLECIRCLEEND": 47, "PS": 48, "PE": 49, "(-": 50, "-)": 51, "STADIUMSTART": 52, "STADIUMEND": 53, "SUBROUTINESTART": 54, "SUBROUTINEEND": 55, "VERTEX_WITH_PROPS_START": 56, "NODE_STRING[field]": 57, "COLON": 58, "NODE_STRING[value]": 59, "PIPE": 60, "CYLINDERSTART": 61, "CYLINDEREND": 62, "DIAMOND_START": 63, "DIAMOND_STOP": 64, "TAGEND": 65, "TRAPSTART": 66, "TRAPEND": 67, "INVTRAPSTART": 68, "INVTRAPEND": 69, "linkStatement": 70, "arrowText": 71, "TESTSTR": 72, "START_LINK": 73, "edgeText": 74, "LINK": 75, "edgeTextToken": 76, "STR": 77, "MD_STR": 78, "textToken": 79, "keywords": 80, "STYLE": 81, "LINKSTYLE": 82, "CLASSDEF": 83, "CLASS": 84, "CLICK": 85, "DOWN": 86, "UP": 87, "textNoTagsToken": 88, "stylesOpt": 89, "idString[vertex]": 90, "idString[class]": 91, "CALLBACKNAME": 92, "CALLBACKARGS": 93, "HREF": 94, "LINK_TARGET": 95, "STR[link]": 96, "STR[tooltip]": 97, "alphaNum": 98, "DEFAULT": 99, "numList": 100, "INTERPOLATE": 101, "NUM": 102, "COMMA": 103, "style": 104, "styleComponent": 105, "NODE_STRING": 106, "UNIT": 107, "BRKT": 108, "PCT": 109, "idStringToken": 110, "MINUS": 111, "MULT": 112, "UNICODE_TEXT": 113, "TEXT": 114, "TAGSTART": 115, "EDGE_TEXT": 116, "alphaNumToken": 117, "direction_tb": 118, "direction_bt": 119, "direction_rl": 120, "direction_lr": 121, "$accept": 0, "$end": 1 },
14 terminals_: { 2: "error", 8: "SEMI", 9: "NEWLINE", 10: "SPACE", 11: "EOF", 12: "GRAPH", 13: "NODIR", 14: "DIR", 27: "subgraph", 29: "SQS", 31: "SQE", 32: "end", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 42: "AMP", 44: "STYLE_SEPARATOR", 46: "DOUBLECIRCLESTART", 47: "DOUBLECIRCLEEND", 48: "PS", 49: "PE", 50: "(-", 51: "-)", 52: "STADIUMSTART", 53: "STADIUMEND", 54: "SUBROUTINESTART", 55: "SUBROUTINEEND", 56: "VERTEX_WITH_PROPS_START", 57: "NODE_STRING[field]", 58: "COLON", 59: "NODE_STRING[value]", 60: "PIPE", 61: "CYLINDERSTART", 62: "CYLINDEREND", 63: "DIAMOND_START", 64: "DIAMOND_STOP", 65: "TAGEND", 66: "TRAPSTART", 67: "TRAPEND", 68: "INVTRAPSTART", 69: "INVTRAPEND", 72: "TESTSTR", 73: "START_LINK", 75: "LINK", 77: "STR", 78: "MD_STR", 81: "STYLE", 82: "LINKSTYLE", 83: "CLASSDEF", 84: "CLASS", 85: "CLICK", 86: "DOWN", 87: "UP", 90: "idString[vertex]", 91: "idString[class]", 92: "CALLBACKNAME", 93: "CALLBACKARGS", 94: "HREF", 95: "LINK_TARGET", 96: "STR[link]", 97: "STR[tooltip]", 99: "DEFAULT", 101: "INTERPOLATE", 102: "NUM", 103: "COMMA", 106: "NODE_STRING", 107: "UNIT", 108: "BRKT", 109: "PCT", 111: "MINUS", 112: "MULT", 113: "UNICODE_TEXT", 114: "TEXT", 115: "TAGSTART", 116: "EDGE_TEXT", 118: "direction_tb", 119: "direction_bt", 120: "direction_rl", 121: "direction_lr" },
15 productions_: [0, [3, 2], [5, 0], [5, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [4, 2], [4, 2], [4, 2], [4, 3], [16, 2], [16, 1], [17, 1], [17, 1], [17, 1], [15, 1], [15, 1], [15, 2], [19, 2], [19, 2], [19, 1], [19, 1], [18, 2], [18, 1], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 9], [7, 6], [7, 4], [7, 1], [7, 2], [7, 2], [7, 1], [21, 1], [21, 1], [21, 1], [20, 3], [20, 4], [20, 2], [20, 1], [40, 1], [40, 5], [41, 1], [41, 3], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 8], [43, 4], [43, 4], [43, 4], [43, 6], [43, 4], [43, 4], [43, 4], [43, 4], [43, 4], [43, 1], [39, 2], [39, 3], [39, 3], [39, 1], [39, 3], [74, 1], [74, 2], [74, 1], [74, 1], [70, 1], [71, 3], [30, 1], [30, 2], [30, 1], [30, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [80, 1], [28, 1], [28, 2], [28, 1], [28, 1], [24, 5], [25, 5], [26, 2], [26, 4], [26, 3], [26, 5], [26, 3], [26, 5], [26, 5], [26, 7], [26, 2], [26, 4], [26, 2], [26, 4], [26, 4], [26, 6], [22, 5], [23, 5], [23, 5], [23, 9], [23, 9], [23, 7], [23, 7], [100, 1], [100, 3], [89, 1], [89, 3], [104, 1], [104, 2], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [105, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [79, 1], [79, 1], [79, 1], [79, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [76, 1], [76, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [45, 1], [45, 2], [98, 1], [98, 2], [33, 1], [33, 1], [33, 1], [33, 1]],
16 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
17 var $0 = $$.length - 1;
18 switch (yystate) {
19 case 2:
20 this.$ = [];
21 break;
22 case 3:
23 if (!Array.isArray($$[$0]) || $$[$0].length > 0) {
24 $$[$0 - 1].push($$[$0]);
25 }
26 this.$ = $$[$0 - 1];
27 break;
28 case 4:
29 case 176:
30 this.$ = $$[$0];
31 break;
32 case 11:
33 yy.setDirection("TB");
34 this.$ = "TB";
35 break;
36 case 12:
37 yy.setDirection($$[$0 - 1]);
38 this.$ = $$[$0 - 1];
39 break;
40 case 27:
41 this.$ = $$[$0 - 1].nodes;
42 break;
43 case 28:
44 case 29:
45 case 30:
46 case 31:
47 case 32:
48 this.$ = [];
49 break;
50 case 33:
51 this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);
52 break;
53 case 34:
54 this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);
55 break;
56 case 35:
57 this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0);
58 break;
59 case 37:
60 this.$ = $$[$0].trim();
61 yy.setAccTitle(this.$);
62 break;
63 case 38:
64 case 39:
65 this.$ = $$[$0].trim();
66 yy.setAccDescription(this.$);
67 break;
68 case 43:
69 yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]);
70 this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) };
71 break;
72 case 44:
73 yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);
74 this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };
75 break;
76 case 45:
77 this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] };
78 break;
79 case 46:
80 this.$ = { stmt: $$[$0], nodes: $$[$0] };
81 break;
82 case 47:
83 this.$ = [$$[$0]];
84 break;
85 case 48:
86 this.$ = $$[$0 - 4].concat($$[$0]);
87 break;
88 case 49:
89 this.$ = $$[$0];
90 break;
91 case 50:
92 this.$ = $$[$0 - 2];
93 yy.setClass($$[$0 - 2], $$[$0]);
94 break;
95 case 51:
96 this.$ = $$[$0 - 3];
97 yy.addVertex($$[$0 - 3], $$[$0 - 1], "square");
98 break;
99 case 52:
100 this.$ = $$[$0 - 3];
101 yy.addVertex($$[$0 - 3], $$[$0 - 1], "doublecircle");
102 break;
103 case 53:
104 this.$ = $$[$0 - 5];
105 yy.addVertex($$[$0 - 5], $$[$0 - 2], "circle");
106 break;
107 case 54:
108 this.$ = $$[$0 - 3];
109 yy.addVertex($$[$0 - 3], $$[$0 - 1], "ellipse");
110 break;
111 case 55:
112 this.$ = $$[$0 - 3];
113 yy.addVertex($$[$0 - 3], $$[$0 - 1], "stadium");
114 break;
115 case 56:
116 this.$ = $$[$0 - 3];
117 yy.addVertex($$[$0 - 3], $$[$0 - 1], "subroutine");
118 break;
119 case 57:
120 this.$ = $$[$0 - 7];
121 yy.addVertex($$[$0 - 7], $$[$0 - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]]));
122 break;
123 case 58:
124 this.$ = $$[$0 - 3];
125 yy.addVertex($$[$0 - 3], $$[$0 - 1], "cylinder");
126 break;
127 case 59:
128 this.$ = $$[$0 - 3];
129 yy.addVertex($$[$0 - 3], $$[$0 - 1], "round");
130 break;
131 case 60:
132 this.$ = $$[$0 - 3];
133 yy.addVertex($$[$0 - 3], $$[$0 - 1], "diamond");
134 break;
135 case 61:
136 this.$ = $$[$0 - 5];
137 yy.addVertex($$[$0 - 5], $$[$0 - 2], "hexagon");
138 break;
139 case 62:
140 this.$ = $$[$0 - 3];
141 yy.addVertex($$[$0 - 3], $$[$0 - 1], "odd");
142 break;
143 case 63:
144 this.$ = $$[$0 - 3];
145 yy.addVertex($$[$0 - 3], $$[$0 - 1], "trapezoid");
146 break;
147 case 64:
148 this.$ = $$[$0 - 3];
149 yy.addVertex($$[$0 - 3], $$[$0 - 1], "inv_trapezoid");
150 break;
151 case 65:
152 this.$ = $$[$0 - 3];
153 yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_right");
154 break;
155 case 66:
156 this.$ = $$[$0 - 3];
157 yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_left");
158 break;
159 case 67:
160 this.$ = $$[$0];
161 yy.addVertex($$[$0]);
162 break;
163 case 68:
164 $$[$0 - 1].text = $$[$0];
165 this.$ = $$[$0 - 1];
166 break;
167 case 69:
168 case 70:
169 $$[$0 - 2].text = $$[$0 - 1];
170 this.$ = $$[$0 - 2];
171 break;
172 case 71:
173 this.$ = $$[$0];
174 break;
175 case 72:
176 var inf = yy.destructLink($$[$0], $$[$0 - 2]);
177 this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length, "text": $$[$0 - 1] };
178 break;
179 case 73:
180 this.$ = { text: $$[$0], type: "text" };
181 break;
182 case 74:
183 this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
184 break;
185 case 75:
186 this.$ = { text: $$[$0], type: "string" };
187 break;
188 case 76:
189 this.$ = { text: $$[$0], type: "markdown" };
190 break;
191 case 77:
192 var inf = yy.destructLink($$[$0]);
193 this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length };
194 break;
195 case 78:
196 this.$ = $$[$0 - 1];
197 break;
198 case 79:
199 this.$ = { text: $$[$0], type: "text" };
200 break;
201 case 80:
202 this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
203 break;
204 case 81:
205 this.$ = { text: $$[$0], type: "string" };
206 break;
207 case 82:
208 case 97:
209 this.$ = { text: $$[$0], type: "markdown" };
210 break;
211 case 94:
212 this.$ = { text: $$[$0], type: "text" };
213 break;
214 case 95:
215 this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
216 break;
217 case 96:
218 this.$ = { text: $$[$0], type: "text" };
219 break;
220 case 98:
221 this.$ = $$[$0 - 4];
222 yy.addClass($$[$0 - 2], $$[$0]);
223 break;
224 case 99:
225 this.$ = $$[$0 - 4];
226 yy.setClass($$[$0 - 2], $$[$0]);
227 break;
228 case 100:
229 case 108:
230 this.$ = $$[$0 - 1];
231 yy.setClickEvent($$[$0 - 1], $$[$0]);
232 break;
233 case 101:
234 case 109:
235 this.$ = $$[$0 - 3];
236 yy.setClickEvent($$[$0 - 3], $$[$0 - 2]);
237 yy.setTooltip($$[$0 - 3], $$[$0]);
238 break;
239 case 102:
240 this.$ = $$[$0 - 2];
241 yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
242 break;
243 case 103:
244 this.$ = $$[$0 - 4];
245 yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]);
246 yy.setTooltip($$[$0 - 4], $$[$0]);
247 break;
248 case 104:
249 this.$ = $$[$0 - 2];
250 yy.setLink($$[$0 - 2], $$[$0]);
251 break;
252 case 105:
253 this.$ = $$[$0 - 4];
254 yy.setLink($$[$0 - 4], $$[$0 - 2]);
255 yy.setTooltip($$[$0 - 4], $$[$0]);
256 break;
257 case 106:
258 this.$ = $$[$0 - 4];
259 yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]);
260 break;
261 case 107:
262 this.$ = $$[$0 - 6];
263 yy.setLink($$[$0 - 6], $$[$0 - 4], $$[$0]);
264 yy.setTooltip($$[$0 - 6], $$[$0 - 2]);
265 break;
266 case 110:
267 this.$ = $$[$0 - 1];
268 yy.setLink($$[$0 - 1], $$[$0]);
269 break;
270 case 111:
271 this.$ = $$[$0 - 3];
272 yy.setLink($$[$0 - 3], $$[$0 - 2]);
273 yy.setTooltip($$[$0 - 3], $$[$0]);
274 break;
275 case 112:
276 this.$ = $$[$0 - 3];
277 yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
278 break;
279 case 113:
280 this.$ = $$[$0 - 5];
281 yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]);
282 yy.setTooltip($$[$0 - 5], $$[$0 - 2]);
283 break;
284 case 114:
285 this.$ = $$[$0 - 4];
286 yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]);
287 break;
288 case 115:
289 this.$ = $$[$0 - 4];
290 yy.updateLink([$$[$0 - 2]], $$[$0]);
291 break;
292 case 116:
293 this.$ = $$[$0 - 4];
294 yy.updateLink($$[$0 - 2], $$[$0]);
295 break;
296 case 117:
297 this.$ = $$[$0 - 8];
298 yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);
299 yy.updateLink([$$[$0 - 6]], $$[$0]);
300 break;
301 case 118:
302 this.$ = $$[$0 - 8];
303 yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);
304 yy.updateLink($$[$0 - 6], $$[$0]);
305 break;
306 case 119:
307 this.$ = $$[$0 - 6];
308 yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);
309 break;
310 case 120:
311 this.$ = $$[$0 - 6];
312 yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);
313 break;
314 case 121:
315 case 123:
316 this.$ = [$$[$0]];
317 break;
318 case 122:
319 case 124:
320 $$[$0 - 2].push($$[$0]);
321 this.$ = $$[$0 - 2];
322 break;
323 case 126:
324 this.$ = $$[$0 - 1] + $$[$0];
325 break;
326 case 174:
327 this.$ = $$[$0];
328 break;
329 case 175:
330 this.$ = $$[$0 - 1] + "" + $$[$0];
331 break;
332 case 177:
333 this.$ = $$[$0 - 1] + "" + $$[$0];
334 break;
335 case 178:
336 this.$ = { stmt: "dir", value: "TB" };
337 break;
338 case 179:
339 this.$ = { stmt: "dir", value: "BT" };
340 break;
341 case 180:
342 this.$ = { stmt: "dir", value: "RL" };
343 break;
344 case 181:
345 this.$ = { stmt: "dir", value: "LR" };
346 break;
347 }
348 },
349 table: [{ 3: 1, 4: 2, 9: $V0, 10: $V1, 12: $V2 }, { 1: [3] }, o($V3, $V4, { 5: 6 }), { 4: 7, 9: $V0, 10: $V1, 12: $V2 }, { 4: 8, 9: $V0, 10: $V1, 12: $V2 }, { 13: [1, 9], 14: [1, 10] }, { 1: [2, 1], 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o($V3, [2, 9]), o($V3, [2, 10]), o($V3, [2, 11]), { 8: [1, 54], 9: [1, 55], 10: $Vx, 15: 53, 18: 56 }, o($Vy, [2, 3]), o($Vy, [2, 4]), o($Vy, [2, 5]), o($Vy, [2, 6]), o($Vy, [2, 7]), o($Vy, [2, 8]), { 8: $Vz, 9: $VA, 11: $VB, 21: 58, 39: 59, 70: 63, 73: [1, 64], 75: [1, 65] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 66 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 67 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 68 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 69 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 70 }, { 8: $Vz, 9: $VA, 10: [1, 71], 11: $VB, 21: 72 }, o($Vy, [2, 36]), { 35: [1, 73] }, { 37: [1, 74] }, o($Vy, [2, 39]), o($VC, [2, 46], { 18: 75, 10: $Vx }), { 10: [1, 76] }, { 10: [1, 77] }, { 10: [1, 78] }, { 10: [1, 79] }, { 14: $VD, 42: $VE, 58: $VF, 77: [1, 83], 86: $VG, 92: [1, 80], 94: [1, 81], 98: 82, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, o($Vy, [2, 178]), o($Vy, [2, 179]), o($Vy, [2, 180]), o($Vy, [2, 181]), o($VO, [2, 47]), o($VO, [2, 49], { 44: [1, 96] }), o($VP, [2, 67], { 110: 109, 29: [1, 97], 42: $Vd, 46: [1, 98], 48: [1, 99], 50: [1, 100], 52: [1, 101], 54: [1, 102], 56: [1, 103], 58: $Ve, 61: [1, 104], 63: [1, 105], 65: [1, 106], 66: [1, 107], 68: [1, 108], 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o($VQ, [2, 174]), o($VQ, [2, 135]), o($VQ, [2, 136]), o($VQ, [2, 137]), o($VQ, [2, 138]), o($VQ, [2, 139]), o($VQ, [2, 140]), o($VQ, [2, 141]), o($VQ, [2, 142]), o($VQ, [2, 143]), o($VQ, [2, 144]), o($VQ, [2, 145]), o($V3, [2, 12]), o($V3, [2, 18]), o($V3, [2, 19]), { 9: [1, 110] }, o($VR, [2, 26], { 18: 111, 10: $Vx }), o($Vy, [2, 27]), { 40: 112, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vy, [2, 40]), o($Vy, [2, 41]), o($Vy, [2, 42]), o($VS, [2, 71], { 71: 113, 60: [1, 115], 72: [1, 114] }), { 74: 116, 76: 117, 77: [1, 118], 78: [1, 119], 113: $VT, 116: $VU }, o([42, 58, 60, 72, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 77]), o($Vy, [2, 28]), o($Vy, [2, 29]), o($Vy, [2, 30]), o($Vy, [2, 31]), o($Vy, [2, 32]), { 10: $VV, 12: $VW, 14: $VX, 27: $VY, 28: 122, 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 77: [1, 124], 78: [1, 125], 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 123, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o($Ve1, $V4, { 5: 148 }), o($Vy, [2, 37]), o($Vy, [2, 38]), o($VC, [2, 45], { 42: $Vf1 }), { 42: $Vd, 45: 150, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 99: [1, 151], 100: 152, 102: [1, 153] }, { 42: $Vd, 45: 154, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 42: $Vd, 45: 155, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vg1, [2, 100], { 10: [1, 156], 93: [1, 157] }), { 77: [1, 158] }, o($Vg1, [2, 108], { 117: 160, 10: [1, 159], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 110], { 10: [1, 161] }), o($Vh1, [2, 176]), o($Vh1, [2, 163]), o($Vh1, [2, 164]), o($Vh1, [2, 165]), o($Vh1, [2, 166]), o($Vh1, [2, 167]), o($Vh1, [2, 168]), o($Vh1, [2, 169]), o($Vh1, [2, 170]), o($Vh1, [2, 171]), o($Vh1, [2, 172]), o($Vh1, [2, 173]), { 42: $Vd, 45: 162, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 30: 163, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 171, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 173, 48: [1, 172], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 174, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 175, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 176, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 106: [1, 177] }, { 30: 178, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 179, 63: [1, 180], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 181, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 182, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 183, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VQ, [2, 175]), o($V3, [2, 20]), o($VR, [2, 25]), o($VC, [2, 43], { 18: 184, 10: $Vx }), o($VS, [2, 68], { 10: [1, 185] }), { 10: [1, 186] }, { 30: 187, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 75: [1, 188], 76: 189, 113: $VT, 116: $VU }, o($Vo1, [2, 73]), o($Vo1, [2, 75]), o($Vo1, [2, 76]), o($Vo1, [2, 161]), o($Vo1, [2, 162]), { 8: $Vz, 9: $VA, 10: $VV, 11: $VB, 12: $VW, 14: $VX, 21: 191, 27: $VY, 29: [1, 190], 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 192, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o($Vp1, [2, 94]), o($Vp1, [2, 96]), o($Vp1, [2, 97]), o($Vp1, [2, 150]), o($Vp1, [2, 151]), o($Vp1, [2, 152]), o($Vp1, [2, 153]), o($Vp1, [2, 154]), o($Vp1, [2, 155]), o($Vp1, [2, 156]), o($Vp1, [2, 157]), o($Vp1, [2, 158]), o($Vp1, [2, 159]), o($Vp1, [2, 160]), o($Vp1, [2, 83]), o($Vp1, [2, 84]), o($Vp1, [2, 85]), o($Vp1, [2, 86]), o($Vp1, [2, 87]), o($Vp1, [2, 88]), o($Vp1, [2, 89]), o($Vp1, [2, 90]), o($Vp1, [2, 91]), o($Vp1, [2, 92]), o($Vp1, [2, 93]), { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 193], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vx, 18: 194 }, { 10: [1, 195], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 196] }, { 10: [1, 197], 103: [1, 198] }, o($Vq1, [2, 121]), { 10: [1, 199], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 200], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 77: [1, 201] }, o($Vg1, [2, 102], { 10: [1, 202] }), o($Vg1, [2, 104], { 10: [1, 203] }), { 77: [1, 204] }, o($Vh1, [2, 177]), { 77: [1, 205], 95: [1, 206] }, o($VO, [2, 50], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), { 31: [1, 207], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($Vr1, [2, 79]), o($Vr1, [2, 81]), o($Vr1, [2, 82]), o($Vr1, [2, 146]), o($Vr1, [2, 147]), o($Vr1, [2, 148]), o($Vr1, [2, 149]), { 47: [1, 209], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 210, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 49: [1, 211], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 51: [1, 212], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 53: [1, 213], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 55: [1, 214], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 58: [1, 215] }, { 62: [1, 216], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 64: [1, 217], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 218, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 31: [1, 219], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 220], 69: [1, 221], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 223], 69: [1, 222], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VC, [2, 44], { 42: $Vf1 }), o($VS, [2, 70]), o($VS, [2, 69]), { 60: [1, 224], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VS, [2, 72]), o($Vo1, [2, 74]), { 30: 225, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($Ve1, $V4, { 5: 226 }), o($Vp1, [2, 95]), o($Vy, [2, 35]), { 41: 227, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 228, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 239, 101: [1, 240], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 241, 101: [1, 242], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 102: [1, 243] }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 244, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 42: $Vd, 45: 245, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vg1, [2, 101]), { 77: [1, 246] }, { 77: [1, 247], 95: [1, 248] }, o($Vg1, [2, 109]), o($Vg1, [2, 111], { 10: [1, 249] }), o($Vg1, [2, 112]), o($VP, [2, 51]), o($Vr1, [2, 80]), o($VP, [2, 52]), { 49: [1, 250], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 59]), o($VP, [2, 54]), o($VP, [2, 55]), o($VP, [2, 56]), { 106: [1, 251] }, o($VP, [2, 58]), o($VP, [2, 60]), { 64: [1, 252], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 62]), o($VP, [2, 63]), o($VP, [2, 65]), o($VP, [2, 64]), o($VP, [2, 66]), o([10, 42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 78]), { 31: [1, 253], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 254], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o($VO, [2, 48]), o($Vg1, [2, 114], { 103: $VA1 }), o($VB1, [2, 123], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o($VC1, [2, 125]), o($VC1, [2, 127]), o($VC1, [2, 128]), o($VC1, [2, 129]), o($VC1, [2, 130]), o($VC1, [2, 131]), o($VC1, [2, 132]), o($VC1, [2, 133]), o($VC1, [2, 134]), o($Vg1, [2, 115], { 103: $VA1 }), { 10: [1, 257] }, o($Vg1, [2, 116], { 103: $VA1 }), { 10: [1, 258] }, o($Vq1, [2, 122]), o($Vg1, [2, 98], { 103: $VA1 }), o($Vg1, [2, 99], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o($Vg1, [2, 103]), o($Vg1, [2, 105], { 10: [1, 259] }), o($Vg1, [2, 106]), { 95: [1, 260] }, { 49: [1, 261] }, { 60: [1, 262] }, { 64: [1, 263] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 264 }, o($Vy, [2, 34]), { 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 104: 265, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o($VC1, [2, 126]), { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 266, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 267, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 95: [1, 268] }, o($Vg1, [2, 113]), o($VP, [2, 53]), { 30: 269, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 61]), o($Ve1, $V4, { 5: 270 }), o($VB1, [2, 124], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o($Vg1, [2, 119], { 117: 160, 10: [1, 271], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 120], { 117: 160, 10: [1, 272], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 107]), { 31: [1, 273], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 274], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 275, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 276, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o($VP, [2, 57]), o($Vy, [2, 33]), o($Vg1, [2, 117], { 103: $VA1 }), o($Vg1, [2, 118], { 103: $VA1 })],
350 defaultActions: {},
351 parseError: function parseError(str, hash) {
352 if (hash.recoverable) {
353 this.trace(str);
354 } else {
355 var error = new Error(str);
356 error.hash = hash;
357 throw error;
358 }
359 },
360 parse: function parse(input) {
361 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
362 var args = lstack.slice.call(arguments, 1);
363 var lexer2 = Object.create(this.lexer);
364 var sharedState = { yy: {} };
365 for (var k in this.yy) {
366 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
367 sharedState.yy[k] = this.yy[k];
368 }
369 }
370 lexer2.setInput(input, sharedState.yy);
371 sharedState.yy.lexer = lexer2;
372 sharedState.yy.parser = this;
373 if (typeof lexer2.yylloc == "undefined") {
374 lexer2.yylloc = {};
375 }
376 var yyloc = lexer2.yylloc;
377 lstack.push(yyloc);
378 var ranges = lexer2.options && lexer2.options.ranges;
379 if (typeof sharedState.yy.parseError === "function") {
380 this.parseError = sharedState.yy.parseError;
381 } else {
382 this.parseError = Object.getPrototypeOf(this).parseError;
383 }
384 function lex2() {
385 var token;
386 token = tstack.pop() || lexer2.lex() || EOF;
387 if (typeof token !== "number") {
388 if (token instanceof Array) {
389 tstack = token;
390 token = tstack.pop();
391 }
392 token = self.symbols_[token] || token;
393 }
394 return token;
395 }
396 var symbol, state, action, r, yyval = {}, p, len, newState, expected;
397 while (true) {
398 state = stack[stack.length - 1];
399 if (this.defaultActions[state]) {
400 action = this.defaultActions[state];
401 } else {
402 if (symbol === null || typeof symbol == "undefined") {
403 symbol = lex2();
404 }
405 action = table[state] && table[state][symbol];
406 }
407 if (typeof action === "undefined" || !action.length || !action[0]) {
408 var errStr = "";
409 expected = [];
410 for (p in table[state]) {
411 if (this.terminals_[p] && p > TERROR) {
412 expected.push("'" + this.terminals_[p] + "'");
413 }
414 }
415 if (lexer2.showPosition) {
416 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
417 } else {
418 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
419 }
420 this.parseError(errStr, {
421 text: lexer2.match,
422 token: this.terminals_[symbol] || symbol,
423 line: lexer2.yylineno,
424 loc: yyloc,
425 expected
426 });
427 }
428 if (action[0] instanceof Array && action.length > 1) {
429 throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
430 }
431 switch (action[0]) {
432 case 1:
433 stack.push(symbol);
434 vstack.push(lexer2.yytext);
435 lstack.push(lexer2.yylloc);
436 stack.push(action[1]);
437 symbol = null;
438 {
439 yyleng = lexer2.yyleng;
440 yytext = lexer2.yytext;
441 yylineno = lexer2.yylineno;
442 yyloc = lexer2.yylloc;
443 }
444 break;
445 case 2:
446 len = this.productions_[action[1]][1];
447 yyval.$ = vstack[vstack.length - len];
448 yyval._$ = {
449 first_line: lstack[lstack.length - (len || 1)].first_line,
450 last_line: lstack[lstack.length - 1].last_line,
451 first_column: lstack[lstack.length - (len || 1)].first_column,
452 last_column: lstack[lstack.length - 1].last_column
453 };
454 if (ranges) {
455 yyval._$.range = [
456 lstack[lstack.length - (len || 1)].range[0],
457 lstack[lstack.length - 1].range[1]
458 ];
459 }
460 r = this.performAction.apply(yyval, [
461 yytext,
462 yyleng,
463 yylineno,
464 sharedState.yy,
465 action[1],
466 vstack,
467 lstack
468 ].concat(args));
469 if (typeof r !== "undefined") {
470 return r;
471 }
472 if (len) {
473 stack = stack.slice(0, -1 * len * 2);
474 vstack = vstack.slice(0, -1 * len);
475 lstack = lstack.slice(0, -1 * len);
476 }
477 stack.push(this.productions_[action[1]][0]);
478 vstack.push(yyval.$);
479 lstack.push(yyval._$);
480 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
481 stack.push(newState);
482 break;
483 case 3:
484 return true;
485 }
486 }
487 return true;
488 }
489 };
490 var lexer = function() {
491 var lexer2 = {
492 EOF: 1,
493 parseError: function parseError(str, hash) {
494 if (this.yy.parser) {
495 this.yy.parser.parseError(str, hash);
496 } else {
497 throw new Error(str);
498 }
499 },
500 // resets the lexer, sets new input
501 setInput: function(input, yy) {
502 this.yy = yy || this.yy || {};
503 this._input = input;
504 this._more = this._backtrack = this.done = false;
505 this.yylineno = this.yyleng = 0;
506 this.yytext = this.matched = this.match = "";
507 this.conditionStack = ["INITIAL"];
508 this.yylloc = {
509 first_line: 1,
510 first_column: 0,
511 last_line: 1,
512 last_column: 0
513 };
514 if (this.options.ranges) {
515 this.yylloc.range = [0, 0];
516 }
517 this.offset = 0;
518 return this;
519 },
520 // consumes and returns one char from the input
521 input: function() {
522 var ch = this._input[0];
523 this.yytext += ch;
524 this.yyleng++;
525 this.offset++;
526 this.match += ch;
527 this.matched += ch;
528 var lines = ch.match(/(?:\r\n?|\n).*/g);
529 if (lines) {
530 this.yylineno++;
531 this.yylloc.last_line++;
532 } else {
533 this.yylloc.last_column++;
534 }
535 if (this.options.ranges) {
536 this.yylloc.range[1]++;
537 }
538 this._input = this._input.slice(1);
539 return ch;
540 },
541 // unshifts one char (or a string) into the input
542 unput: function(ch) {
543 var len = ch.length;
544 var lines = ch.split(/(?:\r\n?|\n)/g);
545 this._input = ch + this._input;
546 this.yytext = this.yytext.substr(0, this.yytext.length - len);
547 this.offset -= len;
548 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
549 this.match = this.match.substr(0, this.match.length - 1);
550 this.matched = this.matched.substr(0, this.matched.length - 1);
551 if (lines.length - 1) {
552 this.yylineno -= lines.length - 1;
553 }
554 var r = this.yylloc.range;
555 this.yylloc = {
556 first_line: this.yylloc.first_line,
557 last_line: this.yylineno + 1,
558 first_column: this.yylloc.first_column,
559 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
560 };
561 if (this.options.ranges) {
562 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
563 }
564 this.yyleng = this.yytext.length;
565 return this;
566 },
567 // When called from action, caches matched text and appends it on next action
568 more: function() {
569 this._more = true;
570 return this;
571 },
572 // 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.
573 reject: function() {
574 if (this.options.backtrack_lexer) {
575 this._backtrack = true;
576 } else {
577 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(), {
578 text: "",
579 token: null,
580 line: this.yylineno
581 });
582 }
583 return this;
584 },
585 // retain first n characters of the match
586 less: function(n) {
587 this.unput(this.match.slice(n));
588 },
589 // displays already matched input, i.e. for error messages
590 pastInput: function() {
591 var past = this.matched.substr(0, this.matched.length - this.match.length);
592 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
593 },
594 // displays upcoming input, i.e. for error messages
595 upcomingInput: function() {
596 var next = this.match;
597 if (next.length < 20) {
598 next += this._input.substr(0, 20 - next.length);
599 }
600 return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
601 },
602 // displays the character position where the lexing error occurred, i.e. for error messages
603 showPosition: function() {
604 var pre = this.pastInput();
605 var c = new Array(pre.length + 1).join("-");
606 return pre + this.upcomingInput() + "\n" + c + "^";
607 },
608 // test the lexed token: return FALSE when not a match, otherwise return token
609 test_match: function(match, indexed_rule) {
610 var token, lines, backup;
611 if (this.options.backtrack_lexer) {
612 backup = {
613 yylineno: this.yylineno,
614 yylloc: {
615 first_line: this.yylloc.first_line,
616 last_line: this.last_line,
617 first_column: this.yylloc.first_column,
618 last_column: this.yylloc.last_column
619 },
620 yytext: this.yytext,
621 match: this.match,
622 matches: this.matches,
623 matched: this.matched,
624 yyleng: this.yyleng,
625 offset: this.offset,
626 _more: this._more,
627 _input: this._input,
628 yy: this.yy,
629 conditionStack: this.conditionStack.slice(0),
630 done: this.done
631 };
632 if (this.options.ranges) {
633 backup.yylloc.range = this.yylloc.range.slice(0);
634 }
635 }
636 lines = match[0].match(/(?:\r\n?|\n).*/g);
637 if (lines) {
638 this.yylineno += lines.length;
639 }
640 this.yylloc = {
641 first_line: this.yylloc.last_line,
642 last_line: this.yylineno + 1,
643 first_column: this.yylloc.last_column,
644 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
645 };
646 this.yytext += match[0];
647 this.match += match[0];
648 this.matches = match;
649 this.yyleng = this.yytext.length;
650 if (this.options.ranges) {
651 this.yylloc.range = [this.offset, this.offset += this.yyleng];
652 }
653 this._more = false;
654 this._backtrack = false;
655 this._input = this._input.slice(match[0].length);
656 this.matched += match[0];
657 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
658 if (this.done && this._input) {
659 this.done = false;
660 }
661 if (token) {
662 return token;
663 } else if (this._backtrack) {
664 for (var k in backup) {
665 this[k] = backup[k];
666 }
667 return false;
668 }
669 return false;
670 },
671 // return next match in input
672 next: function() {
673 if (this.done) {
674 return this.EOF;
675 }
676 if (!this._input) {
677 this.done = true;
678 }
679 var token, match, tempMatch, index;
680 if (!this._more) {
681 this.yytext = "";
682 this.match = "";
683 }
684 var rules = this._currentRules();
685 for (var i = 0; i < rules.length; i++) {
686 tempMatch = this._input.match(this.rules[rules[i]]);
687 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
688 match = tempMatch;
689 index = i;
690 if (this.options.backtrack_lexer) {
691 token = this.test_match(tempMatch, rules[i]);
692 if (token !== false) {
693 return token;
694 } else if (this._backtrack) {
695 match = false;
696 continue;
697 } else {
698 return false;
699 }
700 } else if (!this.options.flex) {
701 break;
702 }
703 }
704 }
705 if (match) {
706 token = this.test_match(match, rules[index]);
707 if (token !== false) {
708 return token;
709 }
710 return false;
711 }
712 if (this._input === "") {
713 return this.EOF;
714 } else {
715 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
716 text: "",
717 token: null,
718 line: this.yylineno
719 });
720 }
721 },
722 // return next match that has a token
723 lex: function lex2() {
724 var r = this.next();
725 if (r) {
726 return r;
727 } else {
728 return this.lex();
729 }
730 },
731 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
732 begin: function begin(condition) {
733 this.conditionStack.push(condition);
734 },
735 // pop the previously active lexer condition state off the condition stack
736 popState: function popState() {
737 var n = this.conditionStack.length - 1;
738 if (n > 0) {
739 return this.conditionStack.pop();
740 } else {
741 return this.conditionStack[0];
742 }
743 },
744 // produce the lexer rule set which is active for the currently active lexer condition state
745 _currentRules: function _currentRules() {
746 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
747 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
748 } else {
749 return this.conditions["INITIAL"].rules;
750 }
751 },
752 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
753 topState: function topState(n) {
754 n = this.conditionStack.length - 1 - Math.abs(n || 0);
755 if (n >= 0) {
756 return this.conditionStack[n];
757 } else {
758 return "INITIAL";
759 }
760 },
761 // alias for begin(condition)
762 pushState: function pushState(condition) {
763 this.begin(condition);
764 },
765 // return the number of states currently on the stack
766 stateStackSize: function stateStackSize() {
767 return this.conditionStack.length;
768 },
769 options: {},
770 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
771 switch ($avoiding_name_collisions) {
772 case 0:
773 this.begin("acc_title");
774 return 34;
775 case 1:
776 this.popState();
777 return "acc_title_value";
778 case 2:
779 this.begin("acc_descr");
780 return 36;
781 case 3:
782 this.popState();
783 return "acc_descr_value";
784 case 4:
785 this.begin("acc_descr_multiline");
786 break;
787 case 5:
788 this.popState();
789 break;
790 case 6:
791 return "acc_descr_multiline_value";
792 case 7:
793 this.begin("callbackname");
794 break;
795 case 8:
796 this.popState();
797 break;
798 case 9:
799 this.popState();
800 this.begin("callbackargs");
801 break;
802 case 10:
803 return 92;
804 case 11:
805 this.popState();
806 break;
807 case 12:
808 return 93;
809 case 13:
810 return "MD_STR";
811 case 14:
812 this.popState();
813 break;
814 case 15:
815 this.begin("md_string");
816 break;
817 case 16:
818 return "STR";
819 case 17:
820 this.popState();
821 break;
822 case 18:
823 this.pushState("string");
824 break;
825 case 19:
826 return 81;
827 case 20:
828 return 99;
829 case 21:
830 return 82;
831 case 22:
832 return 101;
833 case 23:
834 return 83;
835 case 24:
836 return 84;
837 case 25:
838 return 94;
839 case 26:
840 this.begin("click");
841 break;
842 case 27:
843 this.popState();
844 break;
845 case 28:
846 return 85;
847 case 29:
848 if (yy.lex.firstGraph()) {
849 this.begin("dir");
850 }
851 return 12;
852 case 30:
853 if (yy.lex.firstGraph()) {
854 this.begin("dir");
855 }
856 return 12;
857 case 31:
858 if (yy.lex.firstGraph()) {
859 this.begin("dir");
860 }
861 return 12;
862 case 32:
863 return 27;
864 case 33:
865 return 32;
866 case 34:
867 return 95;
868 case 35:
869 return 95;
870 case 36:
871 return 95;
872 case 37:
873 return 95;
874 case 38:
875 this.popState();
876 return 13;
877 case 39:
878 this.popState();
879 return 14;
880 case 40:
881 this.popState();
882 return 14;
883 case 41:
884 this.popState();
885 return 14;
886 case 42:
887 this.popState();
888 return 14;
889 case 43:
890 this.popState();
891 return 14;
892 case 44:
893 this.popState();
894 return 14;
895 case 45:
896 this.popState();
897 return 14;
898 case 46:
899 this.popState();
900 return 14;
901 case 47:
902 this.popState();
903 return 14;
904 case 48:
905 this.popState();
906 return 14;
907 case 49:
908 return 118;
909 case 50:
910 return 119;
911 case 51:
912 return 120;
913 case 52:
914 return 121;
915 case 53:
916 return 102;
917 case 54:
918 return 108;
919 case 55:
920 return 44;
921 case 56:
922 return 58;
923 case 57:
924 return 42;
925 case 58:
926 return 8;
927 case 59:
928 return 103;
929 case 60:
930 return 112;
931 case 61:
932 this.popState();
933 return 75;
934 case 62:
935 this.pushState("edgeText");
936 return 73;
937 case 63:
938 return 116;
939 case 64:
940 this.popState();
941 return 75;
942 case 65:
943 this.pushState("thickEdgeText");
944 return 73;
945 case 66:
946 return 116;
947 case 67:
948 this.popState();
949 return 75;
950 case 68:
951 this.pushState("dottedEdgeText");
952 return 73;
953 case 69:
954 return 116;
955 case 70:
956 return 75;
957 case 71:
958 this.popState();
959 return 51;
960 case 72:
961 return "TEXT";
962 case 73:
963 this.pushState("ellipseText");
964 return 50;
965 case 74:
966 this.popState();
967 return 53;
968 case 75:
969 this.pushState("text");
970 return 52;
971 case 76:
972 this.popState();
973 return 55;
974 case 77:
975 this.pushState("text");
976 return 54;
977 case 78:
978 return 56;
979 case 79:
980 this.pushState("text");
981 return 65;
982 case 80:
983 this.popState();
984 return 62;
985 case 81:
986 this.pushState("text");
987 return 61;
988 case 82:
989 this.popState();
990 return 47;
991 case 83:
992 this.pushState("text");
993 return 46;
994 case 84:
995 this.popState();
996 return 67;
997 case 85:
998 this.popState();
999 return 69;
1000 case 86:
1001 return 114;
1002 case 87:
1003 this.pushState("trapText");
1004 return 66;
1005 case 88:
1006 this.pushState("trapText");
1007 return 68;
1008 case 89:
1009 return 115;
1010 case 90:
1011 return 65;
1012 case 91:
1013 return 87;
1014 case 92:
1015 return "SEP";
1016 case 93:
1017 return 86;
1018 case 94:
1019 return 112;
1020 case 95:
1021 return 108;
1022 case 96:
1023 return 42;
1024 case 97:
1025 return 106;
1026 case 98:
1027 return 111;
1028 case 99:
1029 return 113;
1030 case 100:
1031 this.popState();
1032 return 60;
1033 case 101:
1034 this.pushState("text");
1035 return 60;
1036 case 102:
1037 this.popState();
1038 return 49;
1039 case 103:
1040 this.pushState("text");
1041 return 48;
1042 case 104:
1043 this.popState();
1044 return 31;
1045 case 105:
1046 this.pushState("text");
1047 return 29;
1048 case 106:
1049 this.popState();
1050 return 64;
1051 case 107:
1052 this.pushState("text");
1053 return 63;
1054 case 108:
1055 return "TEXT";
1056 case 109:
1057 return "QUOTE";
1058 case 110:
1059 return 9;
1060 case 111:
1061 return 10;
1062 case 112:
1063 return 11;
1064 }
1065 },
1066 rules: [/^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["][`])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:["])/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s])/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:[^-]|-(?!-)+)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:[^=]|=(?!))/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:[^\.]|\.(?!))/, /^(?:\s*~~[\~]+\s*)/, /^(?:[-/\)][\)])/, /^(?:[^\(\)\[\]\{\}]|!\)+)/, /^(?:\(-)/, /^(?:\]\))/, /^(?:\(\[)/, /^(?:\]\])/, /^(?:\[\[)/, /^(?:\[\|)/, /^(?:>)/, /^(?:\)\])/, /^(?:\[\()/, /^(?:\)\)\))/, /^(?:\(\(\()/, /^(?:[\\(?=\])][\]])/, /^(?:\/(?=\])\])/, /^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/, /^(?:\[\/)/, /^(?:\[\\)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:\\\|)/, /^(?:v\b)/, /^(?:\*)/, /^(?:#)/, /^(?:&)/, /^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/, /^(?:-)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\|)/, /^(?:\|)/, /^(?:\))/, /^(?:\()/, /^(?:\])/, /^(?:\[)/, /^(?:(\}))/, /^(?:\{)/, /^(?:[^\[\]\(\)\{\}\|\"]+)/, /^(?:")/, /^(?:(\r?\n)+)/, /^(?:\s)/, /^(?:$)/],
1067 conditions: { "callbackargs": { "rules": [11, 12, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "callbackname": { "rules": [8, 9, 10, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "href": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "click": { "rules": [15, 18, 27, 28, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "dottedEdgeText": { "rules": [15, 18, 67, 69, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "thickEdgeText": { "rules": [15, 18, 64, 66, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "edgeText": { "rules": [15, 18, 61, 63, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "trapText": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 84, 85, 86, 87, 88, 101, 103, 105, 107], "inclusive": false }, "ellipseText": { "rules": [15, 18, 70, 71, 72, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "text": { "rules": [15, 18, 70, 73, 74, 75, 76, 77, 80, 81, 82, 83, 87, 88, 100, 101, 102, 103, 104, 105, 106, 107, 108], "inclusive": false }, "vertex": { "rules": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "dir": { "rules": [15, 18, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_descr_multiline": { "rules": [5, 6, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_descr": { "rules": [3, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "acc_title": { "rules": [1, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "md_string": { "rules": [13, 14, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "string": { "rules": [15, 16, 17, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 67, 68, 70, 73, 75, 77, 78, 79, 81, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 105, 107, 109, 110, 111, 112], "inclusive": true } }
1068 };
1069 return lexer2;
1070 }();
1071 parser2.lexer = lexer;
1072 function Parser() {
1073 this.yy = {};
1074 }
1075 Parser.prototype = parser2;
1076 parser2.Parser = Parser;
1077 return new Parser();
1078}();
1079parser.parser = parser;
1080const parser$1 = parser;
1081const MERMAID_DOM_ID_PREFIX = "flowchart-";
1082let vertexCounter = 0;
1083let config = getConfig();
1084let vertices = {};
1085let edges = [];
1086let classes = {};
1087let subGraphs = [];
1088let subGraphLookup = {};
1089let tooltips = {};
1090let subCount = 0;
1091let firstGraphFlag = true;
1092let direction;
1093let version;
1094let funs = [];
1095const sanitizeText = (txt) => common.sanitizeText(txt, config);
1096const lookUpDomId = function(id) {
1097 const vertexKeys = Object.keys(vertices);
1098 for (const vertexKey of vertexKeys) {
1099 if (vertices[vertexKey].id === id) {
1100 return vertices[vertexKey].domId;
1101 }
1102 }
1103 return id;
1104};
1105const addVertex = function(_id, textObj, type, style, classes2, dir, props = {}) {
1106 let txt;
1107 let id = _id;
1108 if (id === void 0) {
1109 return;
1110 }
1111 if (id.trim().length === 0) {
1112 return;
1113 }
1114 if (vertices[id] === void 0) {
1115 vertices[id] = {
1116 id,
1117 labelType: "text",
1118 domId: MERMAID_DOM_ID_PREFIX + id + "-" + vertexCounter,
1119 styles: [],
1120 classes: []
1121 };
1122 }
1123 vertexCounter++;
1124 if (textObj !== void 0) {
1125 config = getConfig();
1126 txt = sanitizeText(textObj.text.trim());
1127 vertices[id].labelType = textObj.type;
1128 if (txt[0] === '"' && txt[txt.length - 1] === '"') {
1129 txt = txt.substring(1, txt.length - 1);
1130 }
1131 vertices[id].text = txt;
1132 } else {
1133 if (vertices[id].text === void 0) {
1134 vertices[id].text = _id;
1135 }
1136 }
1137 if (type !== void 0) {
1138 vertices[id].type = type;
1139 }
1140 if (style !== void 0 && style !== null) {
1141 style.forEach(function(s) {
1142 vertices[id].styles.push(s);
1143 });
1144 }
1145 if (classes2 !== void 0 && classes2 !== null) {
1146 classes2.forEach(function(s) {
1147 vertices[id].classes.push(s);
1148 });
1149 }
1150 if (dir !== void 0) {
1151 vertices[id].dir = dir;
1152 }
1153 if (vertices[id].props === void 0) {
1154 vertices[id].props = props;
1155 } else if (props !== void 0) {
1156 Object.assign(vertices[id].props, props);
1157 }
1158};
1159const addSingleLink = function(_start, _end, type) {
1160 let start = _start;
1161 let end = _end;
1162 const edge = { start, end, type: void 0, text: "", labelType: "text" };
1163 log.info("abc78 Got edge...", edge);
1164 const linkTextObj = type.text;
1165 if (linkTextObj !== void 0) {
1166 edge.text = sanitizeText(linkTextObj.text.trim());
1167 if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
1168 edge.text = edge.text.substring(1, edge.text.length - 1);
1169 }
1170 edge.labelType = linkTextObj.type;
1171 }
1172 if (type !== void 0) {
1173 edge.type = type.type;
1174 edge.stroke = type.stroke;
1175 edge.length = type.length;
1176 }
1177 if ((edge == null ? void 0 : edge.length) > 10) {
1178 edge.length = 10;
1179 }
1180 if (edges.length < (config.maxEdges ?? 500)) {
1181 log.info("abc78 pushing edge...");
1182 edges.push(edge);
1183 } else {
1184 throw new Error(
1185 `Edge limit exceeded. ${edges.length} edges found, but the limit is ${config.maxEdges}.
1186
1187Initialize mermaid with maxEdges set to a higher number to allow more edges.
1188You cannot set this config via configuration inside the diagram as it is a secure config.
1189You have to call mermaid.initialize.`
1190 );
1191 }
1192};
1193const addLink = function(_start, _end, type) {
1194 log.info("addLink (abc78)", _start, _end, type);
1195 let i, j;
1196 for (i = 0; i < _start.length; i++) {
1197 for (j = 0; j < _end.length; j++) {
1198 addSingleLink(_start[i], _end[j], type);
1199 }
1200 }
1201};
1202const updateLinkInterpolate = function(positions, interp) {
1203 positions.forEach(function(pos) {
1204 if (pos === "default") {
1205 edges.defaultInterpolate = interp;
1206 } else {
1207 edges[pos].interpolate = interp;
1208 }
1209 });
1210};
1211const updateLink = function(positions, style) {
1212 positions.forEach(function(pos) {
1213 if (pos >= edges.length) {
1214 throw new Error(
1215 `The index ${pos} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${edges.length - 1}. (Help: Ensure that the index is within the range of existing edges.)`
1216 );
1217 }
1218 if (pos === "default") {
1219 edges.defaultStyle = style;
1220 } else {
1221 if (utils.isSubstringInArray("fill", style) === -1) {
1222 style.push("fill:none");
1223 }
1224 edges[pos].style = style;
1225 }
1226 });
1227};
1228const addClass = function(ids, style) {
1229 ids.split(",").forEach(function(id) {
1230 if (classes[id] === void 0) {
1231 classes[id] = { id, styles: [], textStyles: [] };
1232 }
1233 if (style !== void 0 && style !== null) {
1234 style.forEach(function(s) {
1235 if (s.match("color")) {
1236 const newStyle = s.replace("fill", "bgFill").replace("color", "fill");
1237 classes[id].textStyles.push(newStyle);
1238 }
1239 classes[id].styles.push(s);
1240 });
1241 }
1242 });
1243};
1244const setDirection = function(dir) {
1245 direction = dir;
1246 if (direction.match(/.*</)) {
1247 direction = "RL";
1248 }
1249 if (direction.match(/.*\^/)) {
1250 direction = "BT";
1251 }
1252 if (direction.match(/.*>/)) {
1253 direction = "LR";
1254 }
1255 if (direction.match(/.*v/)) {
1256 direction = "TB";
1257 }
1258 if (direction === "TD") {
1259 direction = "TB";
1260 }
1261};
1262const setClass = function(ids, className) {
1263 ids.split(",").forEach(function(_id) {
1264 let id = _id;
1265 if (vertices[id] !== void 0) {
1266 vertices[id].classes.push(className);
1267 }
1268 if (subGraphLookup[id] !== void 0) {
1269 subGraphLookup[id].classes.push(className);
1270 }
1271 });
1272};
1273const setTooltip = function(ids, tooltip) {
1274 ids.split(",").forEach(function(id) {
1275 if (tooltip !== void 0) {
1276 tooltips[version === "gen-1" ? lookUpDomId(id) : id] = sanitizeText(tooltip);
1277 }
1278 });
1279};
1280const setClickFun = function(id, functionName, functionArgs) {
1281 let domId = lookUpDomId(id);
1282 if (getConfig().securityLevel !== "loose") {
1283 return;
1284 }
1285 if (functionName === void 0) {
1286 return;
1287 }
1288 let argList = [];
1289 if (typeof functionArgs === "string") {
1290 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
1291 for (let i = 0; i < argList.length; i++) {
1292 let item = argList[i].trim();
1293 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
1294 item = item.substr(1, item.length - 2);
1295 }
1296 argList[i] = item;
1297 }
1298 }
1299 if (argList.length === 0) {
1300 argList.push(id);
1301 }
1302 if (vertices[id] !== void 0) {
1303 vertices[id].haveCallback = true;
1304 funs.push(function() {
1305 const elem = document.querySelector(`[id="${domId}"]`);
1306 if (elem !== null) {
1307 elem.addEventListener(
1308 "click",
1309 function() {
1310 utils.runFunc(functionName, ...argList);
1311 },
1312 false
1313 );
1314 }
1315 });
1316 }
1317};
1318const setLink = function(ids, linkStr, target) {
1319 ids.split(",").forEach(function(id) {
1320 if (vertices[id] !== void 0) {
1321 vertices[id].link = utils.formatUrl(linkStr, config);
1322 vertices[id].linkTarget = target;
1323 }
1324 });
1325 setClass(ids, "clickable");
1326};
1327const getTooltip = function(id) {
1328 if (tooltips.hasOwnProperty(id)) {
1329 return tooltips[id];
1330 }
1331 return void 0;
1332};
1333const setClickEvent = function(ids, functionName, functionArgs) {
1334 ids.split(",").forEach(function(id) {
1335 setClickFun(id, functionName, functionArgs);
1336 });
1337 setClass(ids, "clickable");
1338};
1339const bindFunctions = function(element) {
1340 funs.forEach(function(fun) {
1341 fun(element);
1342 });
1343};
1344const getDirection = function() {
1345 return direction.trim();
1346};
1347const getVertices = function() {
1348 return vertices;
1349};
1350const getEdges = function() {
1351 return edges;
1352};
1353const getClasses = function() {
1354 return classes;
1355};
1356const setupToolTips = function(element) {
1357 let tooltipElem = select(".mermaidTooltip");
1358 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
1359 tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
1360 }
1361 const svg = select(element).select("svg");
1362 const nodes = svg.selectAll("g.node");
1363 nodes.on("mouseover", function() {
1364 const el = select(this);
1365 const title = el.attr("title");
1366 if (title === null) {
1367 return;
1368 }
1369 const rect = this.getBoundingClientRect();
1370 tooltipElem.transition().duration(200).style("opacity", ".9");
1371 tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect.left + (rect.right - rect.left) / 2 + "px").style("top", window.scrollY + rect.bottom + "px");
1372 tooltipElem.html(tooltipElem.html().replace(/&lt;br\/&gt;/g, "<br/>"));
1373 el.classed("hover", true);
1374 }).on("mouseout", function() {
1375 tooltipElem.transition().duration(500).style("opacity", 0);
1376 const el = select(this);
1377 el.classed("hover", false);
1378 });
1379};
1380funs.push(setupToolTips);
1381const clear = function(ver = "gen-1") {
1382 vertices = {};
1383 classes = {};
1384 edges = [];
1385 funs = [setupToolTips];
1386 subGraphs = [];
1387 subGraphLookup = {};
1388 subCount = 0;
1389 tooltips = {};
1390 firstGraphFlag = true;
1391 version = ver;
1392 config = getConfig();
1393 clear$1();
1394};
1395const setGen = (ver) => {
1396 version = ver || "gen-2";
1397};
1398const defaultStyle = function() {
1399 return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;";
1400};
1401const addSubGraph = function(_id, list, _title) {
1402 let id = _id.text.trim();
1403 let title = _title.text;
1404 if (_id === _title && _title.text.match(/\s/)) {
1405 id = void 0;
1406 }
1407 function uniq(a) {
1408 const prims = { boolean: {}, number: {}, string: {} };
1409 const objs = [];
1410 let dir2;
1411 const nodeList2 = a.filter(function(item) {
1412 const type = typeof item;
1413 if (item.stmt && item.stmt === "dir") {
1414 dir2 = item.value;
1415 return false;
1416 }
1417 if (item.trim() === "") {
1418 return false;
1419 }
1420 if (type in prims) {
1421 return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true;
1422 } else {
1423 return objs.includes(item) ? false : objs.push(item);
1424 }
1425 });
1426 return { nodeList: nodeList2, dir: dir2 };
1427 }
1428 let nodeList = [];
1429 const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list));
1430 nodeList = nl;
1431 if (version === "gen-1") {
1432 for (let i = 0; i < nodeList.length; i++) {
1433 nodeList[i] = lookUpDomId(nodeList[i]);
1434 }
1435 }
1436 id = id || "subGraph" + subCount;
1437 title = title || "";
1438 title = sanitizeText(title);
1439 subCount = subCount + 1;
1440 const subGraph = {
1441 id,
1442 nodes: nodeList,
1443 title: title.trim(),
1444 classes: [],
1445 dir,
1446 labelType: _title.type
1447 };
1448 log.info("Adding", subGraph.id, subGraph.nodes, subGraph.dir);
1449 subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;
1450 subGraphs.push(subGraph);
1451 subGraphLookup[id] = subGraph;
1452 return id;
1453};
1454const getPosForId = function(id) {
1455 for (const [i, subGraph] of subGraphs.entries()) {
1456 if (subGraph.id === id) {
1457 return i;
1458 }
1459 }
1460 return -1;
1461};
1462let secCount = -1;
1463const posCrossRef = [];
1464const indexNodes2 = function(id, pos) {
1465 const nodes = subGraphs[pos].nodes;
1466 secCount = secCount + 1;
1467 if (secCount > 2e3) {
1468 return;
1469 }
1470 posCrossRef[secCount] = pos;
1471 if (subGraphs[pos].id === id) {
1472 return {
1473 result: true,
1474 count: 0
1475 };
1476 }
1477 let count = 0;
1478 let posCount = 1;
1479 while (count < nodes.length) {
1480 const childPos = getPosForId(nodes[count]);
1481 if (childPos >= 0) {
1482 const res = indexNodes2(id, childPos);
1483 if (res.result) {
1484 return {
1485 result: true,
1486 count: posCount + res.count
1487 };
1488 } else {
1489 posCount = posCount + res.count;
1490 }
1491 }
1492 count = count + 1;
1493 }
1494 return {
1495 result: false,
1496 count: posCount
1497 };
1498};
1499const getDepthFirstPos = function(pos) {
1500 return posCrossRef[pos];
1501};
1502const indexNodes = function() {
1503 secCount = -1;
1504 if (subGraphs.length > 0) {
1505 indexNodes2("none", subGraphs.length - 1);
1506 }
1507};
1508const getSubGraphs = function() {
1509 return subGraphs;
1510};
1511const firstGraph = () => {
1512 if (firstGraphFlag) {
1513 firstGraphFlag = false;
1514 return true;
1515 }
1516 return false;
1517};
1518const destructStartLink = (_str) => {
1519 let str = _str.trim();
1520 let type = "arrow_open";
1521 switch (str[0]) {
1522 case "<":
1523 type = "arrow_point";
1524 str = str.slice(1);
1525 break;
1526 case "x":
1527 type = "arrow_cross";
1528 str = str.slice(1);
1529 break;
1530 case "o":
1531 type = "arrow_circle";
1532 str = str.slice(1);
1533 break;
1534 }
1535 let stroke = "normal";
1536 if (str.includes("=")) {
1537 stroke = "thick";
1538 }
1539 if (str.includes(".")) {
1540 stroke = "dotted";
1541 }
1542 return { type, stroke };
1543};
1544const countChar = (char, str) => {
1545 const length = str.length;
1546 let count = 0;
1547 for (let i = 0; i < length; ++i) {
1548 if (str[i] === char) {
1549 ++count;
1550 }
1551 }
1552 return count;
1553};
1554const destructEndLink = (_str) => {
1555 const str = _str.trim();
1556 let line = str.slice(0, -1);
1557 let type = "arrow_open";
1558 switch (str.slice(-1)) {
1559 case "x":
1560 type = "arrow_cross";
1561 if (str[0] === "x") {
1562 type = "double_" + type;
1563 line = line.slice(1);
1564 }
1565 break;
1566 case ">":
1567 type = "arrow_point";
1568 if (str[0] === "<") {
1569 type = "double_" + type;
1570 line = line.slice(1);
1571 }
1572 break;
1573 case "o":
1574 type = "arrow_circle";
1575 if (str[0] === "o") {
1576 type = "double_" + type;
1577 line = line.slice(1);
1578 }
1579 break;
1580 }
1581 let stroke = "normal";
1582 let length = line.length - 1;
1583 if (line[0] === "=") {
1584 stroke = "thick";
1585 }
1586 if (line[0] === "~") {
1587 stroke = "invisible";
1588 }
1589 let dots = countChar(".", line);
1590 if (dots) {
1591 stroke = "dotted";
1592 length = dots;
1593 }
1594 return { type, stroke, length };
1595};
1596const destructLink = (_str, _startStr) => {
1597 const info = destructEndLink(_str);
1598 let startInfo;
1599 if (_startStr) {
1600 startInfo = destructStartLink(_startStr);
1601 if (startInfo.stroke !== info.stroke) {
1602 return { type: "INVALID", stroke: "INVALID" };
1603 }
1604 if (startInfo.type === "arrow_open") {
1605 startInfo.type = info.type;
1606 } else {
1607 if (startInfo.type !== info.type) {
1608 return { type: "INVALID", stroke: "INVALID" };
1609 }
1610 startInfo.type = "double_" + startInfo.type;
1611 }
1612 if (startInfo.type === "double_arrow") {
1613 startInfo.type = "double_arrow_point";
1614 }
1615 startInfo.length = info.length;
1616 return startInfo;
1617 }
1618 return info;
1619};
1620const exists = (allSgs, _id) => {
1621 let res = false;
1622 allSgs.forEach((sg) => {
1623 const pos = sg.nodes.indexOf(_id);
1624 if (pos >= 0) {
1625 res = true;
1626 }
1627 });
1628 return res;
1629};
1630const makeUniq = (sg, allSubgraphs) => {
1631 const res = [];
1632 sg.nodes.forEach((_id, pos) => {
1633 if (!exists(allSubgraphs, _id)) {
1634 res.push(sg.nodes[pos]);
1635 }
1636 });
1637 return { nodes: res };
1638};
1639const lex = {
1640 firstGraph
1641};
1642const flowDb = {
1643 defaultConfig: () => defaultConfig.flowchart,
1644 setAccTitle,
1645 getAccTitle,
1646 getAccDescription,
1647 setAccDescription,
1648 addVertex,
1649 lookUpDomId,
1650 addLink,
1651 updateLinkInterpolate,
1652 updateLink,
1653 addClass,
1654 setDirection,
1655 setClass,
1656 setTooltip,
1657 getTooltip,
1658 setClickEvent,
1659 setLink,
1660 bindFunctions,
1661 getDirection,
1662 getVertices,
1663 getEdges,
1664 getClasses,
1665 clear,
1666 setGen,
1667 defaultStyle,
1668 addSubGraph,
1669 getDepthFirstPos,
1670 indexNodes,
1671 getSubGraphs,
1672 destructLink,
1673 lex,
1674 exists,
1675 makeUniq,
1676 setDiagramTitle,
1677 getDiagramTitle
1678};
1679const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1680 __proto__: null,
1681 addClass,
1682 addLink,
1683 addSingleLink,
1684 addSubGraph,
1685 addVertex,
1686 bindFunctions,
1687 clear,
1688 default: flowDb,
1689 defaultStyle,
1690 destructLink,
1691 firstGraph,
1692 getClasses,
1693 getDepthFirstPos,
1694 getDirection,
1695 getEdges,
1696 getSubGraphs,
1697 getTooltip,
1698 getVertices,
1699 indexNodes,
1700 lex,
1701 lookUpDomId,
1702 setClass,
1703 setClickEvent,
1704 setDirection,
1705 setGen,
1706 setLink,
1707 updateLink,
1708 updateLinkInterpolate
1709}, Symbol.toStringTag, { value: "Module" }));
1710export {
1711 db as d,
1712 flowDb as f,
1713 parser$1 as p
1714};