Morbig Versions Save

A static parser for POSIX Shell

v0.11.0

1 year ago

This release does not bring big improvements over 0.10.4, it is merely a cleanup and an update of the repository and its dependencies.

0.10.4

4 years ago

This release includes:

  • minor modifications of CST of Words
  • bug fixes
  • performance improvement
  • error handling improvement, in particular in the localisation of here documents
  • new tests
  • code cleanup
  • documentation update

0.10.3

5 years ago

This release fixes compilation on bytecode architectures.

0.10.2

5 years ago

Fix #68

0.10.1

5 years ago

This release contains bugfixes as well as a parser for pattern-matching expressions.

v0.9.1

5 years ago

This is a bugfix release.

v0.9

5 years ago

This is the first release of Morbig, a static parser for POSIX shell. It parses the scripts statically, that is without executing them, and constructs a concrete syntax tree for each of them. The concrete syntax trees are built using constructors according to the shell grammar of the POSIX standard.

This release features:

  • An executable morbig that parses POSIX shell scripts and outputs them in various formats including DOT or JSON.

  • An OCaml library that gives access to the parsing functions, the exporting functions as well as the CST and various helpers on the CST.

  • A Dockerfile to build Morbig in Docker. Docker images can also be found on DockerHub.

  • A C library extracted from the OCaml library.

  • A test suite of both positive and negative tests about corner cases of the POSIX standard.

Morbig has been used to parse all the installation scripts in the packages of the Debian distribution. It is also meant to be the first tool in a toolchain to verify such installation scripts, as part of the CoLiS project.