[This document has been superseded; the current version of Metre is 2.3. --jutta]

Metre v2.2

Metre is a freely-distributable ANSI/ISO Standard C parser whose behavior is determined by a set of rules.  Sets are provided for a metrics tool and a call-tree tool.  Written in Standard C, lex, and yacc, it is source-code portable across operating systems, Standard C compilers, and the various flavors of lex and yacc.  The documentation includes man pages.

Availability - Metre v2.2 is now available for anonymous FTP from the comp.compilers archive, iecc.com:pub/file/metre.tar.gz, and from CompuServe in the Software Engineering library [5] of the CASE forum as metre.zip.  The C-metrics home page, http://www.qucis.queensu.ca/Software-Engineering/Cmetrics.html, has an older version of Metre.  I do not know when the maintainer will make the new version available.

Building Tools - Compile the two parser files and one of the rules files with a Standard C compiler and then link their objects together.  UNIX and MS-DOS makefiles are included.  I provide the parser files that were generated by MKS lex/yacc, but if you want to modify the parser and have a lex/yacc, you can regenerate them.  Rules files are provided for a tool that prints call trees, Mtree, and a metrics tool, which is called Metre ("Metre" is the name of the entire package and the metrics tool--it is overloaded).  You can modify these rules or write your own.

Metre Metrics Tool - Reports the minimum, maximum, average, and total of the following metrics at the function, module, and project level.  Metre also warns about dubious programming practices, such as using the goto statement.  This and other behavior can be easily changed, however, by modifying the rules to reflect your own concept of what good programming is.

Mtree Call-Tree Tool - Mtree prints a call graph as an annotated, indented tree of function names.  From the command line, you can name the root function, suppress tree lines, select alternate line characters, specify indention and width of file-name margin, and specify whether to print the table of contents and whether to ignore library calls.

Paul_Long@ortel.org


From an announcement posted to comp.std.c as <1334505438.71317713@ortel.org> on March 10th, 1995.  Mark­up as usual by Jutta Degener, jutta@pobox.com.