A reasonable configuration language https://rcl-lang.org
Find a file
Ruud van Asseldonk 5dbddeafbb Add pretty reporting of errors
Most of the pretty printing code is adapted from Squiller, which I wrote
and own the copyright to. It is licensed Apache 2.0 as well.

This now makes it much easier to debug the parser because I can *see*
where it runs into an error. Right now it's something related to field
access, maybe I forgot to consume the token.
2023-08-08 22:20:20 +02:00
examples Implement parser with terminals based on new grammar 2023-08-08 21:48:02 +02:00
src Add pretty reporting of errors 2023-08-08 22:20:20 +02:00
.gitignore Initial commit 2023-08-01 18:57:55 +02:00
Cargo.lock Add pretty reporting of errors 2023-08-08 22:20:20 +02:00
Cargo.toml Add pretty reporting of errors 2023-08-08 22:20:20 +02:00
LICENSE License the project under the Apache 2.0 license 2023-08-06 00:38:51 +02:00
README.md Initial commit 2023-08-01 18:57:55 +02:00
rust-toolchain.toml Pin the toolchain 2023-08-01 23:34:12 +02:00

Ruuds Configuration Language

Why another config language? Because:

  • HCL is too ad-hoc to be suitable for any serious abstraction (setunion is variadic so it only works with a statically known number of sets; flatten recursively flattens so it cant be typed properly and breaks generic code, for comprehensions cant do nested loops, for_each syntax is bolted on, etc.)

  • Nix-the-language is great but forces the entire Nix store on you when all I want is to evaluate expressions.

  • Python is great but requires some boilerplate for doing the IO if you want to use it as a configuration language.

  • Dhall has the right ideas but the syntax and heavy use of Unicode symbols make it look ugly.

  • CUE and Nickel were not invented here.