From b539703965acfcf3c43efa19d8a208430a9f6a84 Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Wed, 7 Dec 2022 12:09:27 +0300 Subject: [PATCH] add comments --- grammar.js | 4 +++- queries/highlights.scm | 7 +++++++ src/grammar.json | 23 ++++++++++++++++++++++- src/node-types.json | 4 ++++ src/parser.c | Bin 160794 -> 172053 bytes 5 files changed, 36 insertions(+), 2 deletions(-) diff --git a/grammar.js b/grammar.js index 249e32d..50b01d1 100644 --- a/grammar.js +++ b/grammar.js @@ -3,7 +3,7 @@ const spaces = repeat(" "); module.exports = grammar({ name: "d2", - extras: ($) => [], + extras: ($) => [$.line_comment], word: ($) => $._word, @@ -175,6 +175,8 @@ module.exports = grammar({ seq("`", repeat(token.immediate(/[^`\n]+/)), "`") ), + line_comment: ($) => token(seq("#", /.*/)), + _word: ($) => /[\w\d]+/, _emptyline: ($) => seq(spaces, $._eof), diff --git a/queries/highlights.scm b/queries/highlights.scm index 4c9af68..8c5a0cf 100644 --- a/queries/highlights.scm +++ b/queries/highlights.scm @@ -3,12 +3,19 @@ (identifier) @variable (attr_key) @keyword +; Literals ;------------------------------------------------------------------------------- (string) @string (label) @string (attr_value) @string +; Comments +;------------------------------------------------------------------------------- + +(line_comment) @comment.line + +; Punctiation ;------------------------------------------------------------------------------- (arrow) @operator diff --git a/src/grammar.json b/src/grammar.json index ae3699a..bcf8222 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -969,6 +969,22 @@ } ] }, + "line_comment": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "#" + }, + { + "type": "PATTERN", + "value": ".*" + } + ] + } + }, "_word": { "type": "PATTERN", "value": "[\\w\\d]+" @@ -1028,7 +1044,12 @@ ] } }, - "extras": [], + "extras": [ + { + "type": "SYMBOL", + "name": "line_comment" + } + ], "conflicts": [ [ "identifier" diff --git a/src/node-types.json b/src/node-types.json index 7d868bf..2152b60 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -269,6 +269,10 @@ "type": "label", "named": false }, + { + "type": "line_comment", + "named": true + }, { "type": "link", "named": false diff --git a/src/parser.c b/src/parser.c index 00fe788d73914424077d833917b552deff06aa70..8c1071ca370f2424fea65bf73077100c4a13cf64 100644 GIT binary patch literal 172053 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 Yz&oA%#t8bC4}P_p$5T-7k+jnP2R@p{egFUf delta 21142 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