Vertigo aims to be a complete source-to-source compiler to run ABL
code in a sane environment. The project will eventually include a
complete runtime for compiled code, a standard code formatter (think
gofmt
for ABL), and a set of enhancements to the language designed
to make it less less harmful for larger projects.
You probably shouldn’t use this project. Really. ABL works well enough as a domain-specific language for reporting and some basic business logic, but it’s terrible for anything else. If you’re using it outside of it’s core domain, switch to something else as soon as you can; it will save you great deal of trouble.
This project is designed to be a tool for shops that can’t afford to start a complete rewrite and need a better interop environment to do it piecemeal, or for shops that can’t or won’t migrate away and need to mitigate some of the bad engineering properties of the language.
util/docstrip.py
: Ugly scraping code to extract syntax definitions from the ABLdvref
manual (in HTML format). This script was written with the 10.1b manual in mind, though it ought to work with others. It produces a directory per manual page, with a numbered text file containing each syntax entry in the page. A handlful of these files need to be fixed by hand before they can be used (mostly places where the language uses a character that’s part of the syntax-description language, like “{“).ablisp.lisp
: Bootstrap compiler to turn the directory tree produced bydocstrip.py
into a parser skeleton using themeta-sexp
library. Entries are separated by category, and comments are included with information from the manual where possible.parser/
: The parser skeleton generated byablisp.lisp
from the 10.1b manual.