This program is useful to check if Modula-3 units adhere to the usual programming conventions (indentation, lower/upper case in identifiers), and as an example of an application traversing every type of node contained in the abstract syntax tree.
It accepts the usual m3tk options for specifying the location of units (modules, interfaces, generic modules...) and the name of units to process. Then, options specific to "m3format" specify the mode of operation, check versus pretty print, and the amount of information to print. The options are the following:
Here is a sample usage executed from within the m3format package on a LINUXELF machine.
LINUXELF/m3format -TLINUXELF/.M3IMPTAB -format .new -check src/Main.m3