[bug#66836,v2] gnu: Add tree-sitter-yaml.
Commit Message
From: Emma Turner <mail@emturner.co.uk>
* gnu/packages/patches/tree-sitter-yaml-fix-tests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/tree-sitter.scm (tree-sitter-yaml): New variable.
Modified-by: Hilton Chain <hako@ultrarare.space>
Change-Id: I45a4a843ecee9dfa580eeaa352f1354915f83881
---
gnu/local.mk | 1 +
.../patches/tree-sitter-yaml-fix-tests.patch | 690 ++++++++++++++++++
gnu/packages/tree-sitter.scm | 15 +
3 files changed, 706 insertions(+)
create mode 100644 gnu/packages/patches/tree-sitter-yaml-fix-tests.patch
base-commit: 9dcd8802f5bc472579f23a38dcf437f8a9ac976c
Comments
Hi Emma,
Tests currently fail on aarch64-linux[1], which can be reproduced with
`./pre-inst-env guix build tree-sitter-yaml --system=aarch64-linux`.
Any ideas?
On Sat, 04 Nov 2023 20:22:10 +0800,
Hilton Chain wrote:
>
> From: Emma Turner <mail@emturner.co.uk>
>
> * gnu/packages/patches/tree-sitter-yaml-fix-tests.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Register it.
> * gnu/packages/tree-sitter.scm (tree-sitter-yaml): New variable.
>
> Modified-by: Hilton Chain <hako@ultrarare.space>
> Change-Id: I45a4a843ecee9dfa580eeaa352f1354915f83881
> ---
> gnu/local.mk | 1 +
> .../patches/tree-sitter-yaml-fix-tests.patch | 690 ++++++++++++++++++
> gnu/packages/tree-sitter.scm | 15 +
> 3 files changed, 706 insertions(+)
> create mode 100644 gnu/packages/patches/tree-sitter-yaml-fix-tests.patch
Thanks
---
[1]:
https://bordeaux.guix.gnu.org/build/206a6c33-c95a-4f7f-8e15-30e7b5662634/log
--8<---------------cut here---------------start------------->8---
--- expected / +++ actual
1. Spec Example 9.3. Bare Documents:
(stream
(document
(flow_node
(plain_scalar
(string_scalar))))
(comment)
(document)
(document
(block_node
+++ (block_scalar)))
+++ (MISSING _eof))
--- (block_scalar))))
2. Spec Example 9.5. Directives Documents:
(stream
(document
(yaml_directive
(yaml_version))
(block_node
(block_scalar)))
+++ (MISSING _eof))
--- (document
--- (yaml_directive
--- (yaml_version))
--- (comment)))
3. Zero indented block scalar:
(stream
(document
(block_node
+++ (block_scalar)))
+++ (MISSING _eof))
--- (block_scalar))))
4. Zero indented block scalar with line that looks like a comment:
(stream
(document
(block_node
+++ (block_scalar)))
+++ (MISSING _eof))
--- (block_scalar))))
--8<---------------cut here---------------end--------------->8---
Hello everyone,
soo.... it has been a while since there has been some activity. I have checked and
couldn't find another effort to get tree-sitter-yaml packaged (that is, no duplicates).
Did anyone of you have spare time to look more into this? I am very intersted to get this
package into the guix codebase, and it seems there has been more recent activity not only
in the original repository (https://github.com/ikatyang/tree-sitter-yaml), but even more
recently, there has been activity in another repository which is a fork of the original
one (https://github.com/tree-sitter-grammars/tree-sitter-yaml).
I have spent a short amount of time trying to get either of them to package, but that
didn't result in any tangible results (all attempts failed, I didn't know what the problem
was, I gave up).
However, I'd be motivated to try to get it done together, so if any of you is on board,
let's get it on ;-)
Have a good day, fellows :-)
Hilton Chain <hako@ultrarare.space> writes:
> Hi Emma,
>
> Tests currently fail on aarch64-linux[1], which can be reproduced with
> `./pre-inst-env guix build tree-sitter-yaml --system=aarch64-linux`.
>
> Any ideas?
>
> On Sat, 04 Nov 2023 20:22:10 +0800,
> Hilton Chain wrote:
>>
>> From: Emma Turner <mail@emturner.co.uk>
>>
>> * gnu/packages/patches/tree-sitter-yaml-fix-tests.patch: New file.
>> * gnu/local.mk (dist_patch_DATA): Register it.
>> * gnu/packages/tree-sitter.scm (tree-sitter-yaml): New variable.
>>
>> Modified-by: Hilton Chain <hako@ultrarare.space>
>> Change-Id: I45a4a843ecee9dfa580eeaa352f1354915f83881
>> ---
>> gnu/local.mk | 1 +
>> .../patches/tree-sitter-yaml-fix-tests.patch | 690 ++++++++++++++++++
>> gnu/packages/tree-sitter.scm | 15 +
>> 3 files changed, 706 insertions(+)
>> create mode 100644 gnu/packages/patches/tree-sitter-yaml-fix-tests.patch
>
> Thanks
> ---
> [1]:
> https://bordeaux.guix.gnu.org/build/206a6c33-c95a-4f7f-8e15-30e7b5662634/log
>
> --- expected / +++ actual
>
> 1. Spec Example 9.3. Bare Documents:
>
> (stream
> (document
> (flow_node
> (plain_scalar
> (string_scalar))))
> (comment)
> (document)
> (document
> (block_node
> +++ (block_scalar)))
> +++ (MISSING _eof))
> --- (block_scalar))))
>
>
> 2. Spec Example 9.5. Directives Documents:
>
> (stream
> (document
> (yaml_directive
> (yaml_version))
> (block_node
> (block_scalar)))
> +++ (MISSING _eof))
> --- (document
> --- (yaml_directive
> --- (yaml_version))
> --- (comment)))
>
>
> 3. Zero indented block scalar:
>
> (stream
> (document
> (block_node
> +++ (block_scalar)))
> +++ (MISSING _eof))
> --- (block_scalar))))
>
>
> 4. Zero indented block scalar with line that looks like a comment:
>
> (stream
> (document
> (block_node
> +++ (block_scalar)))
> +++ (MISSING _eof))
> --- (block_scalar))))
Hej fellows,
I've tried for some time to get it packaged but rather quickly hit a road block because I
am simply not well versed in the domain. Find below the code I managed to come up after a
bit of experimentation.
```
(define-public tree-sitter-yaml
(tree-sitter-grammar
"yaml" "YAML"
"0z5fz9hiafzapi0ijhyz8np6rksq6c1pb16xv1vhnlfh75rg6zyv"
"0.7.0"
#:repository-url
"https://github.com/tree-sitter-grammars/tree-sitter-yaml"))
```
Surprisingly, it started by downloading nodejs 22.10 which didn't happen for other
tree-sitter grammars I tried building for reference. The build fails in the build phase,
this is the output:
```
starting phase `build'
/tmp/guix-build-tree-sitter-yaml-0.7.0.drv-0/source/grammar.js:674
for (const [rule_name, rule] of Object.entries(grammar_json.rules)) {
^
TypeError: Cannot read properties of undefined (reading 'rules')
at global_alias (/tmp/guix-build-tree-sitter-yaml-0.7.0.drv-0/source/grammar.js:674:63)
at Object.<anonymous> (/tmp/guix-build-tree-sitter-yaml-0.7.0.drv-0/source/grammar.js:566:39)
at Module._compile (node:internal/modules/cjs/loader:1565:14)
at Object..js (node:internal/modules/cjs/loader:1708:10)
at Module.load (node:internal/modules/cjs/loader:1318:32)
at Function._load (node:internal/modules/cjs/loader:1128:12)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:219:24)
at Module.require (node:internal/modules/cjs/loader:1340:12)
at require (node:internal/modules/helpers:138:16)
Node.js v22.12.0
Node process exited with status 1
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "tree-sitter" arguments: ("generate" "--no-bindings") exit-status:
phase `build' failed after 0.0 seconds
command "tree-sitter" "generate" "--no-bindings" failed with status 1
build process 18 exited with status 256
builder for `/gnu/store/mhslv5phv7yic1rv91pq4kiqyhkzgvi1-tree-sitter-yaml-0.7.0.drv' failed with exit c
build of /gnu/store/mhslv5phv7yic1rv91pq4kiqyhkzgvi1-tree-sitter-yaml-0.7.0.drv failed
Could not find build log for '/gnu/store/mhslv5phv7yic1rv91pq4kiqyhkzgvi1-tree-sitter-yaml-0.7.0.drv'.
guix build: error: build of `/gnu/store/mhslv5phv7yic1rv91pq4kiqyhkzgvi1-tree-sitter-yaml-0.7.0.drv' fa
```
I also tried building the newest commit from the originally mentioned repository:
https://github.com/ikatyang/tree-sitter-yaml. This initially looks more promising but
then there is several errors regarding indentation and some other INVALID entries which
also results in a build failure.
I am afraid this is what I have to offer when it comes to trying to support the packaging
endeavour. Maybe someone of you guys knows more about tree-sitter grammars than I do and
can chime in.
Have a good day,
Olivier
Olivier Rojon <o.rojon@posteo.net> writes:
> Hello everyone,
>
> soo.... it has been a while since there has been some activity. I have checked and
> couldn't find another effort to get tree-sitter-yaml packaged (that is, no duplicates).
>
> Did anyone of you have spare time to look more into this? I am very intersted to get this
> package into the guix codebase, and it seems there has been more recent activity not only
> in the original repository (https://github.com/ikatyang/tree-sitter-yaml), but even more
> recently, there has been activity in another repository which is a fork of the original
> one (https://github.com/tree-sitter-grammars/tree-sitter-yaml).
>
> I have spent a short amount of time trying to get either of them to package, but that
> didn't result in any tangible results (all attempts failed, I didn't know what the problem
> was, I gave up).
>
> However, I'd be motivated to try to get it done together, so if any of you is on board,
> let's get it on ;-)
>
> Have a good day, fellows :-)
>
> Hilton Chain <hako@ultrarare.space> writes:
>
>> Hi Emma,
>>
>> Tests currently fail on aarch64-linux[1], which can be reproduced with
>> `./pre-inst-env guix build tree-sitter-yaml --system=aarch64-linux`.
>>
>> Any ideas?
>>
>> On Sat, 04 Nov 2023 20:22:10 +0800,
>> Hilton Chain wrote:
>>>
>>> From: Emma Turner <mail@emturner.co.uk>
>>>
>>> * gnu/packages/patches/tree-sitter-yaml-fix-tests.patch: New file.
>>> * gnu/local.mk (dist_patch_DATA): Register it.
>>> * gnu/packages/tree-sitter.scm (tree-sitter-yaml): New variable.
>>>
>>> Modified-by: Hilton Chain <hako@ultrarare.space>
>>> Change-Id: I45a4a843ecee9dfa580eeaa352f1354915f83881
>>> ---
>>> gnu/local.mk | 1 +
>>> .../patches/tree-sitter-yaml-fix-tests.patch | 690 ++++++++++++++++++
>>> gnu/packages/tree-sitter.scm | 15 +
>>> 3 files changed, 706 insertions(+)
>>> create mode 100644 gnu/packages/patches/tree-sitter-yaml-fix-tests.patch
>>
>> Thanks
>> ---
>> [1]:
>> https://bordeaux.guix.gnu.org/build/206a6c33-c95a-4f7f-8e15-30e7b5662634/log
>>
>> --- expected / +++ actual
>>
>> 1. Spec Example 9.3. Bare Documents:
>>
>> (stream
>> (document
>> (flow_node
>> (plain_scalar
>> (string_scalar))))
>> (comment)
>> (document)
>> (document
>> (block_node
>> +++ (block_scalar)))
>> +++ (MISSING _eof))
>> --- (block_scalar))))
>>
>>
>> 2. Spec Example 9.5. Directives Documents:
>>
>> (stream
>> (document
>> (yaml_directive
>> (yaml_version))
>> (block_node
>> (block_scalar)))
>> +++ (MISSING _eof))
>> --- (document
>> --- (yaml_directive
>> --- (yaml_version))
>> --- (comment)))
>>
>>
>> 3. Zero indented block scalar:
>>
>> (stream
>> (document
>> (block_node
>> +++ (block_scalar)))
>> +++ (MISSING _eof))
>> --- (block_scalar))))
>>
>>
>> 4. Zero indented block scalar with line that looks like a comment:
>>
>> (stream
>> (document
>> (block_node
>> +++ (block_scalar)))
>> +++ (MISSING _eof))
>> --- (block_scalar))))
This version seems to compile on my side :
(define-public tree-sitter-yaml
(tree-sitter-grammar
"yaml" "YAML"
"0z5fz9hiafzapi0ijhyz8np6rksq6c1pb16xv1vhnlfh75rg6zyv" "0.7.0"
#:grammar-directories '("schema/core" "schema/json")
#:get-cleanup-snippet
(lambda _
#~(begin
(use-modules (guix build utils))
(delete-file-recursively "bindings")))))
Haven't tried it in real conditions though ;)
@@ -2045,6 +2045,7 @@ dist_patch_DATA = \
%D%/packages/patches/tofi-32bit-compat.patch \
%D%/packages/patches/tpetra-remove-duplicate-using.patch \
%D%/packages/patches/transcode-ffmpeg.patch \
+ %D%/packages/patches/tree-sitter-yaml-fix-tests.patch \
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
%D%/packages/patches/trytond-add-guix_trytond_path.patch \
%D%/packages/patches/ttf2eot-cstddef.patch \
new file mode 100644
@@ -0,0 +1,690 @@
+From 67e0bec12812921672776cf2dd8dfa79e27f6360 Mon Sep 17 00:00:00 2001
+From: Emma Turner <mail@emturner.co.uk>
+Date: Sun, 29 Oct 2023 16:40:30 +0000
+Subject: [PATCH] fix tests for tree-sitter 0.20.8
+
+---
+ corpus/spec.txt | 492 +++++++++++++++++++-----------------------------
+ 1 file changed, 194 insertions(+), 298 deletions(-)
+
+diff --git a/corpus/spec.txt b/corpus/spec.txt
+index ca75d12..8b64bc4 100644
+--- a/corpus/spec.txt
++++ b/corpus/spec.txt
+@@ -654,23 +654,16 @@ map:
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (flow_node
+- (double_quote_scalar)))
+- (ERROR))))))))
++(ERROR
++ (flow_node
++ (plain_scalar
++ (string_scalar)))
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (flow_node
++ (double_quote_scalar))))
+
+ ================================================================================
+ Bad indentation in mapping [INVALID]
+@@ -981,17 +974,13 @@ block scalar: >
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (block_node
+- (block_scalar)))
+- (ERROR)))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (block_node
++ (block_scalar))))
+
+ ================================================================================
+ Block Sequence in Block Mapping
+@@ -1212,19 +1201,15 @@ key: word1
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (comment)
+- (ERROR)))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (flow_node
++ (plain_scalar
++ (string_scalar))))
++ (comment))
+
+ ================================================================================
+ Comment that looks like a mapping key [INVALID]
+@@ -1234,22 +1219,18 @@ this is #not a: key
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (ERROR
+- (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (comment)))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (flow_node
++ (plain_scalar
++ (string_scalar))))
++ (flow_node
++ (plain_scalar
++ (string_scalar)))
++ (comment))
+
+ ================================================================================
+ Comment without whitespace after block scalar indicator [INVALID]
+@@ -1415,15 +1396,10 @@ key: "missing closing quote
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (ERROR)))))
++(ERROR
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
+
+ ================================================================================
+ Doublequoted scalar starting with a tab
+@@ -2116,8 +2092,10 @@ Invalid document markers in flow style [INVALID]
+
+ --------------------------------------------------------------------------------
+
+-(ERROR
+- (string_scalar))
++(stream
++ (ERROR)
++ (document)
++ (MISSING _eof))
+
+ ================================================================================
+ Invalid document-end marker in single quoted string [INVALID]
+@@ -2192,8 +2170,7 @@ invalid: x
+ (string_scalar))))
+ (flow_node
+ (plain_scalar
+- (string_scalar)))
+- (string_scalar))
++ (string_scalar))))
+
+ ================================================================================
+ Invalid mapping in plain multiline [INVALID]
+@@ -2270,20 +2247,14 @@ invalid
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_sequence
+- (block_sequence_item
+- (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (block_sequence_item
+- (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (ERROR
+- (string_scalar))))))
++(ERROR
++ (block_sequence_item
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
+
+ ================================================================================
+ Invalid scalar at the end of mapping [INVALID]
+@@ -2295,28 +2266,24 @@ invalid
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
++(ERROR
++ (block_mapping_pair
++ (flow_node
++ (plain_scalar
++ (string_scalar)))
+ (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
++ (block_sequence
++ (block_sequence_item
++ (flow_node
+ (plain_scalar
+- (string_scalar)))
+- value: (block_node
+- (block_sequence
+- (block_sequence_item
+- (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (block_sequence_item
+- (flow_node
+- (plain_scalar
+- (string_scalar)))))))
+- (ERROR
++ (string_scalar))))
++ (block_sequence_item
+ (flow_node
+ (plain_scalar
+- (string_scalar))))))))
++ (string_scalar)))))))
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
+
+ ================================================================================
+ Invalid scalar at the end of sequence [INVALID]
+@@ -2328,26 +2295,17 @@ key:
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (block_node
+- (block_sequence
+- (block_sequence_item
+- (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (block_sequence_item
+- (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (ERROR
+- (string_scalar)))))))))
++(ERROR
++ (flow_node
++ (plain_scalar
++ (string_scalar)))
++ (block_sequence_item
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
+
+ ================================================================================
+ Invalid sequene item on same line as previous item [INVALID]
+@@ -2420,21 +2378,17 @@ invalid
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (ERROR
+- (flow_node
+- (plain_scalar
+- (string_scalar))))))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (flow_node
++ (plain_scalar
++ (string_scalar))))
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
+
+ ================================================================================
+ Key with anchor after missing explicit mapping value
+@@ -2507,17 +2461,13 @@ block scalar: |
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (block_node
+- (block_scalar)))
+- (ERROR)))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (block_node
++ (block_scalar))))
+
+ ================================================================================
+ Literal unicode
+@@ -2647,27 +2597,23 @@ top2
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (block_node
+ (block_mapping
+ (block_mapping_pair
+ key: (flow_node
+ (plain_scalar
+ (string_scalar)))
+- value: (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (flow_node
+- (plain_scalar
+- (string_scalar)))))))
+- (ERROR
+- (flow_node
++ value: (flow_node
+ (plain_scalar
+- (string_scalar))))))))
++ (string_scalar)))))))
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
+
+ ================================================================================
+ Missing comma in flow [INVALID]
+@@ -2678,19 +2624,14 @@ key: [ word1
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (ERROR
+- (flow_node
+- (plain_scalar
+- (string_scalar)))
+- (comment))))))
++(ERROR
++ (flow_node
++ (plain_scalar
++ (string_scalar)))
++ (flow_node
++ (plain_scalar
++ (string_scalar)))
++ (comment))
+
+ ================================================================================
+ Missing document-end marker before directive [INVALID]
+@@ -2703,17 +2644,11 @@ scalar2
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document)
+- (ERROR
+- (flow_node
+- (plain_scalar
+- (string_scalar)))
+- (comment))
+- (document
+- (flow_node
+- (plain_scalar
+- (string_scalar)))))
++(ERROR
++ (flow_node
++ (plain_scalar
++ (string_scalar)))
++ (comment))
+
+ ================================================================================
+ Missing space in YAML directive
+@@ -2924,18 +2859,14 @@ Multiline double quoted implicit keys [INVALID]
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (double_quote_scalar
+- (escape_sequence)))
+- value: (flow_node
+- (plain_scalar
+- (integer_scalar))))
+- (ERROR)))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (double_quote_scalar
++ (escape_sequence)))
++ value: (flow_node
++ (plain_scalar
++ (integer_scalar)))))
+
+ ================================================================================
+ Multiline doublequoted flow mapping key without value
+@@ -3207,17 +3138,13 @@ Multiline single quoted implicit keys [INVALID]
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (single_quote_scalar))
+- value: (flow_node
+- (plain_scalar
+- (integer_scalar))))
+- (ERROR)))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (single_quote_scalar))
++ value: (flow_node
++ (plain_scalar
++ (integer_scalar)))))
+
+ ================================================================================
+ Multiple Entry Block Sequence
+@@ -3529,19 +3456,16 @@ key: &x
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (flow_node
+- (anchor
+- (anchor_name))))
+- (ERROR
+- (tag))))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (flow_node
++ (anchor
++ (anchor_name))))
++ (flow_node
++ (tag)))
+
+ ================================================================================
+ Node and Mapping Key Anchors
+@@ -3922,40 +3846,34 @@ top2: &node2
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (block_node
++ (anchor
++ (anchor_name))
+ (block_mapping
+ (block_mapping_pair
+ key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (block_node
+ (anchor
+ (anchor_name))
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (anchor
+- (anchor_name))
+- (plain_scalar
+- (string_scalar)))
+- value: (flow_node
+- (plain_scalar
+- (string_scalar)))))))
+- (block_mapping_pair
+- key: (flow_node
+ (plain_scalar
+ (string_scalar)))
+ value: (flow_node
+- (anchor
+- (anchor_name))))
+- (ERROR
+- (flow_node
+- (anchor
+- (anchor_name))
+ (plain_scalar
+- (string_scalar))))))))
++ (string_scalar)))))))
++ (flow_node
++ (plain_scalar
++ (string_scalar)))
++ (anchor
++ (anchor_name))
++ (flow_node
++ (anchor
++ (anchor_name))
++ (plain_scalar
++ (string_scalar))))
+
+ ================================================================================
+ Scalars on --- line
+@@ -8728,19 +8646,15 @@ plain: a
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (comment)
+- (ERROR)))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (flow_node
++ (plain_scalar
++ (string_scalar))))
++ (comment))
+
+ ================================================================================
+ Trailing content after quoted value [INVALID]
+@@ -9607,20 +9521,13 @@ c]
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (ERROR
+- (flow_node
+- (plain_scalar
+- (string_scalar)))
+- (string_scalar)
+- (string_scalar))))))
++(ERROR
++ (flow_node
++ (plain_scalar
++ (string_scalar)))
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
+
+ ================================================================================
+ Wrong indented multiline quoted scalar [INVALID]
+@@ -9632,17 +9539,10 @@ c"
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (document
+- (block_node
+- (block_mapping
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar))))
+- (ERROR
+- (string_scalar)
+- (string_scalar))))))
++(ERROR
++ (flow_node
++ (plain_scalar
++ (string_scalar))))
+
+ ================================================================================
+ Wrong indented sequence item [INVALID]
+@@ -9671,18 +9571,14 @@ key: value
+
+ --------------------------------------------------------------------------------
+
+-(stream
+- (ERROR
+- (block_mapping_pair
+- key: (flow_node
+- (plain_scalar
+- (string_scalar)))
+- value: (flow_node
+- (plain_scalar
+- (string_scalar)))))
+- (document
+- (yaml_directive
+- (yaml_version))))
++(ERROR
++ (block_mapping_pair
++ key: (flow_node
++ (plain_scalar
++ (string_scalar)))
++ value: (flow_node
++ (plain_scalar
++ (string_scalar)))))
+
+ ================================================================================
+ Zero indented block scalar
+
+base-commit: 6129a83eeec7d6070b1c0567ec7ce3509ead607c
+--
+2.41.0
+
@@ -7,6 +7,7 @@
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Raven Hallsby <karl@hallsby.com>
+;;; Copyright © 2023 Emma Turner <mail@emturner.co.uk>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -629,3 +630,17 @@ (define-public tree-sitter-scala
"scala" "Scala"
"0hs6gmkq5cx9qrmgfz1mh0c34flwffc0k2mhwf13laawswnywfkz"
"0.20.2"))
+
+(define-public tree-sitter-yaml
+ (let ((base (tree-sitter-grammar
+ "yaml" "Yaml"
+ "1bimf5fq85wn8dwlk665w15n2bj37fma5rsfxrph3i9yb0lvzi3q"
+ "0.5.0"
+ #:repository-url
+ "https://github.com/ikatyang/tree-sitter-yaml")))
+ (package
+ (inherit base)
+ (source (origin
+ (inherit (package-source base))
+ (patches
+ (search-patches "tree-sitter-yaml-fix-tests.patch")))))))