From d4451ef8a1da8177da96971a66b977239e04426b Mon Sep 17 00:00:00 2001 From: Vijay Jain Date: Sat, 13 Dec 2014 17:09:03 +0530 Subject: [PATCH] flow.jison is modified to include a single spaces between vertices and link to improve readablity for issue #38. There should not be any space between vertex and its text and link and its text. flow.spec.js is modified to include three new tests for testing new graphs. --- src/diagrams/flowchart/parser/flow.jison | 16 +++++ src/diagrams/flowchart/parser/flow.js | 83 ++++++++++++++-------- src/diagrams/flowchart/parser/flow.spec.js | 36 ++++++++++ 3 files changed, 104 insertions(+), 31 deletions(-) diff --git a/src/diagrams/flowchart/parser/flow.jison b/src/diagrams/flowchart/parser/flow.jison index 5cd5937c54..4f4d34714c 100644 --- a/src/diagrams/flowchart/parser/flow.jison +++ b/src/diagrams/flowchart/parser/flow.jison @@ -168,18 +168,30 @@ verticeStatement: vertex: alphaNum SQS text SQE {$$ = $1;yy.addVertex($1,$3,'square');} + | alphaNum SQS text SQE SPACE + {$$ = $1;yy.addVertex($1,$3,'square');} | alphaNum PS PS text PE PE {$$ = $1;yy.addVertex($1,$4,'circle');} + | alphaNum PS PS text PE PE SPACE + {$$ = $1;yy.addVertex($1,$4,'circle');} | alphaNum PS text PE {$$ = $1;yy.addVertex($1,$3,'round');} + | alphaNum PS text PE SPACE + {$$ = $1;yy.addVertex($1,$3,'round');} | alphaNum DIAMOND_START text DIAMOND_STOP {$$ = $1;yy.addVertex($1,$3,'diamond');} + | alphaNum DIAMOND_START text DIAMOND_STOP SPACE + {$$ = $1;yy.addVertex($1,$3,'diamond');} | alphaNum TAGEND text SQE {$$ = $1;yy.addVertex($1,$3,'odd');} + | alphaNum TAGEND text SQE SPACE + {$$ = $1;yy.addVertex($1,$3,'odd');} | alphaNum TAGSTART text TAGEND {$$ = $1;yy.addVertex($1,$3,'diamond');} | alphaNum {$$ = $1;yy.addVertex($1);} + | alphaNum SPACE + {$$ = $1;yy.addVertex($1);} ; alphaNum @@ -218,9 +230,13 @@ alphaNumToken ; link: linkStatement arrowText + {$1.text = $2;$$ = $1;} + | linkStatement arrowText SPACE {$1.text = $2;$$ = $1;} | linkStatement {$$ = $1;} + | linkStatement SPACE + {$$ = $1;} ; linkStatement: ARROW_POINT diff --git a/src/diagrams/flowchart/parser/flow.js b/src/diagrams/flowchart/parser/flow.js index b83ecc8664..ac05af08ee 100644 --- a/src/diagrams/flowchart/parser/flow.js +++ b/src/diagrams/flowchart/parser/flow.js @@ -72,12 +72,12 @@ } */ var parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,7],$V1=[1,8],$V2=[1,26],$V3=[1,27],$V4=[1,28],$V5=[1,29],$V6=[1,30],$V7=[1,31],$V8=[1,32],$V9=[1,33],$Va=[1,34],$Vb=[1,18],$Vc=[1,19],$Vd=[1,20],$Ve=[1,21],$Vf=[1,22],$Vg=[1,16],$Vh=[37,38,39,40,41,42,43,44,45,60,61,62,63,64,69],$Vi=[11,48,49,50,51],$Vj=[9,11,25,28,30,32,33,48,49,50,51],$Vk=[9,11,25,28,30,32,33,37,38,39,40,41,42,43,44,45,48,49,50,51],$Vl=[9,11,25,28,30,32,33,36,37,38,39,40,41,42,43,44,45,48,49,50,51],$Vm=[6,9,13],$Vn=[1,106],$Vo=[1,97],$Vp=[1,107],$Vq=[1,99],$Vr=[1,86],$Vs=[1,87],$Vt=[1,84],$Vu=[1,85],$Vv=[1,88],$Vw=[1,89],$Vx=[1,81],$Vy=[1,80],$Vz=[1,98],$VA=[1,72],$VB=[1,73],$VC=[1,74],$VD=[1,75],$VE=[1,76],$VF=[1,77],$VG=[1,78],$VH=[1,79],$VI=[1,82],$VJ=[1,93],$VK=[1,94],$VL=[1,92],$VM=[1,95],$VN=[1,83],$VO=[1,90],$VP=[1,91],$VQ=[1,96],$VR=[1,101],$VS=[1,102],$VT=[1,103],$VU=[1,104],$VV=[1,105],$VW=[37,38,39,40,41,42,43,44,45],$VX=[37,38,39,40,41,42,43,44,45,52],$VY=[1,130],$VZ=[1,128],$V_=[1,127],$V$=[1,131],$V01=[1,119],$V11=[1,120],$V21=[1,121],$V31=[1,122],$V41=[1,123],$V51=[1,124],$V61=[1,125],$V71=[1,126],$V81=[1,129],$V91=[8,9,10,11,13,25,27,28,29,30,31,32,33,36,37,38,39,40,41,42,43,44,45,48,49,50,51,52,57,58,59,60,61,62,63,64],$Va1=[8,9,10,27,29,31,32,33,36,37,38,39,40,41,42,43,44,45,52,60,61,62,63,64],$Vb1=[2,59],$Vc1=[1,164],$Vd1=[1,161],$Ve1=[1,159],$Vf1=[1,162],$Vg1=[1,160],$Vh1=[1,167],$Vi1=[1,166],$Vj1=[1,165],$Vk1=[1,163],$Vl1=[2,26],$Vm1=[1,174],$Vn1=[11,40],$Vo1=[9,11,36,37,38,39,40,44,45,68,72]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,7],$V1=[1,8],$V2=[1,26],$V3=[1,27],$V4=[1,28],$V5=[1,29],$V6=[1,30],$V7=[1,31],$V8=[1,32],$V9=[1,33],$Va=[1,34],$Vb=[1,18],$Vc=[1,19],$Vd=[1,20],$Ve=[1,21],$Vf=[1,22],$Vg=[1,16],$Vh=[37,38,39,40,41,42,43,44,45,60,61,62,63,64,69],$Vi=[11,48,49,50,51],$Vj=[9,11,25,28,30,32,33,48,49,50,51],$Vk=[9,11,25,28,30,32,33,37,38,39,40,41,42,43,44,45,48,49,50,51],$Vl=[9,11,25,28,30,32,33,36,37,38,39,40,41,42,43,44,45,48,49,50,51],$Vm=[6,9,13],$Vn=[1,107],$Vo=[1,98],$Vp=[1,108],$Vq=[1,100],$Vr=[1,87],$Vs=[1,88],$Vt=[1,85],$Vu=[1,86],$Vv=[1,89],$Vw=[1,90],$Vx=[1,82],$Vy=[1,81],$Vz=[1,99],$VA=[1,73],$VB=[1,74],$VC=[1,75],$VD=[1,76],$VE=[1,77],$VF=[1,78],$VG=[1,79],$VH=[1,80],$VI=[1,83],$VJ=[1,94],$VK=[1,95],$VL=[1,93],$VM=[1,96],$VN=[1,84],$VO=[1,91],$VP=[1,92],$VQ=[1,97],$VR=[1,102],$VS=[1,103],$VT=[1,104],$VU=[1,105],$VV=[1,106],$VW=[37,38,39,40,41,42,43,44,45],$VX=[9,37,38,39,40,41,42,43,44,45,52],$VY=[1,132],$VZ=[1,130],$V_=[1,129],$V$=[1,133],$V01=[1,121],$V11=[1,122],$V21=[1,123],$V31=[1,124],$V41=[1,125],$V51=[1,126],$V61=[1,127],$V71=[1,128],$V81=[1,131],$V91=[8,9,10,11,13,25,27,28,29,30,31,32,33,36,37,38,39,40,41,42,43,44,45,48,49,50,51,52,57,58,59,60,61,62,63,64],$Va1=[8,9,10,27,29,31,32,33,36,37,38,39,40,41,42,43,44,45,52,60,61,62,63,64],$Vb1=[2,67],$Vc1=[1,167],$Vd1=[1,164],$Ve1=[1,162],$Vf1=[1,165],$Vg1=[1,163],$Vh1=[1,170],$Vi1=[1,169],$Vj1=[1,168],$Vk1=[1,166],$Vl1=[2,31],$Vm1=[1,181],$Vn1=[11,40],$Vo1=[9,11,36,37,38,39,40,44,45,68,72]; var parser = {trace: function trace() { }, yy: {}, symbols_: {"error":2,"expressions":3,"graphConfig":4,"statements":5,"EOF":6,"spaceListNewline":7,"GRAPH":8,"SPACE":9,"DIR":10,"SEMI":11,"statement":12,"NEWLINE":13,"spaceList":14,"commentStatement":15,"verticeStatement":16,"styleStatement":17,"linkStyleStatement":18,"classDefStatement":19,"classStatement":20,"clickStatement":21,"vertex":22,"link":23,"alphaNum":24,"SQS":25,"text":26,"SQE":27,"PS":28,"PE":29,"DIAMOND_START":30,"DIAMOND_STOP":31,"TAGEND":32,"TAGSTART":33,"alphaNumStatement":34,"alphaNumToken":35,"MINUS":36,"ALPHA":37,"NUM":38,"COLON":39,"COMMA":40,"PLUS":41,"EQUALS":42,"MULT":43,"DOT":44,"BRKT":45,"linkStatement":46,"arrowText":47,"ARROW_POINT":48,"ARROW_CIRCLE":49,"ARROW_CROSS":50,"ARROW_OPEN":51,"PIPE":52,"textToken":53,"keywords":54,"commentText":55,"commentToken":56,"TAG_START":57,"TAG_END":58,"QUOTE":59,"STYLE":60,"LINKSTYLE":61,"CLASSDEF":62,"CLASS":63,"CLICK":64,"textNoTags":65,"textNoTagsToken":66,"stylesOpt":67,"HEX":68,"PCT":69,"style":70,"styleComponent":71,"UNIT":72,"$accept":0,"$end":1}, terminals_: {2:"error",6:"EOF",8:"GRAPH",9:"SPACE",10:"DIR",11:"SEMI",13:"NEWLINE",25:"SQS",27:"SQE",28:"PS",29:"PE",30:"DIAMOND_START",31:"DIAMOND_STOP",32:"TAGEND",33:"TAGSTART",36:"MINUS",37:"ALPHA",38:"NUM",39:"COLON",40:"COMMA",41:"PLUS",42:"EQUALS",43:"MULT",44:"DOT",45:"BRKT",48:"ARROW_POINT",49:"ARROW_CIRCLE",50:"ARROW_CROSS",51:"ARROW_OPEN",52:"PIPE",57:"TAG_START",58:"TAG_END",59:"QUOTE",60:"STYLE",61:"LINKSTYLE",62:"CLASSDEF",63:"CLASS",64:"CLICK",68:"HEX",69:"PCT",72:"UNIT"}, -productions_: [0,[3,3],[3,4],[4,4],[5,3],[5,1],[7,2],[7,2],[7,1],[7,1],[14,2],[14,1],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[16,3],[16,1],[22,4],[22,6],[22,4],[22,4],[22,4],[22,4],[22,1],[24,1],[24,2],[34,1],[34,3],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[23,2],[23,1],[46,1],[46,1],[46,1],[46,1],[47,3],[26,1],[26,2],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[55,1],[55,2],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[65,1],[65,2],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[19,5],[20,5],[21,5],[17,5],[17,5],[18,5],[15,3],[67,1],[67,3],[70,1],[70,2],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1]], +productions_: [0,[3,3],[3,4],[4,4],[5,3],[5,1],[7,2],[7,2],[7,1],[7,1],[14,2],[14,1],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[16,3],[16,1],[22,4],[22,5],[22,6],[22,7],[22,4],[22,5],[22,4],[22,5],[22,4],[22,5],[22,4],[22,1],[22,2],[24,1],[24,2],[34,1],[34,3],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[23,2],[23,3],[23,1],[23,2],[46,1],[46,1],[46,1],[46,1],[47,3],[26,1],[26,2],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[53,1],[55,1],[55,2],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[56,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[65,1],[65,2],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[19,5],[20,5],[21,5],[17,5],[17,5],[18,5],[15,3],[67,1],[67,3],[70,1],[70,2],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -102,87 +102,108 @@ case 21: this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square'); break; case 22: -this.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle'); +this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'square'); break; case 23: +this.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle'); +break; +case 24: +this.$ = $$[$0-6];yy.addVertex($$[$0-6],$$[$0-3],'circle'); +break; +case 25: this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round'); break; -case 24: case 26: +case 26: +this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'round'); +break; +case 27: case 31: this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond'); break; -case 25: +case 28: +this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'diamond'); +break; +case 29: this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'odd'); break; -case 27: +case 30: +this.$ = $$[$0-4];yy.addVertex($$[$0-4],$$[$0-2],'odd'); +break; +case 32: this.$ = $$[$0];yy.addVertex($$[$0]); break; -case 28: case 30: case 32: case 33: case 48: case 50: case 51: case 64: case 66: case 67: case 102: case 104: case 105: case 125: +case 33: +this.$ = $$[$0-1];yy.addVertex($$[$0-1]); +break; +case 34: case 36: case 38: case 39: case 56: case 58: case 59: case 72: case 74: case 75: case 110: case 112: case 113: case 133: this.$=$$[$0]; break; -case 29: case 49: case 65: case 103: +case 35: case 57: case 73: case 111: this.$=$$[$0-1]+''+$$[$0]; break; -case 31: +case 37: this.$=$$[$0-2]+'-'+$$[$0]; break; -case 34: case 35: case 36: case 37: case 38: case 39: case 42: case 52: case 53: case 54: case 55: case 56: case 57: case 58: case 59: case 61: case 62: case 63: case 68: case 69: case 70: case 71: case 72: case 73: case 74: case 75: case 91: case 92: case 93: case 94: case 106: case 107: case 108: case 109: case 110: case 111: case 113: case 114: case 115: +case 40: case 41: case 42: case 43: case 44: case 45: case 49: case 60: case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 69: case 70: case 71: case 76: case 77: case 78: case 79: case 80: case 81: case 82: case 83: case 99: case 100: case 101: case 102: case 114: case 115: case 116: case 117: case 118: case 119: case 121: case 122: case 123: this.$ = $$[$0]; break; -case 40: case 60: case 76: case 77: case 78: case 79: case 80: case 81: case 82: case 83: case 84: case 85: case 86: case 87: case 88: case 89: case 90: case 112: +case 46: case 68: case 84: case 85: case 86: case 87: case 88: case 89: case 90: case 91: case 92: case 93: case 94: case 95: case 96: case 97: case 98: case 120: this.$ = '
'; break; -case 41: +case 47: $$[$0-1].text = $$[$0];this.$ = $$[$0-1]; break; -case 43: +case 48: +$$[$0-2].text = $$[$0-1];this.$ = $$[$0-2]; +break; +case 50: case 55: +this.$ = $$[$0-1]; +break; +case 51: this.$ = {"type":"arrow"}; break; -case 44: +case 52: this.$ = {"type":"arrow_circle"}; break; -case 45: +case 53: this.$ = {"type":"arrow_cross"}; break; -case 46: +case 54: this.$ = {"type":"arrow_open"}; break; -case 47: -this.$ = $$[$0-1]; -break; -case 116: +case 124: this.$ = $$[$0-4];yy.addClass($$[$0-2],$$[$0]); break; -case 117: +case 125: this.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]); break; -case 118: +case 126: this.$ = $$[$0-4];yy.setClickEvent($$[$0-2], $$[$0]); break; -case 119: +case 127: this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]); break; -case 120: case 121: +case 128: case 129: this.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]); break; -case 122: +case 130: this.$ = $$[$0-2]; break; -case 123: +case 131: this.$ = [$$[$0]] break; -case 124: +case 132: $$[$0-2].push($$[$0]);this.$ = $$[$0-2]; break; -case 126: +case 134: this.$ = $$[$0-1] + $$[$0]; break; -case 127: case 128: case 129: case 130: case 131: case 132: case 133: case 134: case 135: +case 135: case 136: case 137: case 138: case 139: case 140: case 141: case 142: case 143: this.$=$$[$0] break; } }, -table: [{3:1,4:2,8:[1,3]},{1:[3]},{5:4,7:5,9:$V0,12:6,13:$V1,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:17,24:23,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va,60:$Vb,61:$Vc,62:$Vd,63:$Ve,64:$Vf,69:$Vg},{9:[1,35]},{6:[1,36]},{5:37,12:6,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:17,24:23,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va,60:$Vb,61:$Vc,62:$Vd,63:$Ve,64:$Vf,69:$Vg},{6:[2,5],7:38,9:$V0,13:$V1},o($Vh,[2,9],{7:39,9:$V0,13:$V1}),o($Vh,[2,8],{7:40,9:$V0,13:$V1}),{13:[1,41]},{11:[1,42]},{11:[1,43]},{11:[1,44]},{11:[1,45]},{11:[1,46]},{11:[1,47]},{69:[1,48]},{11:[2,20],23:49,46:50,48:[1,51],49:[1,52],50:[1,53],51:[1,54]},{9:[1,55]},{9:[1,56]},{9:[1,57]},{9:[1,58]},{9:[1,59]},o($Vi,[2,27],{25:[1,60],28:[1,61],30:[1,62],32:[1,63],33:[1,64]}),o($Vj,[2,28],{34:24,35:25,24:65,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va}),o($Vk,[2,30],{36:[1,66]}),o($Vl,[2,32]),o($Vl,[2,33]),o($Vl,[2,34]),o($Vl,[2,35]),o($Vl,[2,36]),o($Vl,[2,37]),o($Vl,[2,38]),o($Vl,[2,39]),o($Vl,[2,40]),{10:[1,67]},{1:[2,1]},{6:[1,68]},{5:69,12:6,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:17,24:23,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va,60:$Vb,61:$Vc,62:$Vd,63:$Ve,64:$Vf,69:$Vg},o($Vh,[2,6]),o($Vh,[2,7]),o($Vm,[2,12]),o($Vm,[2,13]),o($Vm,[2,14]),o($Vm,[2,15]),o($Vm,[2,16]),o($Vm,[2,17]),o($Vm,[2,18]),{8:$Vn,9:$Vo,10:$Vp,11:$Vq,25:$Vr,27:$Vs,28:$Vt,29:$Vu,30:$Vv,31:$Vw,32:$Vx,33:$Vy,36:$Vz,37:$VA,38:$VB,39:$VC,40:$VD,41:$VE,42:$VF,43:$VG,44:$VH,45:$VI,48:$VJ,49:$VK,50:$VL,51:$VM,52:$VN,54:100,55:70,56:71,57:$VO,58:$VP,59:$VQ,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{22:108,24:23,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},o($VW,[2,42],{47:109,52:[1,110]}),o($VX,[2,43]),o($VX,[2,44]),o($VX,[2,45]),o($VX,[2,46]),{24:111,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va,68:[1,112]},{38:[1,113]},{24:114,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{24:115,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{24:116,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{8:$Vn,9:$VY,10:$Vp,26:117,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:118,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,26:134,28:[1,133],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:118,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,26:135,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:118,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,26:136,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:118,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,26:137,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:118,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($Vj,[2,29]),{35:138,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{11:[1,139]},{1:[2,2]},{6:[2,4]},{8:$Vn,9:$Vo,10:$Vp,11:$Vq,13:[2,122],25:$Vr,27:$Vs,28:$Vt,29:$Vu,30:$Vv,31:$Vw,32:$Vx,33:$Vy,36:$Vz,37:$VA,38:$VB,39:$VC,40:$VD,41:$VE,42:$VF,43:$VG,44:$VH,45:$VI,48:$VJ,49:$VK,50:$VL,51:$VM,52:$VN,54:100,56:140,57:$VO,58:$VP,59:$VQ,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($V91,[2,64]),o($V91,[2,66]),o($V91,[2,67]),o($V91,[2,68]),o($V91,[2,69]),o($V91,[2,70]),o($V91,[2,71]),o($V91,[2,72]),o($V91,[2,73]),o($V91,[2,74]),o($V91,[2,75]),o($V91,[2,76]),o($V91,[2,77]),o($V91,[2,78]),o($V91,[2,79]),o($V91,[2,80]),o($V91,[2,81]),o($V91,[2,82]),o($V91,[2,83]),o($V91,[2,84]),o($V91,[2,85]),o($V91,[2,86]),o($V91,[2,87]),o($V91,[2,88]),o($V91,[2,89]),o($V91,[2,90]),o($V91,[2,91]),o($V91,[2,92]),o($V91,[2,93]),o($V91,[2,94]),o($V91,[2,95]),o($V91,[2,96]),o($V91,[2,97]),o($V91,[2,98]),o($V91,[2,99]),o($V91,[2,100]),o($V91,[2,101]),{11:[2,19]},o($VW,[2,41]),{8:$Vn,9:$VY,10:$Vp,26:141,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:118,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{9:[1,142]},{9:[1,143]},{9:[1,144]},{9:[1,145]},{9:[1,146]},{9:[1,147]},{8:$Vn,9:$VY,10:$Vp,27:[1,148],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:149,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($Va1,[2,48]),o($Va1,[2,50]),o($Va1,[2,51]),o($Va1,[2,52]),o($Va1,[2,53]),o($Va1,[2,54]),o($Va1,[2,55]),o($Va1,[2,56]),o($Va1,[2,57]),o($Va1,[2,58]),o($Va1,$Vb1),o($Va1,[2,60]),o($Va1,[2,61]),o($Va1,[2,62]),o($Va1,[2,63]),{8:$Vn,9:$VY,10:$Vp,26:150,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:118,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,29:[1,151],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:149,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,31:[1,152],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:149,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,27:[1,153],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:149,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,32:[1,154],33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:149,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($Vk,[2,31]),o([9,13,37,38,39,40,41,42,43,44,45,60,61,62,63,64,69],[2,3]),o($V91,[2,65]),{8:$Vn,9:$VY,10:$Vp,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,52:[1,155],53:149,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,67:156,68:$Vj1,70:157,71:158,72:$Vk1},{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,67:168,68:$Vj1,70:157,71:158,72:$Vk1},{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,67:169,68:$Vj1,70:157,71:158,72:$Vk1},{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,67:170,68:$Vj1,70:157,71:158,72:$Vk1},{24:171,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{24:172,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},o($Vi,[2,21]),o($Va1,[2,49]),{8:$Vn,9:$VY,10:$Vp,29:[1,173],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:149,54:132,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($Vi,[2,23]),o($Vi,[2,24]),o($Vi,[2,25]),o([8,9,10,32,33,36,37,38,39,40,41,42,43,44,45,60,61,62,63,64],$Vb1,{11:$Vl1,48:$Vl1,49:$Vl1,50:$Vl1,51:$Vl1}),o($VW,[2,47]),{11:[2,119],40:$Vm1},o($Vn1,[2,123],{71:175,9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,68:$Vj1,72:$Vk1}),o($Vo1,[2,125]),o($Vo1,[2,127]),o($Vo1,[2,128]),o($Vo1,[2,129]),o($Vo1,[2,130]),o($Vo1,[2,131]),o($Vo1,[2,132]),o($Vo1,[2,133]),o($Vo1,[2,134]),o($Vo1,[2,135]),{11:[2,120],40:$Vm1},{11:[2,121],40:$Vm1},{11:[2,116],40:$Vm1},{11:[2,117]},{11:[2,118]},{29:[1,176]},{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,68:$Vj1,70:177,71:158,72:$Vk1},o($Vo1,[2,126]),o($Vi,[2,22]),o($Vn1,[2,124],{71:175,9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,68:$Vj1,72:$Vk1})], -defaultActions: {36:[2,1],68:[2,2],69:[2,4],108:[2,19],171:[2,117],172:[2,118]}, +table: [{3:1,4:2,8:[1,3]},{1:[3]},{5:4,7:5,9:$V0,12:6,13:$V1,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:17,24:23,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va,60:$Vb,61:$Vc,62:$Vd,63:$Ve,64:$Vf,69:$Vg},{9:[1,35]},{6:[1,36]},{5:37,12:6,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:17,24:23,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va,60:$Vb,61:$Vc,62:$Vd,63:$Ve,64:$Vf,69:$Vg},{6:[2,5],7:38,9:$V0,13:$V1},o($Vh,[2,9],{7:39,9:$V0,13:$V1}),o($Vh,[2,8],{7:40,9:$V0,13:$V1}),{13:[1,41]},{11:[1,42]},{11:[1,43]},{11:[1,44]},{11:[1,45]},{11:[1,46]},{11:[1,47]},{69:[1,48]},{11:[2,20],23:49,46:50,48:[1,51],49:[1,52],50:[1,53],51:[1,54]},{9:[1,55]},{9:[1,56]},{9:[1,57]},{9:[1,58]},{9:[1,59]},o($Vi,[2,32],{9:[1,65],25:[1,60],28:[1,61],30:[1,62],32:[1,63],33:[1,64]}),o($Vj,[2,34],{34:24,35:25,24:66,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va}),o($Vk,[2,36],{36:[1,67]}),o($Vl,[2,38]),o($Vl,[2,39]),o($Vl,[2,40]),o($Vl,[2,41]),o($Vl,[2,42]),o($Vl,[2,43]),o($Vl,[2,44]),o($Vl,[2,45]),o($Vl,[2,46]),{10:[1,68]},{1:[2,1]},{6:[1,69]},{5:70,12:6,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:17,24:23,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va,60:$Vb,61:$Vc,62:$Vd,63:$Ve,64:$Vf,69:$Vg},o($Vh,[2,6]),o($Vh,[2,7]),o($Vm,[2,12]),o($Vm,[2,13]),o($Vm,[2,14]),o($Vm,[2,15]),o($Vm,[2,16]),o($Vm,[2,17]),o($Vm,[2,18]),{8:$Vn,9:$Vo,10:$Vp,11:$Vq,25:$Vr,27:$Vs,28:$Vt,29:$Vu,30:$Vv,31:$Vw,32:$Vx,33:$Vy,36:$Vz,37:$VA,38:$VB,39:$VC,40:$VD,41:$VE,42:$VF,43:$VG,44:$VH,45:$VI,48:$VJ,49:$VK,50:$VL,51:$VM,52:$VN,54:101,55:71,56:72,57:$VO,58:$VP,59:$VQ,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{22:109,24:23,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},o($VW,[2,49],{47:110,9:[1,111],52:[1,112]}),o($VX,[2,51]),o($VX,[2,52]),o($VX,[2,53]),o($VX,[2,54]),{24:113,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va,68:[1,114]},{38:[1,115]},{24:116,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{24:117,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{24:118,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{8:$Vn,9:$VY,10:$Vp,26:119,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:120,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,26:136,28:[1,135],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:120,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,26:137,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:120,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,26:138,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:120,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,26:139,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:120,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($Vi,[2,33]),o($Vj,[2,35]),{35:140,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{11:[1,141]},{1:[2,2]},{6:[2,4]},{8:$Vn,9:$Vo,10:$Vp,11:$Vq,13:[2,130],25:$Vr,27:$Vs,28:$Vt,29:$Vu,30:$Vv,31:$Vw,32:$Vx,33:$Vy,36:$Vz,37:$VA,38:$VB,39:$VC,40:$VD,41:$VE,42:$VF,43:$VG,44:$VH,45:$VI,48:$VJ,49:$VK,50:$VL,51:$VM,52:$VN,54:101,56:142,57:$VO,58:$VP,59:$VQ,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($V91,[2,72]),o($V91,[2,74]),o($V91,[2,75]),o($V91,[2,76]),o($V91,[2,77]),o($V91,[2,78]),o($V91,[2,79]),o($V91,[2,80]),o($V91,[2,81]),o($V91,[2,82]),o($V91,[2,83]),o($V91,[2,84]),o($V91,[2,85]),o($V91,[2,86]),o($V91,[2,87]),o($V91,[2,88]),o($V91,[2,89]),o($V91,[2,90]),o($V91,[2,91]),o($V91,[2,92]),o($V91,[2,93]),o($V91,[2,94]),o($V91,[2,95]),o($V91,[2,96]),o($V91,[2,97]),o($V91,[2,98]),o($V91,[2,99]),o($V91,[2,100]),o($V91,[2,101]),o($V91,[2,102]),o($V91,[2,103]),o($V91,[2,104]),o($V91,[2,105]),o($V91,[2,106]),o($V91,[2,107]),o($V91,[2,108]),o($V91,[2,109]),{11:[2,19]},o($VW,[2,47],{9:[1,143]}),o($VW,[2,50]),{8:$Vn,9:$VY,10:$Vp,26:144,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:120,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{9:[1,145]},{9:[1,146]},{9:[1,147]},{9:[1,148]},{9:[1,149]},{9:[1,150]},{8:$Vn,9:$VY,10:$Vp,27:[1,151],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:152,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($Va1,[2,56]),o($Va1,[2,58]),o($Va1,[2,59]),o($Va1,[2,60]),o($Va1,[2,61]),o($Va1,[2,62]),o($Va1,[2,63]),o($Va1,[2,64]),o($Va1,[2,65]),o($Va1,[2,66]),o($Va1,$Vb1),o($Va1,[2,68]),o($Va1,[2,69]),o($Va1,[2,70]),o($Va1,[2,71]),{8:$Vn,9:$VY,10:$Vp,26:153,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:120,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,29:[1,154],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:152,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,31:[1,155],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:152,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,27:[1,156],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:152,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{8:$Vn,9:$VY,10:$Vp,32:[1,157],33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:152,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($Vk,[2,37]),o([9,13,37,38,39,40,41,42,43,44,45,60,61,62,63,64,69],[2,3]),o($V91,[2,73]),o($VW,[2,48]),{8:$Vn,9:$VY,10:$Vp,32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,52:[1,158],53:152,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,67:159,68:$Vj1,70:160,71:161,72:$Vk1},{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,67:171,68:$Vj1,70:160,71:161,72:$Vk1},{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,67:172,68:$Vj1,70:160,71:161,72:$Vk1},{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,67:173,68:$Vj1,70:160,71:161,72:$Vk1},{24:174,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},{24:175,34:24,35:25,37:$V2,38:$V3,39:$V4,40:$V5,41:$V6,42:$V7,43:$V8,44:$V9,45:$Va},o($Vi,[2,21],{9:[1,176]}),o($Va1,[2,57]),{8:$Vn,9:$VY,10:$Vp,29:[1,177],32:$VZ,33:$V_,36:$V$,37:$V01,38:$V11,39:$V21,40:$V31,41:$V41,42:$V51,43:$V61,44:$V71,45:$V81,53:152,54:134,60:$VR,61:$VS,62:$VT,63:$VU,64:$VV},o($Vi,[2,25],{9:[1,178]}),o($Vi,[2,27],{9:[1,179]}),o($Vi,[2,29],{9:[1,180]}),o([8,9,10,32,33,36,37,38,39,40,41,42,43,44,45,60,61,62,63,64],$Vb1,{11:$Vl1,48:$Vl1,49:$Vl1,50:$Vl1,51:$Vl1}),o([9,37,38,39,40,41,42,43,44,45],[2,55]),{11:[2,127],40:$Vm1},o($Vn1,[2,131],{71:182,9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,68:$Vj1,72:$Vk1}),o($Vo1,[2,133]),o($Vo1,[2,135]),o($Vo1,[2,136]),o($Vo1,[2,137]),o($Vo1,[2,138]),o($Vo1,[2,139]),o($Vo1,[2,140]),o($Vo1,[2,141]),o($Vo1,[2,142]),o($Vo1,[2,143]),{11:[2,128],40:$Vm1},{11:[2,129],40:$Vm1},{11:[2,124],40:$Vm1},{11:[2,125]},{11:[2,126]},o($Vi,[2,22]),{29:[1,183]},o($Vi,[2,26]),o($Vi,[2,28]),o($Vi,[2,30]),{9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,68:$Vj1,70:184,71:161,72:$Vk1},o($Vo1,[2,134]),o($Vi,[2,23],{9:[1,185]}),o($Vn1,[2,132],{71:182,9:$Vc1,36:$Vd1,37:$Ve1,38:$Vf1,39:$Vg1,44:$Vh1,45:$Vi1,68:$Vj1,72:$Vk1}),o($Vi,[2,24])], +defaultActions: {36:[2,1],69:[2,2],70:[2,4],109:[2,19],174:[2,125],175:[2,126]}, parseError: function parseError(str, hash) { if (hash.recoverable) { this.trace(str); diff --git a/src/diagrams/flowchart/parser/flow.spec.js b/src/diagrams/flowchart/parser/flow.spec.js index 8743296f52..8faf4273cd 100644 --- a/src/diagrams/flowchart/parser/flow.spec.js +++ b/src/diagrams/flowchart/parser/flow.spec.js @@ -30,6 +30,22 @@ describe('when parsing ',function(){ expect(edges[0].text).toBe(''); }); + it('should handle a nodes and edges and a space between link and node',function(){ + var res = flow.parser.parse('graph TD;A --> B;'); + + + var vert = flow.parser.yy.getVertices(); + var edges = flow.parser.yy.getEdges(); + + expect(vert['A'].id).toBe('A'); + expect(vert['B'].id).toBe('B'); + expect(edges.length).toBe(1); + expect(edges[0].start).toBe('A'); + expect(edges[0].end).toBe('B'); + expect(edges[0].type).toBe('arrow'); + expect(edges[0].text).toBe(''); + }); + it('should handle a comments',function(){ var res = flow.parser.parse('graph TD;\n%% CComment\n A-->B;'); @@ -134,6 +150,16 @@ describe('when parsing ',function(){ expect(edges[0].type).toBe('arrow_cross'); }); + it('should handle text on edges without space and space between vertices and link',function(){ + var res = flow.parser.parse('graph TD;A --x|textNoSpace| B;'); + + var vert = flow.parser.yy.getVertices(); + var edges = flow.parser.yy.getEdges(); + + + expect(edges[0].type).toBe('arrow_cross'); + }); + it('should handle text on edges with space',function(){ var res = flow.parser.parse('graph TD;A--x|text including space|B;'); @@ -218,6 +244,16 @@ describe('when parsing ',function(){ expect(vert['A'].text).toBe('chimpansen hoppar'); }); + it('should handle text in vertices with space with spaces between vertices and link',function(){ + var res = flow.parser.parse('graph TD;A[chimpansen hoppar] --> C;'); + + var vert = flow.parser.yy.getVertices(); + var edges = flow.parser.yy.getEdges(); + + expect(vert['A'].type).toBe('square'); + expect(vert['A'].text).toBe('chimpansen hoppar'); + }); + it('should handle text in circle vertices with space',function(){ var res = flow.parser.parse('graph TD;A((chimpansen hoppar))-->C;');