parser: error message cosmetics
frontend: distinguish exit status codes
type: add const getters
CMake: frontend: make shared library
unit testing framework and a couple simple tests
unit tests: avoid useless header inclusions
unit testing: more tests for binary operations