Skip to content

First Release of Morbig

Compare
Choose a tag to compare
@Niols Niols released this 05 Sep 17:35

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.