mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-08-15 06:19:24 +02:00
Styles in place for boxes
This commit is contained in:
@@ -23,6 +23,11 @@
|
||||
],
|
||||
"devDependencies": {
|
||||
"jasmine": "~2.0.4",
|
||||
"requirejs": "~2.1.15"
|
||||
"requirejs": "~2.1.15",
|
||||
"raphael": "~2.1.2",
|
||||
"snap": "*",
|
||||
"Snap.svg": "~0.3.0",
|
||||
"dagre": "~0.6.4",
|
||||
"dagre-d3": "~0.3.2"
|
||||
}
|
||||
}
|
||||
|
@@ -2,14 +2,13 @@ var gulp = require('gulp');
|
||||
var jison = require('gulp-jison');
|
||||
var shell = require('gulp-shell')
|
||||
|
||||
gulp.task('jison', function() {
|
||||
gulp.task('jison2', function() {
|
||||
return gulp.src('./src/*.jison')
|
||||
.pipe(jison({ moduleType: 'amd' }))
|
||||
.pipe(gulp.dest('./src/'));
|
||||
});
|
||||
|
||||
gulp.task('shorthand', shell.task([
|
||||
'echo hello',
|
||||
'echo world',
|
||||
'jison src/parser/mermaid.jison -o src/parser/mermaid.js'
|
||||
gulp.task('jison', shell.task([
|
||||
'jison src/parser/mermaid.jison -o src/parser/mermaid.js',
|
||||
'source scripts/compileJison.sh'
|
||||
]))
|
@@ -40,7 +40,7 @@
|
||||
a[Lasa bok]-->b;
|
||||
b{Fundera}-->c(Vidar)|Klocka;
|
||||
b-->d(Bjarke)|Lego;
|
||||
style a background:#aaa;
|
||||
style a fill:#6ff,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5;
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -2,28 +2,46 @@
|
||||
* Created by knut on 14-11-06.
|
||||
*/
|
||||
// Now we're ready to require JointJS and write our application code.
|
||||
define(['parser/graph','parser/mermaid'],function(graph,parser){
|
||||
define('mermaid',['parser/graph','parser/mermaid'],function(graph,parser){
|
||||
var addVertices = function(vert,g){
|
||||
var keys = Object.keys(vert);
|
||||
|
||||
keys.forEach(function(id){
|
||||
var vertice = vert[id];
|
||||
var verticeText;
|
||||
//console.log(vertice);
|
||||
|
||||
|
||||
console.log(vertice.styles.length);
|
||||
|
||||
var i;
|
||||
var style='';
|
||||
for(i=0;i<vertice.styles.length;i++){
|
||||
if(typeof vertice.styles[i] !== 'undefined'){
|
||||
style=style+vertice.styles[i]+';';
|
||||
}
|
||||
}
|
||||
|
||||
if(vertice.text === undefined){
|
||||
verticeText = vertice.id;
|
||||
}
|
||||
else{
|
||||
verticeText = vertice.text;
|
||||
}
|
||||
|
||||
|
||||
if(style === ''){
|
||||
style = graph.defaultStyle();
|
||||
}
|
||||
|
||||
console.log('g.setNode("'+vertice.id+'", { label: "'+verticeText+'" });');
|
||||
if(vertice.type==='round'){
|
||||
g.setNode(vertice.id, { label: verticeText,rx:5,ry:5 });
|
||||
g.setNode(vertice.id, { label: verticeText,rx:5,ry:5,style:style });
|
||||
}else{
|
||||
if(vertice.type==='diamond'){
|
||||
g.setNode(vertice.id, {shape: "house", label: verticeText,rx:0,ry:0,style: "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;" });
|
||||
//g.setNode(vertice.id, {shape: "house", label: verticeText,rx:0,ry:0,style: "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;" });
|
||||
g.setNode(vertice.id, {shape: "house", label: verticeText,rx:0,ry:0,style: style });
|
||||
}else{
|
||||
g.setNode(vertice.id, { label: verticeText,rx:0,ry:0 });
|
||||
g.setNode(vertice.id, { label: verticeText,rx:0,ry:0,style:style });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@@ -18,7 +18,7 @@ define('parser/graph',function() {
|
||||
}
|
||||
if(typeof style !== 'undefined'){
|
||||
if(style !== null){
|
||||
//console.log('Adding style: '+style[0]);
|
||||
console.log('Adding style: '+style);
|
||||
style.forEach(function(s){
|
||||
vertices[id].styles.push(s);
|
||||
});
|
||||
@@ -42,6 +42,9 @@ define('parser/graph',function() {
|
||||
clear:function(){
|
||||
vertices = {};
|
||||
edges = [];
|
||||
},
|
||||
defaultStyle:function(){
|
||||
return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;";
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -5,26 +5,18 @@
|
||||
|
||||
%%
|
||||
"style" return 'STYLE';
|
||||
"background" return 'BKG';
|
||||
"red" return 'COLOR';
|
||||
"blue" return 'COLOR';
|
||||
"black" return 'COLOR';
|
||||
\#[a-f0-9]+ return 'HEX';
|
||||
[0-9]+ return 'NUM';
|
||||
"border" return 'BORDER';
|
||||
"dotted" return 'BORDER_STYLE';
|
||||
"dashed" return 'BORDER_STYLE';
|
||||
"solid" return 'BORDER_STYLE';
|
||||
"px" return 'UNIT';
|
||||
"pt" return 'UNIT';
|
||||
"dot" return 'UNIT';
|
||||
":" return 'COLON';
|
||||
\- return 'MINUS';
|
||||
";" return ';';
|
||||
"," return 'COMMA';
|
||||
\-\-[x] return 'ARROW_CROSS';
|
||||
\-\-">" return 'ARROW_POINT';
|
||||
\-\-[o] return 'ARROW_CIRCLE';
|
||||
\-\-\- return 'ARROW_OPEN';
|
||||
[x] return 'ARROW_CROSS';
|
||||
">" return 'ARROW_POINT';
|
||||
[o] return 'ARROW_CIRCLE';
|
||||
[a-zA-Z]+ return 'ALPHA';
|
||||
"|" return 'PIPE';
|
||||
"(" return 'PS';
|
||||
@@ -61,7 +53,9 @@ graph
|
||||
{ $$ = $1;}
|
||||
;
|
||||
|
||||
edge: vertex link vertex PIPE text
|
||||
edge: styleStatement
|
||||
{$$ = 'ya';}
|
||||
| vertex link vertex PIPE text
|
||||
{ yy.addLink($1,$3,$2,$5);$$ = 'oy'}
|
||||
| vertex link vertex
|
||||
{ yy.addLink($1,$3,$2);$$ = 'oy'}
|
||||
@@ -69,10 +63,11 @@ edge: vertex link vertex PIPE text
|
||||
{$$ = 'yo';}
|
||||
;
|
||||
|
||||
styleStatement:STYLE SPACE ALPHA SPACE stylesOpt
|
||||
{console.log('a4');$$ = $1;yy.addVertex($3,undefined,undefined,$5);}
|
||||
;
|
||||
|
||||
vertex: STYLE SPACE ALPHA SPACE styles
|
||||
{$$ = $1;yy.addVertex($3,undefined,undefined,$5);}
|
||||
| ALPHA SQS text SQE
|
||||
vertex: ALPHA SQS text SQE
|
||||
{$$ = $1;yy.addVertex($1,$3,'square');}
|
||||
| ALPHA PS text PE
|
||||
{$$ = $1;yy.addVertex($1,$3,'round');}
|
||||
@@ -90,29 +85,44 @@ text: ALPHA SPACE text
|
||||
{$$ = $1;}
|
||||
;
|
||||
|
||||
link: ARROW_POINT
|
||||
link: MINUS MINUS ARROW_POINT
|
||||
{$$ = {"type":"arrow"};}
|
||||
| ARROW_CIRCLE
|
||||
| MINUS MINUS ARROW_CIRCLE
|
||||
{$$ = {"type":"arrow_circle"};}
|
||||
| ARROW_CROSS
|
||||
| MINUS MINUS ARROW_CROSS
|
||||
{$$ = {"type":"arrow_cross"};}
|
||||
| ARROW_OPEN
|
||||
| MINUS MINUS MINUS
|
||||
{$$ = {"type":"arrow_open"};}
|
||||
;
|
||||
styles:
|
||||
styledef
|
||||
{$$ = [$1];}
|
||||
| styles COMMA styledef
|
||||
{$1.push($3);$$ = $1;}
|
||||
|
||||
stylesOpt: style
|
||||
{console.log('a:'+$1);$$ = [$1]}
|
||||
| stylesOpt COMMA style
|
||||
{console.log('a3:'+$1.length+','+$3);$1.push($3);$$ = $1;}
|
||||
;
|
||||
styledef: BKG COLON colordef
|
||||
{$$={"background":$3}}
|
||||
| COL COLON COLORDEF
|
||||
{$$={"color":$3}}
|
||||
| BORDER COLON borderWidth SPACE borderStyle SPACE colordef
|
||||
{$$={"border":$3+' '+$5+' '+$7}}
|
||||
|
||||
style: styleComponent
|
||||
{$$=$1;}
|
||||
|style styleComponent
|
||||
{console.log('b1:');$$ = $1 + $2;}
|
||||
;
|
||||
|
||||
|
||||
styleComponent: ALPHA
|
||||
{$$=$1}
|
||||
| COLON
|
||||
{$$=$1}
|
||||
| MINUS
|
||||
{$$=$1}
|
||||
| NUM
|
||||
{$$=$1}
|
||||
| UNIT
|
||||
{$$=$1}
|
||||
| SPACE
|
||||
{$$=$1}
|
||||
| HEX
|
||||
{$$=$1}
|
||||
;
|
||||
|
||||
colordef: COLOR
|
||||
{$$ = yytext;}
|
||||
| HEX
|
||||
@@ -129,5 +139,6 @@ borderStyle: BORDER_STYLE
|
||||
|
||||
%%
|
||||
define('parser/mermaid',function(){
|
||||
console.log('abc123'+parser.parseError);
|
||||
return parser;
|
||||
});
|
@@ -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,3],$V1=[1,6],$V2=[1,7],$V3=[8,11,22,23,24,25],$V4=[13,14],$V5=[1,24],$V6=[8,17,19,21],$V7=[1,36],$V8=[1,37],$V9=[1,38],$Va=[8,11,22,23,24,25,27],$Vb=[1,46],$Vc=[1,47];
|
||||
var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,7],$V2=[1,8],$V3=[8,12,23],$V4=[1,23],$V5=[8,18,20,22],$V6=[1,45],$V7=[1,40],$V8=[1,42],$V9=[1,41],$Va=[1,43],$Vb=[1,44],$Vc=[1,46],$Vd=[8,28],$Ve=[6,8,15,23,28,30,31,32,33];
|
||||
var parser = {trace: function trace() { },
|
||||
yy: {},
|
||||
symbols_: {"error":2,"expressions":3,"graph":4,"EOF":5,"SPACE":6,"edge":7,";":8,"vertex":9,"link":10,"PIPE":11,"text":12,"STYLE":13,"ALPHA":14,"styles":15,"SQS":16,"SQE":17,"PS":18,"PE":19,"DIAMOND_START":20,"DIAMOND_STOP":21,"ARROW_POINT":22,"ARROW_CIRCLE":23,"ARROW_CROSS":24,"ARROW_OPEN":25,"styledef":26,"COMMA":27,"BKG":28,"COLON":29,"colordef":30,"COL":31,"COLORDEF":32,"BORDER":33,"borderWidth":34,"borderStyle":35,"COLOR":36,"HEX":37,"NUM":38,"UNIT":39,"BORDER_STYLE":40,"$accept":0,"$end":1},
|
||||
terminals_: {2:"error",5:"EOF",6:"SPACE",8:";",11:"PIPE",13:"STYLE",14:"ALPHA",16:"SQS",17:"SQE",18:"PS",19:"PE",20:"DIAMOND_START",21:"DIAMOND_STOP",22:"ARROW_POINT",23:"ARROW_CIRCLE",24:"ARROW_CROSS",25:"ARROW_OPEN",27:"COMMA",28:"BKG",29:"COLON",31:"COL",32:"COLORDEF",33:"BORDER",36:"COLOR",37:"HEX",38:"NUM",39:"UNIT",40:"BORDER_STYLE"},
|
||||
productions_: [0,[3,2],[4,2],[4,3],[4,2],[7,5],[7,3],[7,1],[9,5],[9,4],[9,4],[9,4],[9,1],[12,3],[12,2],[12,1],[10,1],[10,1],[10,1],[10,1],[15,1],[15,3],[26,3],[26,3],[26,7],[30,1],[30,1],[34,2],[35,1]],
|
||||
symbols_: {"error":2,"expressions":3,"graph":4,"EOF":5,"SPACE":6,"edge":7,";":8,"styleStatement":9,"vertex":10,"link":11,"PIPE":12,"text":13,"STYLE":14,"ALPHA":15,"stylesOpt":16,"SQS":17,"SQE":18,"PS":19,"PE":20,"DIAMOND_START":21,"DIAMOND_STOP":22,"MINUS":23,"ARROW_POINT":24,"ARROW_CIRCLE":25,"ARROW_CROSS":26,"style":27,"COMMA":28,"styleComponent":29,"COLON":30,"NUM":31,"UNIT":32,"HEX":33,"colordef":34,"COLOR":35,"borderWidth":36,"borderStyle":37,"BORDER_STYLE":38,"$accept":0,"$end":1},
|
||||
terminals_: {2:"error",5:"EOF",6:"SPACE",8:";",12:"PIPE",14:"STYLE",15:"ALPHA",17:"SQS",18:"SQE",19:"PS",20:"PE",21:"DIAMOND_START",22:"DIAMOND_STOP",23:"MINUS",24:"ARROW_POINT",25:"ARROW_CIRCLE",26:"ARROW_CROSS",28:"COMMA",30:"COLON",31:"NUM",32:"UNIT",33:"HEX",35:"COLOR",38:"BORDER_STYLE"},
|
||||
productions_: [0,[3,2],[4,2],[4,3],[4,2],[7,1],[7,5],[7,3],[7,1],[9,5],[10,4],[10,4],[10,4],[10,1],[13,3],[13,2],[13,1],[11,3],[11,3],[11,3],[11,3],[16,1],[16,3],[27,1],[27,2],[29,1],[29,1],[29,1],[29,1],[29,1],[29,1],[29,1],[34,1],[34,1],[36,2],[37,1]],
|
||||
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
|
||||
/* this == yyval */
|
||||
|
||||
@@ -93,75 +93,78 @@ case 4:
|
||||
this.$ = $$[$0-1];
|
||||
break;
|
||||
case 5:
|
||||
yy.addLink($$[$0-4],$$[$0-2],$$[$0-3],$$[$0]);this.$ = 'oy'
|
||||
this.$ = 'ya';
|
||||
break;
|
||||
case 6:
|
||||
yy.addLink($$[$0-2],$$[$0],$$[$0-1]);this.$ = 'oy'
|
||||
yy.addLink($$[$0-4],$$[$0-2],$$[$0-3],$$[$0]);this.$ = 'oy'
|
||||
break;
|
||||
case 7:
|
||||
this.$ = 'yo';
|
||||
yy.addLink($$[$0-2],$$[$0],$$[$0-1]);this.$ = 'oy'
|
||||
break;
|
||||
case 8:
|
||||
this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);
|
||||
this.$ = 'yo';
|
||||
break;
|
||||
case 9:
|
||||
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');
|
||||
console.log('a4');this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);
|
||||
break;
|
||||
case 10:
|
||||
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');
|
||||
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');
|
||||
break;
|
||||
case 11:
|
||||
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');
|
||||
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');
|
||||
break;
|
||||
case 12:
|
||||
this.$ = $$[$0];yy.addVertex($$[$0]);
|
||||
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');
|
||||
break;
|
||||
case 13:
|
||||
this.$ = $$[$0-2] + ' ' +$$[$0];
|
||||
this.$ = $$[$0];yy.addVertex($$[$0]);
|
||||
break;
|
||||
case 14:
|
||||
this.$ = $$[$0-2] + ' ' +$$[$0];
|
||||
break;
|
||||
case 15:
|
||||
this.$ = $$[$0-1];
|
||||
break;
|
||||
case 15: case 28:
|
||||
case 16: case 35:
|
||||
this.$ = $$[$0];
|
||||
break;
|
||||
case 16:
|
||||
case 17:
|
||||
this.$ = {"type":"arrow"};
|
||||
break;
|
||||
case 17:
|
||||
case 18:
|
||||
this.$ = {"type":"arrow_circle"};
|
||||
break;
|
||||
case 18:
|
||||
case 19:
|
||||
this.$ = {"type":"arrow_cross"};
|
||||
break;
|
||||
case 19:
|
||||
case 20:
|
||||
this.$ = {"type":"arrow_open"};
|
||||
break;
|
||||
case 20:
|
||||
this.$ = [$$[$0]];
|
||||
break;
|
||||
case 21:
|
||||
$$[$0-2].push($$[$0]);this.$ = $$[$0-2];
|
||||
console.log('a:'+$$[$0]);this.$ = [$$[$0]]
|
||||
break;
|
||||
case 22:
|
||||
this.$={"background":$$[$0]}
|
||||
console.log('a3:'+$$[$0-2].length+','+$$[$0]);$$[$0-2].push($$[$0]);this.$ = $$[$0-2];
|
||||
break;
|
||||
case 23:
|
||||
this.$={"color":$$[$0]}
|
||||
this.$=$$[$0];
|
||||
break;
|
||||
case 24:
|
||||
this.$={"border":$$[$0-4]+' '+$$[$0-2]+' '+$$[$0]}
|
||||
console.log('b1:');this.$ = $$[$0-1] + $$[$0];
|
||||
break;
|
||||
case 25: case 26:
|
||||
case 25: case 26: case 27: case 28: case 29: case 30: case 31:
|
||||
this.$=$$[$0]
|
||||
break;
|
||||
case 32: case 33:
|
||||
this.$ = yytext;
|
||||
break;
|
||||
case 27:
|
||||
case 34:
|
||||
this.$ = $$[$0-1]+''+$$[$0];
|
||||
break;
|
||||
}
|
||||
},
|
||||
table: [{3:1,4:2,6:$V0,7:4,9:5,13:$V1,14:$V2},{1:[3]},{5:[1,8]},{4:9,6:$V0,7:4,9:5,13:$V1,14:$V2},{8:[1,10]},{8:[2,7],10:11,22:[1,12],23:[1,13],24:[1,14],25:[1,15]},{6:[1,16]},o($V3,[2,12],{16:[1,17],18:[1,18],20:[1,19]}),{1:[2,1]},{5:[2,2]},{4:20,5:[2,4],6:$V0,7:4,9:5,13:$V1,14:$V2},{9:21,13:$V1,14:$V2},o($V4,[2,16]),o($V4,[2,17]),o($V4,[2,18]),o($V4,[2,19]),{14:[1,22]},{12:23,14:$V5},{12:25,14:$V5},{12:26,14:$V5},{5:[2,3]},{8:[2,6],11:[1,27]},{6:[1,28]},{17:[1,29]},o($V6,[2,15],{6:[1,30]}),{19:[1,31]},{21:[1,32]},{12:33,14:$V5},{15:34,26:35,28:$V7,31:$V8,33:$V9},o($V3,[2,9]),o($V6,[2,14],{12:39,14:$V5}),o($V3,[2,10]),o($V3,[2,11]),{8:[2,5]},o($V3,[2,8],{27:[1,40]}),o($Va,[2,20]),{29:[1,41]},{29:[1,42]},{29:[1,43]},o($V6,[2,13]),{26:44,28:$V7,31:$V8,33:$V9},{30:45,36:$Vb,37:$Vc},{32:[1,48]},{34:49,38:[1,50]},o($Va,[2,21]),o($Va,[2,22]),o($Va,[2,25]),o($Va,[2,26]),o($Va,[2,23]),{6:[1,51]},{39:[1,52]},{35:53,40:[1,54]},{6:[2,27]},{6:[1,55]},{6:[2,28]},{30:56,36:$Vb,37:$Vc},o($Va,[2,24])],
|
||||
defaultActions: {8:[2,1],9:[2,2],20:[2,3],33:[2,5],52:[2,27],54:[2,28]},
|
||||
table: [{3:1,4:2,6:$V0,7:4,9:5,10:6,14:$V1,15:$V2},{1:[3]},{5:[1,9]},{4:10,6:$V0,7:4,9:5,10:6,14:$V1,15:$V2},{8:[1,11]},{8:[2,5]},{8:[2,8],11:12,23:[1,13]},{6:[1,14]},o($V3,[2,13],{17:[1,15],19:[1,16],21:[1,17]}),{1:[2,1]},{5:[2,2]},{4:18,5:[2,4],6:$V0,7:4,9:5,10:6,14:$V1,15:$V2},{10:19,15:$V2},{23:[1,20]},{15:[1,21]},{13:22,15:$V4},{13:24,15:$V4},{13:25,15:$V4},{5:[2,3]},{8:[2,7],12:[1,26]},{23:[1,30],24:[1,27],25:[1,28],26:[1,29]},{6:[1,31]},{18:[1,32]},o($V5,[2,16],{6:[1,33]}),{20:[1,34]},{22:[1,35]},{13:36,15:$V4},{15:[2,17]},{15:[2,18]},{15:[2,19]},{15:[2,20]},{6:$V6,15:$V7,16:37,23:$V8,27:38,29:39,30:$V9,31:$Va,32:$Vb,33:$Vc},o($V3,[2,10]),o($V5,[2,15],{13:47,15:$V4}),o($V3,[2,11]),o($V3,[2,12]),{8:[2,6]},{8:[2,9],28:[1,48]},o($Vd,[2,21],{29:49,6:$V6,15:$V7,23:$V8,30:$V9,31:$Va,32:$Vb,33:$Vc}),o($Ve,[2,23]),o($Ve,[2,25]),o($Ve,[2,26]),o($Ve,[2,27]),o($Ve,[2,28]),o($Ve,[2,29]),o($Ve,[2,30]),o($Ve,[2,31]),o($V5,[2,14]),{6:$V6,15:$V7,23:$V8,27:50,29:39,30:$V9,31:$Va,32:$Vb,33:$Vc},o($Ve,[2,24]),o($Vd,[2,22],{29:49,6:$V6,15:$V7,23:$V8,30:$V9,31:$Va,32:$Vb,33:$Vc})],
|
||||
defaultActions: {5:[2,5],9:[2,1],10:[2,2],18:[2,3],27:[2,17],28:[2,18],29:[2,19],30:[2,20],36:[2,6]},
|
||||
parseError: function parseError(str, hash) {
|
||||
if (hash.recoverable) {
|
||||
this.trace(str);
|
||||
@@ -231,7 +234,7 @@ parse: function parse(input) {
|
||||
} else {
|
||||
errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
|
||||
}
|
||||
this.parseError(errStr, {
|
||||
console.log(errStr, {
|
||||
text: lexer.match,
|
||||
token: this.terminals_[symbol] || symbol,
|
||||
line: lexer.yylineno,
|
||||
@@ -308,6 +311,7 @@ parse: function parse(input) {
|
||||
}};
|
||||
|
||||
define('parser/mermaid',function(){
|
||||
console.log('abc123'+parser.parseError);
|
||||
return parser;
|
||||
});/* generated by jison-lex 0.3.4 */
|
||||
var lexer = (function(){
|
||||
@@ -637,74 +641,58 @@ options: {},
|
||||
performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
|
||||
var YYSTATE=YY_START;
|
||||
switch($avoiding_name_collisions) {
|
||||
case 0:return 13;
|
||||
case 0:return 14;
|
||||
break;
|
||||
case 1:return 28;
|
||||
case 1:return 33;
|
||||
break;
|
||||
case 2:return 36;
|
||||
case 2:return 31;
|
||||
break;
|
||||
case 3:return 36;
|
||||
case 3:return 32;
|
||||
break;
|
||||
case 4:return 36;
|
||||
case 4:return 32;
|
||||
break;
|
||||
case 5:return 37;
|
||||
case 5:return 32;
|
||||
break;
|
||||
case 6:return 38;
|
||||
case 6:return 30;
|
||||
break;
|
||||
case 7:return 33;
|
||||
case 7:return 23;
|
||||
break;
|
||||
case 8:return 40;
|
||||
case 8:return 8;
|
||||
break;
|
||||
case 9:return 40;
|
||||
case 9:return 28;
|
||||
break;
|
||||
case 10:return 40;
|
||||
case 10:return 26;
|
||||
break;
|
||||
case 11:return 39;
|
||||
case 11:return 24;
|
||||
break;
|
||||
case 12:return 39;
|
||||
case 12:return 25;
|
||||
break;
|
||||
case 13:return 39;
|
||||
case 13:return 15;
|
||||
break;
|
||||
case 14:return 29;
|
||||
case 14:return 12;
|
||||
break;
|
||||
case 15:return 8;
|
||||
case 15:return 19;
|
||||
break;
|
||||
case 16:return 27;
|
||||
case 16:return 20;
|
||||
break;
|
||||
case 17:return 24;
|
||||
case 17:return 17;
|
||||
break;
|
||||
case 18:return 22;
|
||||
case 18:return 18;
|
||||
break;
|
||||
case 19:return 23;
|
||||
case 19:return 21
|
||||
break;
|
||||
case 20:return 25;
|
||||
case 20:return 22
|
||||
break;
|
||||
case 21:return 14;
|
||||
case 21:return 6;
|
||||
break;
|
||||
case 22:return 11;
|
||||
case 22:return 'NEWLINE';
|
||||
break;
|
||||
case 23:return 18;
|
||||
break;
|
||||
case 24:return 19;
|
||||
break;
|
||||
case 25:return 16;
|
||||
break;
|
||||
case 26:return 17;
|
||||
break;
|
||||
case 27:return 20
|
||||
break;
|
||||
case 28:return 21
|
||||
break;
|
||||
case 29:return 6;
|
||||
break;
|
||||
case 30:return 'NEWLINE';
|
||||
break;
|
||||
case 31:return 5;
|
||||
case 23:return 5;
|
||||
break;
|
||||
}
|
||||
},
|
||||
rules: [/^(?:style\b)/,/^(?:background\b)/,/^(?:red\b)/,/^(?:blue\b)/,/^(?:black\b)/,/^(?:#[a-f0-9]+)/,/^(?:[0-9]+)/,/^(?:border\b)/,/^(?:dotted\b)/,/^(?:dashed\b)/,/^(?:solid\b)/,/^(?:px\b)/,/^(?:pt\b)/,/^(?:dot\b)/,/^(?::)/,/^(?:;)/,/^(?:,)/,/^(?:--[x])/,/^(?:-->)/,/^(?:--[o])/,/^(?:---)/,/^(?:[a-zA-Z]+)/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:\s)/,/^(?:\n)/,/^(?:$)/],
|
||||
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],"inclusive":true}}
|
||||
rules: [/^(?:style\b)/,/^(?:#[a-f0-9]+)/,/^(?:[0-9]+)/,/^(?:px\b)/,/^(?:pt\b)/,/^(?:dot\b)/,/^(?::)/,/^(?:-)/,/^(?:;)/,/^(?:,)/,/^(?:[x])/,/^(?:>)/,/^(?:[o])/,/^(?:[a-zA-Z]+)/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:\s)/,/^(?:\n)/,/^(?:$)/],
|
||||
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"inclusive":true}}
|
||||
});
|
||||
return lexer;
|
||||
})();
|
||||
@@ -732,4 +720,4 @@ exports.main = function commonjsMain(args) {
|
||||
if (typeof module !== 'undefined' && require.main === module) {
|
||||
exports.main(process.argv.slice(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -7,6 +7,9 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
|
||||
beforeEach(function(){
|
||||
graph.clear();
|
||||
p.yy = graph;
|
||||
/*p.parse.parseError= function parseError(str, hash) {
|
||||
console.log(str);
|
||||
}*/
|
||||
});
|
||||
|
||||
it('should handle a nodes and edges',function(){
|
||||
@@ -145,7 +148,7 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
|
||||
var style = vert['Q'].styles[0];
|
||||
|
||||
expect(vert['Q'].styles.length).toBe(1);
|
||||
expect(vert['Q'].styles[0].background).toBe('#fff');
|
||||
expect(vert['Q'].styles[0]).toBe('background:#fff');
|
||||
});
|
||||
it('should handle multiple styles for a vortex',function(){
|
||||
var res = p.parse('style R background:#fff,border:1px solid red;');
|
||||
@@ -154,8 +157,8 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
|
||||
var edges = p.yy.getEdges();
|
||||
|
||||
expect(vert['R'].styles.length).toBe(2);
|
||||
expect(vert['R'].styles[0].background).toBe('#fff');
|
||||
expect(vert['R'].styles[1].border).toBe('1px solid red');
|
||||
expect(vert['R'].styles[0]).toBe('background:#fff');
|
||||
expect(vert['R'].styles[1]).toBe('border:1px solid red');
|
||||
});
|
||||
|
||||
it('should handle multiple styles in a graph',function(){
|
||||
@@ -166,9 +169,9 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
|
||||
|
||||
expect(vert['S'].styles.length).toBe(1);
|
||||
expect(vert['T'].styles.length).toBe(2);
|
||||
expect(vert['S'].styles[0].background).toBe('#aaa');
|
||||
expect(vert['T'].styles[0].background).toBe('#bbb');
|
||||
expect(vert['T'].styles[1].border).toBe('1px solid red');
|
||||
expect(vert['S'].styles[0]).toBe('background:#aaa');
|
||||
expect(vert['T'].styles[0]).toBe('background:#bbb');
|
||||
expect(vert['T'].styles[1]).toBe('border:1px solid red');
|
||||
});
|
||||
|
||||
it('should handle styles and graph definitons in a graph',function(){
|
||||
@@ -179,11 +182,20 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
|
||||
|
||||
expect(vert['S'].styles.length).toBe(1);
|
||||
expect(vert['T'].styles.length).toBe(2);
|
||||
expect(vert['S'].styles[0].background).toBe('#aaa');
|
||||
expect(vert['T'].styles[0].background).toBe('#bbb');
|
||||
expect(vert['T'].styles[1].border).toBe('1px solid red');
|
||||
expect(vert['S'].styles[0]).toBe('background:#aaa');
|
||||
expect(vert['T'].styles[0]).toBe('background:#bbb');
|
||||
expect(vert['T'].styles[1]).toBe('border:1px solid red');
|
||||
});
|
||||
it('should handle styles and graph definitons in a graph',function(){
|
||||
var res = p.parse('style T background:#bbb,border:1px solid red;');
|
||||
//var res = p.parse('style T background: #bbb;');
|
||||
|
||||
var vert = p.yy.getVertices();
|
||||
|
||||
expect(vert['T'].styles.length).toBe(2);
|
||||
expect(vert['T'].styles[0]).toBe('background:#bbb');
|
||||
expect(vert['T'].styles[1]).toBe('border:1px solid red');
|
||||
});
|
||||
//console.log(p.parse('style S background:#aaa;\nstyle T background:#bbb,border:1px solid red;'));
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user