Skip to content
tajmone edited this page Feb 3, 2022 · 2 revisions

Welcome to Tristano Ajmone's personal ToolMaker wiki!

I use this Wiki to jot down my notes on ToolMaker, and as a place to try and rebuild its documentation, which went lost a long time ago.


Table of Contents


About ToolMaker

ToolMaker is

a set of tools to make compilers, analyzers and similar tools. It creates a lexical scanner (like lex et.al) and a parser (like yacc et.al). But in addition it can also generate a lister (modules handling input text and error messages). It is also build on top of a powerful macro tool, imp, similar in function to m4 and others.

It was created in the 90s by Kenth Ericsson, Jerker Willander, Thomas Nilefalk and others at SoftLab AB Sweden. SoftLab was sold to Rational Software in 1997 which then resold that to Ericsson some years later.

Although strictly speaking, ToolMaker is copyrighted material, one if it's original authors and owners of SoftLab, Thomas Nilefalk, resurrected the source code on GitHub.

Reasons

Both Thomas Nilefalk and I share the same interest in keeping ToolMaker alive, i.e. because it's the lexer/parser generator used to build the ALAN IF language (created by Thomas), a project which sees us both actively involved with.

Any changes to the ALAN language syntax requires ToolMaker, so we need to ensure that the ToolMaker binaries are made available for ALAN developers. Providing some documentation is also on our wish list.

Goals

My current goals in respect to ToolMaker are:

  1. Ensuring it can be build under MS Windows.
  2. Trying to recreate the lost documentation, since currently there is none.

About this Wiki

I'm using this wiki to collect notes and start drafting the missing documentation. I'll use markdown for generic pages, and AsciiDoc for documentation drafts, since ultimately the docs will be included in the upstream repository and converted using Asciidoctor (Ruby).

Recreating the lost documentation isn't going to be an easy task, especially for me, since I never read it in the first place, and haven't worked with ToolMaker before. Nonetheless, it should be doable, one step at the time, by experimenting with ToolMaker's binary tools, reading the source code, and studying the examples — and of course, with @thoni56's support, who knows ToolMaker inside out.

Clone this wiki locally