FASTYAML is a recently created project that integrates with Moose and leverages the Tree-Sitter parser to analyze YAML source code in Pharo.
FASTYAML relies on:
- FAST, to ensure compatibility with Moose.
- Pharo-Tree-Sitter, implemented in Pharo via the FFI protocol to efficiently parse YAML source code. It is also used to do incremental parsing.
FASTYAML metamodel is defined in a way where nodes align with those generated by Tree-Sitter.
To load FASTYAML in Pharo, execute the following in a Moose image:
Metacello new
baseline: 'FASTYAML';
repository: 'github://Evref-BL/FAST-YAML:main';
load.To use it, please ensure that you have installed the corresponding libraries for Tree Sitter on your machine, to ensure parsing succeeds. Normally, this has been automated for different operating systems. But for more details, you can have a look at this blog-post.
To use it in Pharo, you can check example below:
res := FASTYAMLImporter new parse: '---
# A sample yaml example'. The project is updated starting October 1 2026. It works on Moose 12+. The metamodel is complete following the description of tree sitter yaml original repo.
If you think an update is recommended or new feature is requested ... Your contribution is more than welcome. Happy coding with Pharo and YAML :)