A library to parse and manipulate an algebraic superset/semantic application of JSON
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
include
src
tests
.gitignore
COPYING
Makefile.am
NEWS.md
README.md
configure.ac
test-driver

README.md

libason

ASON is an extension of JSON which specifies a semantic, and allows for pattern expressions that can specify or match groups of JSON values. libason is a simple library for manipulating ASON programmatically in C.

Installation

libason depends on GNU Readline if you are going to build the asonq utility. Rendering the spec requires a LaTeX distribution that provides the pdflatex command. Finally, all builds of libason will require the Lemon parser generator.

As of Fedora 21, the above are provided by the following RPMs in Fedora:

  • readline-devel
  • texlive-latex-bin-bin
  • texlive-texconfig
  • texlive-texconfig-bin
  • lemon

libason can be built and installed with the usual commands:

$ ./configure
$ make
$ make install

Configure arguments

The configure script can take parameters to change the target install path, like any Automake configuration script. You can use the --help option to print a list of all options. Here are the libason-specific options:

  • --enable-spec - Build the ASON specification document. Requires the pdflatex command.

  • --enable-lcov - Build library with LCOV support. make lcov will build a code coverage report.

  • --with-asonq - Build and install the asonq utility as well as the library.

Using the asonq utility

libason comes with a simple REPL called asonq. It takes no arguments on the command line.

Typing an ASON value into asonq will reduce it to simplest form and repeat it. You can assign to variables with the := operator, such as:

> foo := 6

Type /quit to exit asonq.