From 9a1ec9663250024f34fba267e794ff722963a0e1 Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Wed, 14 Jun 2023 18:17:22 +0300 Subject: [PATCH] grammar: add text-transform attribute Closes #11 --- grammar.js | 3 ++- src/grammar.json | 4 ++++ src/node-types.json | 4 ++++ src/parser.c | Bin 209618 -> 211766 bytes test/corpus/attributes.txt | 4 ++++ 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/grammar.js b/grammar.js index 17d3374..b9987e6 100644 --- a/grammar.js +++ b/grammar.js @@ -265,7 +265,8 @@ module.exports = grammar({ "link", "italic", "bold", - "underline" + "underline", + "text-transform" ), _text_attr_key: ($) => "near", diff --git a/src/grammar.json b/src/grammar.json index ff4dd7a..08bf7eb 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1086,6 +1086,10 @@ { "type": "STRING", "value": "underline" + }, + { + "type": "STRING", + "value": "text-transform" } ] }, diff --git a/src/node-types.json b/src/node-types.json index 823463c..18b88b5 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -520,6 +520,10 @@ "type": "target-arrowhead", "named": false }, + { + "type": "text-transform", + "named": false + }, { "type": "tooltip", "named": false diff --git a/src/parser.c b/src/parser.c index 6d3394e450d70900798096d1a14bdf6d0525009f..e9074d9f1c08bc15399ef3a734563eeb144ccb82 100644 GIT binary patch delta 19741 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 Jvkm8?{|Cs4_-OzD delta 18828 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