fix #3019 Add word boundary to FK&PK. (#3168)

This commit is contained in:
Sidharth Vinod
2022-06-23 11:50:32 +05:30
committed by GitHub
parent 8251bf204d
commit 0e47c0ee6c
2 changed files with 14 additions and 1 deletions

View File

@@ -28,7 +28,7 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili
"erDiagram" return 'ER_DIAGRAM'; "erDiagram" return 'ER_DIAGRAM';
"{" { this.begin("block"); return 'BLOCK_START'; } "{" { this.begin("block"); return 'BLOCK_START'; }
<block>\s+ /* skip whitespace in block */ <block>\s+ /* skip whitespace in block */
<block>(?:PK)|(?:FK) return 'ATTRIBUTE_KEY' <block>\b((?:PK)|(?:FK))\b return 'ATTRIBUTE_KEY'
<block>[A-Za-z][A-Za-z0-9\-_]* return 'ATTRIBUTE_WORD' <block>[A-Za-z][A-Za-z0-9\-_]* return 'ATTRIBUTE_WORD'
<block>\"[^"]*\" return 'COMMENT'; <block>\"[^"]*\" return 'COMMENT';
<block>[\n]+ /* nothing */ <block>[\n]+ /* nothing */

View File

@@ -72,6 +72,19 @@ describe('when parsing ER diagram it...', function () {
expect(entities[entity].attributes.length).toBe(1); expect(entities[entity].attributes.length).toBe(1);
}); });
it('should allow an entity with attribute starting with fk or pk and a comment', function () {
const entity = 'BOOK';
const attribute1 = 'int fk_title FK';
const attribute2 = 'string pk_author PK';
const attribute3 = 'float pk_price PK "comment"';
erDiagram.parser.parse(
`erDiagram\n${entity} {\n${attribute1} \n\n${attribute2}\n${attribute3}\n}`
);
const entities = erDb.getEntities();
expect(entities[entity].attributes.length).toBe(3);
});
it('should allow an entity with multiple attributes to be defined', function () { it('should allow an entity with multiple attributes to be defined', function () {
const entity = 'BOOK'; const entity = 'BOOK';
const attribute1 = 'string title'; const attribute1 = 'string title';