From fc2aec5dcdc9fea56875367056f758f3c5202021 Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Fri, 9 Dec 2022 01:08:27 +0300 Subject: [PATCH] add structure for container and shape --- grammar.js | 115 +++++-- src/grammar.json | 749 ++++++++++++++++++++++++-------------------- src/node-types.json | 102 +++--- src/parser.c | Bin 199538 -> 83068 bytes tree-sitter-d2.wasm | Bin 33162 -> 15865 bytes 5 files changed, 559 insertions(+), 407 deletions(-) diff --git a/grammar.js b/grammar.js index 7e6bf9d..5a822ba 100644 --- a/grammar.js +++ b/grammar.js @@ -1,24 +1,103 @@ -const spaces = repeat(choice(" ", "\t")); +const PREC = { + COMMENT: -2, + IDENTIFIER: 11, + SHAPE: 10, + CONTAINER: 9, +}; + +spaces = /[ \t]/; module.exports = grammar({ name: "d2", - extras: ($) => [$.line_comment], + extras: ($) => [ + /[ \f\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]/, + $.line_comment, + ], word: ($) => $._word, conflicts: ($) => [ - [$.shape_key], + //[$.shape_key], + /* [$._shape_path], [$._shape_block], [$._shape_block_definition], [$._style_attr_block], [$._inner_style_attribute], [$._emptyline], +*/ ], rules: { - source_file: ($) => repeat($._root_definition), + source_file: ($) => repeat($._new_root_definition), + + _new_root_definition: ($) => choice($._eol, $.shape, $.container), + + container: ($) => + prec( + PREC.CONTAINER, + seq( + alias($.shape_key, $.container_key), + choice( + seq($._dot, $.shape), + seq( + seq( + optional(seq($._colon, optional($.label))), + optional(seq(alias($._new_container_block, $.block))) + ) + ) + ) + ) + ), + + shape: ($) => + prec( + PREC.SHAPE, + seq( + $.shape_key, + optional( + seq( + optional(seq($._colon, optional($.label))), + optional(seq(alias($._new_shape_block, $.block))) + ) + ), + $._end + ) + ), + + shape_key: ($) => + choice( + $.string, + prec.left( + seq( + optional($._dash), + choice( + $._word, + token(prec(PREC.IDENTIFIER, /([\w\d]+( +|\-)[\w\d]+)+/)) + ), + optional($._dash) + ) + ) + ), + + _new_shape_block: ($) => + prec(PREC.SHAPE, seq("{", repeat($._new_shape_block_definition), "}")), + + _new_shape_block_definition: ($) => prec(PREC.SHAPE, choice($._eol)), + + _new_container_block: ($) => + prec( + PREC.CONTAINER, + seq("{", repeat($._new_container_block_definition), "}") + ), + + _new_container_block_definition: ($) => + prec(PREC.CONTAINER, choice($._eol, $.shape, $.container)), + + // -------------------------------------------- + + // source_file: ($) => repeat($._root_definition), _root_definition: ($) => choice( @@ -60,19 +139,6 @@ module.exports = grammar({ $.shape_key ), - shape_key: ($) => - choice( - $.string, - seq( - optional($._dash), - choice( - $._word, - repeat1(seq($._word, choice(repeat1(" "), $._dash), $._word)) - ), - optional($._dash) - ) - ), - _dash: ($) => token.immediate("-"), label: ($) => choice($.string, $._unquoted_string), @@ -169,15 +235,16 @@ module.exports = grammar({ _connection_attr_key: ($) => choice("source-arrowhead", "target-arrowhead"), - _colon: ($) => seq(spaces, ":"), + _colon: ($) => seq(":"), _arrow: ($) => seq(spaces, $.arrow), arrow: ($) => choice(/-+>/, /--+/, /<-+/, /<-+>/), - dot: ($) => token.immediate("."), + _dot: ($) => seq($.dot), + dot: ($) => token("."), - _unquoted_string: ($) => token.immediate(/[^'"`\n;{}]+/), + _unquoted_string: ($) => token(prec(5, /[\w\-]([^'"`\n;{}]*[\w\-])?/)), string: ($) => choice( @@ -186,12 +253,12 @@ module.exports = grammar({ seq("`", repeat(token.immediate(/[^`\n]+/)), "`") ), - line_comment: ($) => token(prec(-2, seq("#", /.*/))), + line_comment: ($) => token(prec(PREC.COMMENT, seq("#", /.*/))), _word: ($) => /[\w\d]+/, - _emptyline: ($) => seq(spaces, $._eof), - _eof: ($) => choice("\n", "\0"), - _end: ($) => seq(spaces, choice(";", $._eof)), + _emptyline: ($) => prec(-1, seq(spaces, $._eol)), + _eol: ($) => choice("\n", "\0"), + _end: ($) => seq(choice(";", $._eol)), }, }); diff --git a/src/grammar.json b/src/grammar.json index 537f9ee..d6bdea1 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -6,7 +6,346 @@ "type": "REPEAT", "content": { "type": "SYMBOL", - "name": "_root_definition" + "name": "_new_root_definition" + } + }, + "_new_root_definition": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_eol" + }, + { + "type": "SYMBOL", + "name": "shape" + }, + { + "type": "SYMBOL", + "name": "container" + } + ] + }, + "container": { + "type": "PREC", + "value": 9, + "content": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "shape_key" + }, + "named": true, + "value": "container_key" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_dot" + }, + { + "type": "SYMBOL", + "name": "shape" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_colon" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "label" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_new_container_block" + }, + "named": true, + "value": "block" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + } + ] + } + ] + } + }, + "shape": { + "type": "PREC", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "shape_key" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_colon" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "label" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_new_shape_block" + }, + "named": true, + "value": "block" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_end" + } + ] + } + }, + "shape_key": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "string" + }, + { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_dash" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_word" + }, + { + "type": "TOKEN", + "content": { + "type": "PREC", + "value": 11, + "content": { + "type": "PATTERN", + "value": "([\\w\\d]+( +|\\-)[\\w\\d]+)+" + } + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_dash" + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + "_new_shape_block": { + "type": "PREC", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_new_shape_block_definition" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + } + }, + "_new_shape_block_definition": { + "type": "PREC", + "value": 10, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_eol" + } + ] + } + }, + "_new_container_block": { + "type": "PREC", + "value": 9, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_new_container_block_definition" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + } + }, + "_new_container_block_definition": { + "type": "PREC", + "value": 9, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_eol" + }, + { + "type": "SYMBOL", + "name": "shape" + }, + { + "type": "SYMBOL", + "name": "container" + } + ] } }, "_root_definition": { @@ -144,20 +483,8 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "SYMBOL", @@ -213,20 +540,8 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "REPEAT", @@ -243,40 +558,16 @@ "value": "container_key" }, { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "SYMBOL", "name": "dot" }, { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" } ] } @@ -287,85 +578,6 @@ } ] }, - "shape_key": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "string" - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_dash" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_word" - }, - { - "type": "REPEAT1", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_word" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "REPEAT1", - "content": { - "type": "STRING", - "value": " " - } - }, - { - "type": "SYMBOL", - "name": "_dash" - } - ] - }, - { - "type": "SYMBOL", - "name": "_word" - } - ] - } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_dash" - }, - { - "type": "BLANK" - } - ] - } - ] - } - ] - }, "_dash": { "type": "IMMEDIATE_TOKEN", "content": { @@ -390,20 +602,8 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "CHOICE", @@ -477,20 +677,8 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "STRING", @@ -509,20 +697,8 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "SYMBOL", @@ -563,20 +739,8 @@ ] }, { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "STRING", @@ -686,40 +850,16 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "STRING", "value": "{" }, { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "REPEAT", @@ -776,20 +916,8 @@ ] }, { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "STRING", @@ -801,20 +929,8 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "ALIAS", @@ -959,22 +1075,6 @@ "_colon": { "type": "SEQ", "members": [ - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } - }, { "type": "STRING", "value": ":" @@ -985,20 +1085,8 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } + "type": "PATTERN", + "value": "[ \\t]" }, { "type": "SYMBOL", @@ -1027,18 +1115,31 @@ } ] }, + "_dot": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "dot" + } + ] + }, "dot": { - "type": "IMMEDIATE_TOKEN", + "type": "TOKEN", "content": { "type": "STRING", "value": "." } }, "_unquoted_string": { - "type": "IMMEDIATE_TOKEN", + "type": "TOKEN", "content": { - "type": "PATTERN", - "value": "[^'\"`\\n;{}]+" + "type": "PREC", + "value": 5, + "content": { + "type": "PATTERN", + "value": "[\\w\\-]([^'\"`\\n;{}]*[\\w\\-])?" + } } }, "string": { @@ -1140,31 +1241,23 @@ "value": "[\\w\\d]+" }, "_emptyline": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] + "type": "PREC", + "value": -1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "[ \\t]" + }, + { + "type": "SYMBOL", + "name": "_eol" } - }, - { - "type": "SYMBOL", - "name": "_eof" - } - ] + ] + } }, - "_eof": { + "_eol": { "type": "CHOICE", "members": [ { @@ -1180,22 +1273,6 @@ "_end": { "type": "SEQ", "members": [ - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } - }, { "type": "CHOICE", "members": [ @@ -1205,7 +1282,7 @@ }, { "type": "SYMBOL", - "name": "_eof" + "name": "_eol" } ] } @@ -1213,34 +1290,16 @@ } }, "extras": [ + { + "type": "PATTERN", + "value": "[ \\f\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]" + }, { "type": "SYMBOL", "name": "line_comment" } ], - "conflicts": [ - [ - "shape_key" - ], - [ - "_shape_path" - ], - [ - "_shape_block" - ], - [ - "_shape_block_definition" - ], - [ - "_style_attr_block" - ], - [ - "_inner_style_attribute" - ], - [ - "_emptyline" - ] - ], + "conflicts": [], "precedences": [], "externals": [], "inline": [], diff --git a/src/node-types.json b/src/node-types.json index 2efdd90..08d15be 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -48,6 +48,10 @@ "type": "connection", "named": true }, + { + "type": "container", + "named": true + }, { "type": "container_key", "named": true @@ -60,6 +64,10 @@ "type": "label", "named": true }, + { + "type": "shape", + "named": true + }, { "type": "shape_key", "named": true @@ -106,6 +114,37 @@ ] } }, + { + "type": "container", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "container_key", + "named": true + }, + { + "type": "dot", + "named": true + }, + { + "type": "label", + "named": true + }, + { + "type": "shape", + "named": true + } + ] + } + }, { "type": "container_key", "named": true, @@ -163,6 +202,29 @@ ] } }, + { + "type": "shape", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "label", + "named": true + }, + { + "type": "shape_key", + "named": true + } + ] + } + }, { "type": "shape_key", "named": true, @@ -187,39 +249,11 @@ "required": false, "types": [ { - "type": "attr_key", + "type": "container", "named": true }, { - "type": "attr_value", - "named": true - }, - { - "type": "block", - "named": true - }, - { - "type": "connection", - "named": true - }, - { - "type": "container_key", - "named": true - }, - { - "type": "dot", - "named": true - }, - { - "type": "invalid", - "named": true - }, - { - "type": "label", - "named": true - }, - { - "type": "shape_key", + "type": "shape", "named": true } ] @@ -234,18 +268,10 @@ "type": "\u0000", "named": false }, - { - "type": "\t", - "named": false - }, { "type": "\n", "named": false }, - { - "type": " ", - "named": false - }, { "type": "\"", "named": false diff --git a/src/parser.c b/src/parser.c index 00ca67858728554f4dfe2b6c1714f0df4c76f7f5..a0e3f0fd526b48cab3ddc81c2cc8e33b6aa4c1ff 100644 GIT binary patch literal 83068 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 diff --git a/tree-sitter-d2.wasm b/tree-sitter-d2.wasm index c9f5b7dd472e7e9d92497c1aa63b51ee17035672..e91ec96cf1556c296e00df4dc8fe108101eee203 100755 GIT binary patch literal 15865 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 z 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 literal 33162 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șBQ zZ8xKv_6d3NwQl3_#A)hf;&*see5rokc-+?q4{O~J;cwH*_LC{v(aaN8H~W^q%8SLs zgEu?M&+=^X=oc#8@(gt4^N`YQ{Gs96@^)EHD!wBCe<1+(-j^7D>;nV=(9cg`5xWfUp!3pz*8FA?sGl%vs^lt?V4;q$(4_{ zSswjzm(C;J@>Z&RnNqUAqhF(R9Ul*=>(Ru^xmw>s(h4=P`(N-R^$QQV_miCWbMuDv zx@pScy5Ec*_V|a~`3&De(a*$%H((y!Tb|OLacS1WSKV=k3tc=s%@aquN6&EU3{Uy! z=ftJgKV2`pb(8rv4pUylQ*MgxE{Ai^{YKQ2pVr3{$CDnt%pHebXYt0_W4GCDXV*Qi z-A0!mPj{Ek!)~47`6>OJc52|#dDLysLvEen8L``cj7#U?<6Ju4zPfZC@$#MR%4e+9 zqt|%!?H+x#N3ZA6mw5D-Jo=p;eVIpB>#);ao^>Lm?jxM*Qt1rOrCrx0@9*N}Aw3=? z3RA7)O|siBG)h`H{7T0gVwWA>b}N3(hd0|wx8wgrPd>`Q&t~Jfxm$nTqoX|hoOXD{ zrSp*Dx7U}}@l}E+PVe~Lt$1Wg3EB-mQx4||k3PVq+kK#|$SzO*Z61A~OE>L$G2UrZ zPbw{|sGY$|YRk{BEh(+7ttpvMK7*B2SJjqQRN)`;CT+_2(n;m=tfaK2rg}O7V{sT; zT}zfzYHMIy%kYntmzR`PPn=i|Wqf(Xx#MfuIn^~|%WDd1O2<}Aox;X}wxF!Kvbu)B zu(G;}mDE&M*OuU)y{xFJpnr9om8inb!9NT>!3R&WM9Ee72g}K+0_SX8MP((cEIp?j zDgN1XCMg(#tDaC^Fuh`I?RY~zsg%ygmQEROvgLWn)T+r-t82^0mcXe3|NKZvdG$CZ z+hkg4<%@FCDA> zlYky$*%;hB_G8kfq!ukw)sv`EOZ+43lgdkLdnD)eFnQ7vni&AvxVy<$zTK03ZJzXn z=JD-jdco;R&DxCylkQRrB{f@#8WgHbOXCYt4_gXXJ-a2ht~E(&7Z|8^k@0uKJIIzS z7f<{%Dl!xD*0(|4tnX#21 z*$mmQ$>_4Sm$tM_O-A-`u$M6nZiNg4e-We+&O2agY6fWnq4TA{_ThLI9~O1dbHzaX23e`3dLuL8@_nxz=alcshjY zW@HJ@iy^}y-I2Ef(iid)Bpc=3gYp(Z_CYRz420~4Y=q#YDjSVs6G#vEzYd@O1Nagu Al>h($