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