Make sequenceDiagram terminal newline optional

Fixes gh-229
This commit is contained in:
Richard Gibson
2015-11-06 10:43:19 -05:00
parent 76130bc485
commit dbd63ff797
2 changed files with 21 additions and 22 deletions

View File

@@ -45,7 +45,7 @@
\-[x] return 'SOLID_CROSS'; \-[x] return 'SOLID_CROSS';
\-\-[x] return 'DOTTED_CROSS'; \-\-[x] return 'DOTTED_CROSS';
":"[^#\n;]+ return 'TXT'; ":"[^#\n;]+ return 'TXT';
<<EOF>> return 'EOF'; <<EOF>> return 'NL';
. return 'INVALID'; . return 'INVALID';
/lex /lex
@@ -57,7 +57,7 @@
%% /* language grammar */ %% /* language grammar */
start start
: SD document 'EOF' { yy.apply($2);return $2; } : SD document { yy.apply($2);return $2; }
; ;
document document
@@ -69,7 +69,6 @@ line
: SPACE statement { $$ = $2 } : SPACE statement { $$ = $2 }
| statement { $$ = $1 } | statement { $$ = $1 }
| NL { $$=[];} | NL { $$=[];}
| EOF { $$=[];}
; ;
statement statement

View File

@@ -33,7 +33,7 @@ describe('when parsing a sequenceDiagram',function() {
str = 'sequenceDiagram\n' + str = 'sequenceDiagram\n' +
'Alice->Bob:Hello Bob, how are you?\n' + 'Alice->Bob:Hello Bob, how are you?\n' +
'Note right of Bob: Bob thinks\n' + 'Note right of Bob: Bob thinks\n' +
'Bob-->Alice: I am good thanks!\n'; 'Bob-->Alice: I am good thanks!';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -49,7 +49,7 @@ describe('when parsing a sequenceDiagram',function() {
it('it should space in actor names', function () { it('it should space in actor names', function () {
str = 'sequenceDiagram\n' + str = 'sequenceDiagram\n' +
'Alice->Bob:Hello Bob, how are - you?\n' + 'Alice->Bob:Hello Bob, how are - you?\n' +
'Bob-->Alice: I am good thanks!\n'; 'Bob-->Alice: I am good thanks!';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -64,7 +64,7 @@ describe('when parsing a sequenceDiagram',function() {
}); });
it('it should handle in async messages', function () { it('it should handle in async messages', function () {
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'Alice-xBob:Hello Bob, how are you?\n'; 'Alice-xBob:Hello Bob, how are you?';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -78,7 +78,7 @@ describe('when parsing a sequenceDiagram',function() {
}); });
it('it should handle in async dotted messages', function () { it('it should handle in async dotted messages', function () {
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'Alice--xBob:Hello Bob, how are you?\n'; 'Alice--xBob:Hello Bob, how are you?';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -92,7 +92,7 @@ describe('when parsing a sequenceDiagram',function() {
}); });
it('it should handle in arrow messages', function () { it('it should handle in arrow messages', function () {
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'Alice->>Bob:Hello Bob, how are you?\n'; 'Alice->>Bob:Hello Bob, how are you?';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -106,7 +106,7 @@ describe('when parsing a sequenceDiagram',function() {
}); });
it('it should handle in arrow messages', function () { it('it should handle in arrow messages', function () {
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'Alice-->>Bob:Hello Bob, how are you?\n'; 'Alice-->>Bob:Hello Bob, how are you?';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -123,7 +123,7 @@ describe('when parsing a sequenceDiagram',function() {
'Alice->Bob: Hello Bob, how are you?\n'+ 'Alice->Bob: Hello Bob, how are you?\n'+
'%% Comment\n' + '%% Comment\n' +
'Note right of Bob: Bob thinks\n' + 'Note right of Bob: Bob thinks\n' +
'Bob-->Alice: I am good thanks!\n'; 'Bob-->Alice: I am good thanks!';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -176,7 +176,7 @@ describe('when parsing a sequenceDiagram',function() {
' Alice->Bob: Hello Bob, how are you?\n\n' + ' Alice->Bob: Hello Bob, how are you?\n\n' +
'%% Comment\n' + '%% Comment\n' +
'Note right of Bob: Bob thinks\n' + 'Note right of Bob: Bob thinks\n' +
'Bob-->Alice: I am good thanks!\n'; 'Bob-->Alice: I am good thanks!';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -194,7 +194,7 @@ describe('when parsing a sequenceDiagram',function() {
' Alice->Bob: Hello Bob, how are you?\n\n' + ' Alice->Bob: Hello Bob, how are you?\n\n' +
'%% Comment\n' + '%% Comment\n' +
'Note right of Bob: Bob thinks\n' + 'Note right of Bob: Bob thinks\n' +
'Bob-->Alice: I am good thanks!\n'; 'Bob-->Alice: I am good thanks!';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -218,7 +218,7 @@ describe('when parsing a sequenceDiagram',function() {
'Note right of John: Rational thoughts<br/>prevail...\n'+ 'Note right of John: Rational thoughts<br/>prevail...\n'+
' John-->Alice: Great!\n'+ ' John-->Alice: Great!\n'+
' John->Bob: How about you?\n'+ ' John->Bob: How about you?\n'+
'Bob-->John: Jolly good!\n'; 'Bob-->John: Jolly good!';
sq.parse(str); sq.parse(str);
var actors = sq.yy.getActors(); var actors = sq.yy.getActors();
@@ -611,7 +611,7 @@ describe('when rendering a sequenceDiagram',function() {
it('it should handle one actor', function () { it('it should handle one actor', function () {
sd.bounds.init(); sd.bounds.init();
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'participant Alice\n'; 'participant Alice';
sq.parse(str); sq.parse(str);
sd.draw(str,'tst'); sd.draw(str,'tst');
@@ -627,7 +627,7 @@ describe('when rendering a sequenceDiagram',function() {
sd.bounds.init(); sd.bounds.init();
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'participant Alice\n' + 'participant Alice\n' +
'Note left of Alice: Alice thinks\n'; 'Note left of Alice: Alice thinks';
sq.parse(str); sq.parse(str);
sd.draw(str,'tst'); sd.draw(str,'tst');
@@ -643,7 +643,7 @@ describe('when rendering a sequenceDiagram',function() {
sd.bounds.init(); sd.bounds.init();
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'participant Alice\n' + 'participant Alice\n' +
'Note right of Alice: Alice thinks\n'; 'Note right of Alice: Alice thinks';
sq.parse(str); sq.parse(str);
sd.draw(str,'tst'); sd.draw(str,'tst');
@@ -658,7 +658,7 @@ describe('when rendering a sequenceDiagram',function() {
it('it should handle two actors', function () { it('it should handle two actors', function () {
sd.bounds.init(); sd.bounds.init();
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'Alice->Bob: Hello Bob, how are you?\n'; 'Alice->Bob: Hello Bob, how are you?';
sq.parse(str); sq.parse(str);
sd.draw(str,'tst'); sd.draw(str,'tst');
@@ -674,7 +674,7 @@ describe('when rendering a sequenceDiagram',function() {
sd.bounds.init(); sd.bounds.init();
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'Alice->Bob: Hello Bob, how are you?\n'+ 'Alice->Bob: Hello Bob, how are you?\n'+
'Bob->Alice: Fine!\n'; 'Bob->Alice: Fine!';
sq.parse(str); sq.parse(str);
sd.draw(str,'tst'); sd.draw(str,'tst');
@@ -691,7 +691,7 @@ describe('when rendering a sequenceDiagram',function() {
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'Alice->Bob: Hello Bob, how are you?\n'+ 'Alice->Bob: Hello Bob, how are you?\n'+
'Note right of Bob: Bob thinks\n' + 'Note right of Bob: Bob thinks\n' +
'Bob->Alice: Fine!\n'; 'Bob->Alice: Fine!';
sq.parse(str); sq.parse(str);
sd.draw(str,'tst'); sd.draw(str,'tst');
@@ -711,7 +711,7 @@ describe('when rendering a sequenceDiagram',function() {
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'Alice->Bob: Hello Bob, how are you?\n'+ 'Alice->Bob: Hello Bob, how are you?\n'+
'Note left of Alice: Bob thinks\n' + 'Note left of Alice: Bob thinks\n' +
'Bob->Alice: Fine!\n'; 'Bob->Alice: Fine!';
sq.parse(str); sq.parse(str);
sd.draw(str,'tst'); sd.draw(str,'tst');
@@ -730,7 +730,7 @@ describe('when rendering a sequenceDiagram',function() {
'Alice->Bob: Hello Bob, how are you?\n'+ 'Alice->Bob: Hello Bob, how are you?\n'+
'loop Cheers\n' + 'loop Cheers\n' +
'Bob->Alice: Fine!\n' + 'Bob->Alice: Fine!\n' +
'end\n'; 'end';
sq.parse(str); sq.parse(str);
sd.draw(str,'tst'); sd.draw(str,'tst');
@@ -806,7 +806,7 @@ describe('when rendering a sequenceDiagram with actor mirror activated',function
it('it should handle one actor', function () { it('it should handle one actor', function () {
sd.bounds.init(); sd.bounds.init();
var str = 'sequenceDiagram\n' + var str = 'sequenceDiagram\n' +
'participant Alice\n'; 'participant Alice';
sq.parse(str); sq.parse(str);
sd.draw(str,'tst'); sd.draw(str,'tst');