Skip to content

ToolMaker Tools

tajmone edited this page Feb 5, 2022 · 4 revisions

The ToolMaker suite consists of the following command line tools:

  • IMP — Incremental Macro Processor.
  • LMK — ListerMaker.
  • PMK — ParserMaker.
  • SMK — ScannerMaker.
  • toolmake — interactive initiator to setup a ToolMaker subsystem.

In this page I'll include the -help text of the CLI tools, with some extra comments to introduce what each tool does, which file extensions it's associated with, etc. Proper documentation of each tool will be further developed in independent documents (Wiki pages).

NOTE — the indentation in the -help outputs reproduced here was adjusted, to render them more readable.

IMP

Related Wiki pages:

IMP (Incremental Macro Processor) is a macro tool, similar in function to m4 and other similar tools.

$ imp -help

IMP -- Incremental Macro Processor 2.1(13) (1997-07-29 16:32)

Usage: imp [-h] [options] <input file> [<output file>]

Arguments:
<input file>       input file to process (default ".imp" extension)
<output file>      output file (default terminal)

Options:
-h                 show this information
-[-]l              enable[disable] listing to file
-[-]i              enable[disable] intermediate pass
-[-]u              enable[disable] use of environment variables
-[-]v              enable[disable] timing figures
-[-]c              enable[disable] code coverage messages
-ec                set escape character to 'c'
--e                set the default escape character '`'
-sVar(Val{,Val})   set the variable "Var" to "Val{,Val}"

LMK

Related Wiki pages:

LMK (ListerMaker) generates a lister, i.e. modules handling input text and error messages.

$ lmk -help

LMK -- ListerMaker 2.1(26) (1998-04-15 18:36)

Usage: lmk [-help] [options] <input file>
Options:
  -[-]verbose    enable[disable] verbose mode
  -target        set target language
  -os            set target operating system
  -prefix        set [no] prefix
  -library       set library
  -[-]escape     set [no] escape character
  -[-]generate   select [no] generated output {tables | source}
  -[-]force      do [not] force generation of source files
  -[-]listings   select [no] listing functions
  -[-]include    do [not] allow nested source files
  -[-]limit      set [no] limit on number of messages in listings
  -message       storage of messages {file | embedded}
  -lmt <file>    use <file> for tables
  -tmk <file>    read common options from <file>
  -help          this help information

PMK

Related Wiki pages:

PMK (ParserMaker) is a parser generator, like yacc and other similar tools.

$ pmk -help

PMK -- ParserMaker 2.1(17) (1997-07-28 17:52)

Usage: pmk [-help] [options] <input file>
Options:
  -[-]verbose                   enable[disable] verbose mode
  -target <lang>                generate file for target language <lang>
  -os <os>                      generate source files for target operating system <os>
  -[-]prefix [<prefix>]         set [no] parser prefix
  -library <lib>                use directory <lib> for library files
  -[-]escape [<c>]              set [no] escape character
  -[-]width [<n>]               set [no] listing width
  -[-]height [<n>]              set [no] listing height
  -[-]generate                  select [no] generated output {tables | source}
  -[-]force                     do [not] force generating of source code
  -[-]listerprefix [<prefix>]   set [no] lister prefix
  -[-]errorhandler              enable [disable] generation of error handler
  -[-]trace                     enable [disable] trace mode
  -[-]line                      do [not] generate line information in the semantic actions
  -lookaheadmax <n>             set max lookahead to <n>
  -shiftcost <n>                set shift cost for terminals to <n>
  -stacklimit <n>               set parse stack limit to <n> entries
  -[-]pack                      set [no] table packing { row | column | rds | gcs | les }
  -[-]actionpack                set [no] packing of action tables
  -[-]gotopack                  set [no] packing of goto tables
  -[-]list                      set [no] listings { input | grammar | items | tables | statistics | info }
  -[-]optimize                  set [no] optimize mode
  -[-]recovery                  set [no] recovery mode { single | multiple | panic }
  -[-]resolve                   set [no] resolve mode { sr | rr }
  -voc <file>                   write vocabulary to <file>
  -pml <file>                   write lists to <file> (if any)
  -pmt <file>                   write tables to <file> (if any)
  -tmk <file>                   read common options from <file>
  -help                         this help information

SMK

Related Wiki pages:

SMK (ScannerMaker) is a lexical scanner (aka lexer) generator, like lex and other similar tools.

$ smk -help

SMK -- ScannerMaker 2.1(25) (1997-07-28 17:55)

Usage: smk [-help] [options] <input file>
Options:
  -[-]verbose             do [not] enable verbose mode
  -target <lang>          generate for target language <lang>
  -os <os>                generate for target os <os>
  -[-]prefix [<prefix>]   set [no] scanner prefix
  -library <lib>          use directory <lib> as library
  -[-]escape [<c>]        set [no] escape character
  -[-]width <n>           set [no] listing width to <n>
  -[-]height <n>          set [no] listing height to <n>
  -[-]generate            select [no] generated output { tables | source }
  -[-]force               do [not] force generation of source code
  -[-]screening           set [no] screened token match length
  -[-]set <set>           select character set [use default]
  -[-]trace               do [not] generate tracing
  -[-]optimize            do [not] optimize tables
  -tokensize <n>          set normal size of token buffer to <n>
  -tokenlimit <n>         set maximal token length <n>
  -[-]exclude [<c>]       set [no] excluded character
  -[-]pack                select [no] table packing { row | column | rds | les | gcs | error }
  -[-]list                select [no] listed information { set | map | token | input | nfa | dfa | rule }
  -voc <file>             read vocabulary from <file>
  -sml <file>             write lists to <file> (if any)
  -smt <file>             write tables to <file> (if any)
  -tmk <file>             read common options from <file>
  -help                   this help information

Toolmake

Related Wiki pages:

$ toolmake -help

toolmake -- initiator for ToolMaker tools 2.1(12) (1997-07-28 17:57)

Usage: toolmake [-[-]go|-[-]verbose|-help]... <name>

Arguments:
  <name>        -- for the subsystem

Options:
  -[-]go        -- quick toolmake with all defaults accepted (default: OFF)
  -[-]verbose   -- verbose mode (default: OFF)
  -help         -- this help

This tool is currently unavailable under Windows OS.

Description:

Toolmake is a facility to help you to create a SoftLab ToolMaker subsystem, i.e. toolmake will create the appropriate files for you in order to let you concentrate on the essential tasks when writing a ToolMaker subsystem.

It's basically a wizard-like interactive command line tool to help you start a new ToolMaker project with the correct settings, scaffolding the project's directory structure and populating it with the essential files.

Clone this wiki locally