yaml/yaml-reference-parser

61

stars

107

commits

CoffeeScript

primary language

Jul 12, 2026

updated

README

YAML 1.2 Reference Parsers

Generate YAML 1.2 Reference Parsers from the Spec

Travis Test Status Actions Status: Test

Synopsis

You can see all the generated YAML parsers in action by running:

make test

Description

Here we generate 100% compliant YAML 1.2 parsers, in multiple programming languages, from the YAML 1.2 specification.

We start with the YAML 1.2 Spec converted to the YAML 1.2 Spec as YAML. Next we apply some minimal local patches for various problems that have been identified in the spec. Then we convert that YAML into a machine generated YAML 1.2 parser/grammar module in every programming language.

At the moment we have YAML 1.2 reference parsers in these languages:

The parsers pass 100% of the YAML Test Suite!

Next Steps

  • Generate equivalent grammar/parsers in as many modern languages as possible
    • The logic and primitives are purposefully as simple as possible
    • Generating a perfect parser in a new language should take a day or 2
    • Contributors welcome!
  • Start refactoring the grammar to be simpler
    • While always passing the tests
  • Generate more optimized / performant parsers
    • The goal of simplicity and sticking exactly to the spec made slow parsers
  • Create a new YAML 1.3 grammar
    • Start with 1.2 grammar
    • Apply RFCs as they become accepted
    • Generate and test all the language parsers

Contributors

ingydotnet

104 commits

stoned

2 commits

stevenw47

1 commits

yaml/yaml-reference-parser

61

stars

107

commits

CoffeeScript

primary language

Jul 12, 2026

updated

README

YAML 1.2 Reference Parsers

Generate YAML 1.2 Reference Parsers from the Spec

Travis Test Status Actions Status: Test

Synopsis

You can see all the generated YAML parsers in action by running:

make test

Description

Here we generate 100% compliant YAML 1.2 parsers, in multiple programming languages, from the YAML 1.2 specification.

We start with the YAML 1.2 Spec converted to the YAML 1.2 Spec as YAML. Next we apply some minimal local patches for various problems that have been identified in the spec. Then we convert that YAML into a machine generated YAML 1.2 parser/grammar module in every programming language.

At the moment we have YAML 1.2 reference parsers in these languages:

The parsers pass 100% of the YAML Test Suite!

Next Steps

  • Generate equivalent grammar/parsers in as many modern languages as possible
    • The logic and primitives are purposefully as simple as possible
    • Generating a perfect parser in a new language should take a day or 2
    • Contributors welcome!
  • Start refactoring the grammar to be simpler
    • While always passing the tests
  • Generate more optimized / performant parsers
    • The goal of simplicity and sticking exactly to the spec made slow parsers
  • Create a new YAML 1.3 grammar
    • Start with 1.2 grammar
    • Apply RFCs as they become accepted
    • Generate and test all the language parsers

Contributors

ingydotnet

104 commits

stoned

2 commits

stevenw47

1 commits

Languages

CoffeeScript

41.4%

Clojure

33.3%

Perl

22.4%

Makefile

1.8%