From 6835da6d3cfc2d287578776985235ab345ba3c37 Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Thu, 8 Dec 2022 01:15:09 +0300 Subject: [PATCH] add container key --- grammar.js | 36 +++-- queries/highlights.scm | 9 +- src/grammar.json | 287 +++++++++++++++++++++---------------- src/node-types.json | 27 ++++ src/parser.c | Bin 178154 -> 192276 bytes test/corpus/attributes.txt | 4 +- test/corpus/connection.txt | 6 +- test/corpus/container.txt | 4 +- test/highlight/keyword.d2 | 12 +- test/highlight/shape.d2 | 8 +- tree-sitter-d2.wasm | Bin 31898 -> 33976 bytes 11 files changed, 230 insertions(+), 163 deletions(-) diff --git a/grammar.js b/grammar.js index 7bf3b5e..e7d43fe 100644 --- a/grammar.js +++ b/grammar.js @@ -11,7 +11,6 @@ module.exports = grammar({ [$.shape_key], [$.arrow], [$._shape_path], - [$._shape_key], [$._shape_block], [$._shape_block_definition], [$._style_attr_block], @@ -47,7 +46,7 @@ module.exports = grammar({ choice( seq($.dot, $._shape_attribute), seq( - optional(seq($._colon, optional($.label))), + optional(seq($._colon, optional(seq(spaces, $.label)))), optional(alias($._shape_block, $.block)) ) ) @@ -56,9 +55,23 @@ module.exports = grammar({ ), _shape_path: ($) => + seq( + spaces, + repeat(seq(alias($.shape_key, $.container_key), spaces, $.dot, spaces)), + $.shape_key + ), + + shape_key: ($) => choice( - $._shape_key, - seq($._shape_key, repeat1(seq($.dot, $._shape_key))) + $.string, + seq( + optional($._dash), + choice( + $._word, + repeat1(seq($._word, choice(repeat1(" "), $._dash), $._word)) + ), + optional($._dash) + ) ), label: ($) => choice($.string, $._unquoted_string), @@ -157,21 +170,6 @@ module.exports = grammar({ _connection_attr_key: ($) => choice("source-arrowhead", "target-arrowhead"), - _shape_key: ($) => seq(spaces, $.shape_key), - - shape_key: ($) => - choice( - $.string, - seq( - optional($._dash), - choice( - $._word, - repeat1(seq($._word, choice(repeat1(" "), $._dash), $._word)) - ), - optional($._dash) - ) - ), - _colon: ($) => seq(spaces, ":"), _arrow: ($) => seq(spaces, $.arrow), diff --git a/queries/highlights.scm b/queries/highlights.scm index 6072566..f9e3551 100644 --- a/queries/highlights.scm +++ b/queries/highlights.scm @@ -5,14 +5,16 @@ (invalid (_) @error) ;------------------------------------------------------------------------------- +(container_key) @constant (shape_key) @variable -(attr_key) @keyword +(attr_key) @property ; Literals ;------------------------------------------------------------------------------- -(string) @string -(label) @string +(container_key (string) @string.special) +(shape_key (string) @string) +(label) @string (attr_value) @string ; Comments @@ -26,6 +28,7 @@ (arrow) @operator [ + (dot) ":" ";" ] @punctuation.delimiter diff --git a/src/grammar.json b/src/grammar.json index b312705..d7e966c 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -141,8 +141,29 @@ "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "label" + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": " " + }, + { + "type": "STRING", + "value": "\t" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "label" + } + ] }, { "type": "BLANK" @@ -189,34 +210,157 @@ ] }, "_shape_path": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": " " + }, + { + "type": "STRING", + "value": "\t" + } + ] + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "shape_key" + }, + "named": true, + "value": "container_key" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": " " + }, + { + "type": "STRING", + "value": "\t" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "dot" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": " " + }, + { + "type": "STRING", + "value": "\t" + } + ] + } + } + ] + } + }, + { + "type": "SYMBOL", + "name": "shape_key" + } + ] + }, + "shape_key": { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "_shape_key" + "name": "string" }, { "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_shape_key" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_dash" + }, + { + "type": "BLANK" + } + ] }, { - "type": "REPEAT1", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "dot" - }, - { - "type": "SYMBOL", - "name": "_shape_key" + "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" + } + ] } ] } @@ -809,110 +953,6 @@ } ] }, - "_shape_key": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": " " - }, - { - "type": "STRING", - "value": "\t" - } - ] - } - }, - { - "type": "SYMBOL", - "name": "shape_key" - } - ] - }, - "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" - } - ] - } - ] - } - ] - }, "_colon": { "type": "SEQ", "members": [ @@ -1240,9 +1280,6 @@ [ "_shape_path" ], - [ - "_shape_key" - ], [ "_shape_block" ], diff --git a/src/node-types.json b/src/node-types.json index 5576e31..0171495 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -48,6 +48,10 @@ "type": "connection", "named": true }, + { + "type": "container_key", + "named": true + }, { "type": "dot", "named": true @@ -83,6 +87,10 @@ "type": "attr_value", "named": true }, + { + "type": "container_key", + "named": true + }, { "type": "dot", "named": true @@ -98,6 +106,21 @@ ] } }, + { + "type": "container_key", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "string", + "named": true + } + ] + } + }, { "type": "invalid", "named": true, @@ -179,6 +202,10 @@ "type": "connection", "named": true }, + { + "type": "container_key", + "named": true + }, { "type": "dot", "named": true diff --git a/src/parser.c b/src/parser.c index b256edfa2b005b512ae3f84792fbf8b1be6f6278..1056ace39d792f6d51330263a8affe3a6b0b075b 100644 GIT binary patch literal 192276 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 literal 178154 zcmeIbZF5|=ktqCp)~}fBRK@ZwJI~;pGjE&CRw)YYxUMW`EqZVEPPS%8;>emZMQX`m zY~QT^`)zasjkgBQ8%a?VQ%;R|05lqnMx(pYX#8e>_UiQNWH&5fUl2!^X_8% z!`toTtEW#VC;ROWXXlrP{j15ltIIdJvOQF~*quy1`Qm@S-Cthr&wlvg^?rAH^2Ppa zf7owN_y2cyarw!k-|Ws#_OAgOLS^#o$@8zifAZDQ=HHIKd-3(R&nK$kvKPlsj*m7^ zzy1FC@uZqg`TMgc-$8?*l*?ZH`!|35_L*t4ob&f5&%S>0!hBZz_4wQWb@bePZ5I6b z=|-#vfwY~z=^{=fYC=-Ho4EBE!ACx6{gFE5V%_4}jePmeawj-G#Y{O8G%0srN@ zZ~yfD(__cJ+4hk4KZq*Usu7`SLbJ!hl}n0>;Oe-8kFs!P=5^v_|yL6@J4?Qhxul=|KSY+ z!J#re&fjfc?GJjODjezS{i#Mrg#!g-&VSU%t9YdP`{qwiUi_I6h(?VqvBt^v5-|)3 z@DiqLcYzfywkP|mOWjLIjo0UA2dwbw{Pg?+%Bzqfmv6Qw=RfK1Ax++1ogVh@a4M>h zEZejF+wB3C8?*@tQ{%UgCa3$eA9YQn33AI}_jAB4RYaEatBY4emhHvG`A=_lTLc@D z=CHl^VMhZCYK8Q9`t37V*3f%M6HRiY2^7^KIi4MJK}e6Uj&TE zThVBRRu!~r!U6x$wrXg+LaSQ0!jbFYz=ZBLug>4T-QfajLKb-TrLG*Z0QMTLi5ExT ze61_uxHZ&Ensrz~dZjctZsZn}Ehw--l;h%UaM-#K7W3KemHmvP#x}sy?{=G@(F{lJ zmA>2JlAqzI^>-^wW;{}qXn)_HUTKtOZiZRh?O$FUu#D$=LtVc-J%6RSe�KD~K>- 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 baz: Yes ) ================================================================================ -Connection using shape path +Connection of shapes inside a containers ================================================================================ foo.biz.baz -> bar.baz.biz: Label @@ -157,9 +157,9 @@ foo.biz.baz -> bar.baz.biz: Label (source_file (connection - (shape_key) (dot) (shape_key) (dot) (shape_key) + (container_key) (dot) (container_key) (dot) (shape_key) (arrow) - (shape_key) (dot) (shape_key) (dot) (shape_key) + (container_key) (dot) (container_key) (dot) (shape_key) (label) ) ) diff --git a/test/corpus/container.txt b/test/corpus/container.txt index 13e8b8f..1aeee57 100644 --- a/test/corpus/container.txt +++ b/test/corpus/container.txt @@ -6,7 +6,7 @@ foo.baz -------------------------------------------------------------------------------- (source_file - (shape_key) (dot) (shape_key) + (container_key) (dot) (shape_key) ) ================================================================================ @@ -17,7 +17,7 @@ Use quoted string as a shape key -------------------------------------------------------------------------------- (source_file - (shape_key (string)) (dot) (shape_key (string)) + (container_key (string)) (dot) (shape_key (string)) ) ================================================================================ diff --git a/test/highlight/keyword.d2 b/test/highlight/keyword.d2 index 98c3151..72044c1 100644 --- a/test/highlight/keyword.d2 +++ b/test/highlight/keyword.d2 @@ -1,5 +1,5 @@ direction: right; -# <- keyword +# <- property # ^ punctuation.delimiter # ^ string # ^ punctuation.delimiter @@ -10,19 +10,19 @@ shape: oval baaaz.style: { # <- variable - # ^ keyword + # ^ property fill: red - # <- keyword + # <- property # ^ string } foo: Label { shape: oval - # <- keyword + # <- property # ^ string style.fill: red; - # <- keyword - # ^ keyword + # <- property + # ^ property } diff --git a/test/highlight/shape.d2 b/test/highlight/shape.d2 index 7df9521..ca98449 100644 --- a/test/highlight/shape.d2 +++ b/test/highlight/shape.d2 @@ -1,6 +1,8 @@ foo.'baz'.biz -# <- variable -# ^ string +# <- constant +# ^ punctuation.delimiter +# ^ string.special +# ^ punctuation.delimiter # ^ variable 'biz': 'Baz' @@ -18,7 +20,7 @@ foo: Foo Bar { # ^ punctuation.bracket bar.baz - # <- variable + # <- constant # ^ variable } # <- punctuation.bracket diff --git a/tree-sitter-d2.wasm b/tree-sitter-d2.wasm index b5be90e1614659c3d3fed5b4e958567b9869d98f..09495189ba91a19cff666f763b8fbb30dbccf6cc 100755 GIT binary patch literal 33976 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 s-_y7O^ literal 31898 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 bkl!FXAnPI1A=g8`ft(NN59tp19clg-V$Ht^