From 7a053d6bf14538529b346caded2321f780821701 Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Tue, 13 Dec 2022 16:41:34 +0300 Subject: [PATCH] fix parsing single-line block Closes #11 --- grammar.js | 35 ++++--- src/grammar.json | 207 +++++++++++++++++++++++++++---------- src/parser.c | Bin 143070 -> 159836 bytes test/corpus/attributes.txt | 44 ++++++++ test/corpus/container.txt | 43 ++++++++ tree-sitter-d2.wasm | Bin 37903 -> 40971 bytes 6 files changed, 261 insertions(+), 68 deletions(-) diff --git a/grammar.js b/grammar.js index 202bb67..de062bf 100644 --- a/grammar.js +++ b/grammar.js @@ -28,7 +28,12 @@ module.exports = grammar({ $.block_comment, ], - conflicts: ($) => [[$._connection_path, $.container]], + conflicts: ($) => [ + [$._connection_path, $.container], + [$._container_block], + [$._connection_block], + [$._style_attribute_block], + ], rules: { source_file: ($) => repeat($._root_definition), @@ -70,10 +75,12 @@ module.exports = grammar({ ), _connection_block: ($) => - seq("{", repeat($._connection_block_definition), "}"), - - _connection_block_definition: ($) => - choice($._eol, seq($._connection_attribute, $._end)), + seq( + "{", + repeat(choice($._eol, seq($._connection_attribute, $._end))), + optional(seq($._connection_attribute, optional($._end))), + "}" + ), // containers @@ -93,16 +100,15 @@ module.exports = grammar({ ), _container_block: ($) => - seq("{", repeat($._container_block_definition), "}"), + seq( + "{", + repeat(choice($._eol, seq($._container_block_definition, $._end))), + optional(seq($._container_block_definition, optional($._end))), + "}" + ), _container_block_definition: ($) => - choice( - $._eol, - seq( - choice($.shape, $.container, $.connection, $._shape_attribute), - $._end - ) - ), + choice($.shape, $.container, $.connection, $._shape_attribute), // shapes @@ -212,6 +218,9 @@ module.exports = grammar({ seq(alias($._inner_style_attribute, $.attribute), $._end) ) ), + optional( + seq(alias($._inner_style_attribute, $.attribute), optional($._end)) + ), "}" ), diff --git a/src/grammar.json b/src/grammar.json index 597d872..78eaf22 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -194,38 +194,63 @@ { "type": "REPEAT", "content": { - "type": "SYMBOL", - "name": "_connection_block_definition" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_eol" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_connection_attribute" + }, + { + "type": "SYMBOL", + "name": "_end" + } + ] + } + ] } }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_connection_attribute" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_end" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", "value": "}" } ] }, - "_connection_block_definition": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_eol" - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_connection_attribute" - }, - { - "type": "SYMBOL", - "name": "_end" - } - ] - } - ] - }, "container": { "type": "PREC", "value": 2, @@ -337,10 +362,57 @@ { "type": "REPEAT", "content": { - "type": "SYMBOL", - "name": "_container_block_definition" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_eol" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_container_block_definition" + }, + { + "type": "SYMBOL", + "name": "_end" + } + ] + } + ] } }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_container_block_definition" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_end" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", "value": "}" @@ -352,37 +424,19 @@ "members": [ { "type": "SYMBOL", - "name": "_eol" + "name": "shape" }, { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "shape" - }, - { - "type": "SYMBOL", - "name": "container" - }, - { - "type": "SYMBOL", - "name": "connection" - }, - { - "type": "SYMBOL", - "name": "_shape_attribute" - } - ] - }, - { - "type": "SYMBOL", - "name": "_end" - } - ] + "type": "SYMBOL", + "name": "container" + }, + { + "type": "SYMBOL", + "name": "connection" + }, + { + "type": "SYMBOL", + "name": "_shape_attribute" } ] }, @@ -832,6 +886,40 @@ ] } }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_inner_style_attribute" + }, + "named": true, + "value": "attribute" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_end" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", "value": "}" @@ -1403,6 +1491,15 @@ [ "_connection_path", "container" + ], + [ + "_container_block" + ], + [ + "_connection_block" + ], + [ + "_style_attribute_block" ] ], "precedences": [], diff --git a/src/parser.c b/src/parser.c index 552efcd568c5941e5b4b27fb4ff60cdc28acace5..0552d03c1050193f29c5c7dd9e7fdf725829bf0a 100644 GIT binary patch literal 159836 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 bar: { ) ) +================================================================================ +Define attributes for connection in single-line +================================================================================ +foo -> bar: {source-arrowhead: 0; target-arrowhead: 1} + +-------------------------------------------------------------------------------- + +(source_file + (connection + (shape_key) + (arrow) + (shape_key) + (block + (attribute + (attr_key) + (label) + ) + (attribute + (attr_key) + (label) + ) + ) + ) +) + ================================================================================ Block style attributes inside a connection arrowhead ================================================================================ @@ -392,4 +417,23 @@ foo -> bar: { ) ) +================================================================================ +Declire style attributes in single-line +================================================================================ +foo.style: {opacity: 0.5; fill: red} + +-------------------------------------------------------------------------------- + +(source_file + (shape + (shape_key) (dot) + (attribute + (attr_key) + (block + (attribute (attr_key) (attr_value (float))) + (attribute (attr_key) (attr_value)) + ) + ) + ) +) diff --git a/test/corpus/container.txt b/test/corpus/container.txt index f0696e4..81bdf96 100644 --- a/test/corpus/container.txt +++ b/test/corpus/container.txt @@ -224,3 +224,46 @@ Foo: Baz { ) ) ) + +================================================================================ +Declare shapes in a container in single-line (Issue #11) +================================================================================ +primty: Primitive types { + Never: {"!"} + + Boolean: {bool} + + Textual: {char; str} +} + +-------------------------------------------------------------------------------- + +(source_file + (container + (container_key) + (label) + (block + (container + (container_key) + (block + (shape + (shape_key (string (string_fragment))) + ) + ) + ) + (container + (container_key) + (block + (shape (shape_key)) + ) + ) + (container + (container_key) + (block + (shape (shape_key)) + (shape (shape_key)) + ) + ) + ) + ) +) diff --git a/tree-sitter-d2.wasm b/tree-sitter-d2.wasm index df6db8955835dd5049a27f9e7056dbb53312d2bd..6811bb7d9caf268c561331281d59453fdc8063a1 100755 GIT binary patch literal 40971 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 jZ@?Y@;f&2korRG5S=@_p{{i