Skip to content

Latest commit

 

History

History
21 lines (18 loc) · 1.14 KB

README.md

File metadata and controls

21 lines (18 loc) · 1.14 KB

YAML support for SWI-Prolog

This package provides a SWI-Prolog wrapper around libyaml, a popular C-based YAML parser that is used by several languages.

An obvious option to support YAML support is to write it all in Prolog, as done by a another YAML add on. The YAML spec however is rather complicated and several versions of YAML have been defined. This makes it attractive to reuse a widespread library that provides a YAML parser that is guaranteed to be compatible with YAML support of several other languages, dispite the fact that the wrapper is probably not much longer than a Prolog parser.

The generated data structure is compatible with SWI-Prolog's JSON libraries as long a no explicit non-standard YAML tags (e.g., !!mytype value are used. Documents may be converted between JSON and YAML by reading using json_read_dict/2 and writing using yaml_write/2 or reading using yaml_read/2 and writing using json_write_dict/2 as long as the YAML can be expressed in JSON.