Go to file
Felix Krause 0264b03fd9 v0.2.0 changelog 2017-09-07 19:02:41 +02:00
dropin Transformations & Refactoring 2017-07-28 23:49:10 +02:00
server Refactoring 2017-07-22 12:22:19 +02:00
site Removed discriminant from Reference types 2017-09-07 18:51:19 +02:00
src Made Accessor types limited 2017-09-07 18:56:38 +02:00
test Restructuring: Moved Text stuff to own project 2017-08-29 16:09:37 +02:00
text Fixed a bug when searching for empty memory 2017-09-07 17:57:18 +02:00
util/src Removed discriminant from Reference types 2017-09-07 18:51:19 +02:00
yaml-test-suite git subrepo clone --branch=data https://github.com/yaml/yaml-test-suite.git 2017-08-30 12:13:38 +02:00
.gitignore Lexing Sources 2017-05-27 01:35:25 +02:00
Changelog.md v0.2.0 changelog 2017-09-07 19:02:41 +02:00
Makefile Removed discriminant from Reference types 2017-09-07 18:51:19 +02:00
Readme.md Improved parser error handling & formatting 2017-08-23 21:39:04 +02:00
copying.txt put everything properly under MIT license 2017-07-02 18:41:55 +02:00
libyaml_dropin-utils.gpr Removed +x flag on *.gpr files 2017-09-07 16:44:53 +02:00
libyaml_dropin.gpr Removed +x flag on *.gpr files 2017-09-07 16:44:53 +02:00
yaml-server.gpr Removed +x flag on *.gpr files 2017-09-07 16:44:53 +02:00
yaml-tests.gpr Removed +x flag on *.gpr files 2017-09-07 16:44:53 +02:00
yaml-utils.gpr Removed +x flag on *.gpr files 2017-09-07 16:44:53 +02:00
yaml.gpr Worked on annotations; fixed bug; improved project 2017-09-07 16:41:54 +02:00

Readme.md

AdaYaml - YAML 1.3 implementation in Ada

This is an implementation of the upcoming YAML 1.3 standard. This library is currently under construction. Be wary of errors, I have not even proven it correct.

Status

Current YAML test suite status:

Total Tests Run:   224
Successful Tests:  224
Failed Assertions: 0
Unexpected Errors: 0

YAML 1.3 Features

Status of YAML 1.3 features, taken from this list:

Number Desciption Status
RFC-001 Remove the 1024 character limit Implemented
RFC-002 Limit content allowed after the '---' header Implemented
RFC-003 Characters that can appear in anchor Implemented
RFC-004 Block sequence entries must use space after dash Implemented
RFC-005 Restrict default implicit types to JSON semantics Not applicable
RFC-006 Disallow carriage return as a break Implemented
RFC-007 Disallow flow collections as implicit keys Implemented
RFC-008 Annotations Can be parsed
RFC-009 Allow unresolvable aliases Implemented
RFC-010 Fixed position of properties and block scalars Implemented
RFC-011 Indentation of block scalars Implemented
RFC-012 Remove wiki-like syntax from folded block scalars Implemented
RFC-013 retracted Not implemented
RFC-014 Anchors always come before tags (when both) Not implemented

General Roadmap

  • Have a basic working lexer
  • Have a basic working parser
  • Have a basic working representer
  • Test against the YAML test suite
  • Implement fancy error reporting (starting line of error with marker)
  • Do some benchmarks
  • Web demo
  • Implement UTF-16 and UTF-32 encodings
  • Make AdaYaml a drop-in replacement for libyaml (provide the C interface)
  • As proof-of-concept, implement the Transformations extension
  • Maybe provide a DOM API

Hacking

After cloning, to fetch the yaml test suite, do:

git submodule init
git submodule update

For updating the test suite, always use

git submodule update --remote

These commands may be useful for toying around:

make adayaml

This builds the library. Not really useful right now.

make test

This builds the unit tests. The executables will be located in the test/bin directory (be sure that the root folder is the working directory when executing).

make utils

This builds a small utility that reads a YAML files and outputs a stream of events to the command line. It is located in util/bin afterwards. The tool reads either the file specified as first command line parameter, or, in absense of that parameter, from stdin.

To edit the code, you can use GNAT Programming Studio to open the *.gpr files.

License

MIT