TWIG(1) TWIG(1)
NAME
twig - tree-manipulation language
SYNOPSIS
twig [ -sASC ] [ -w suffix ] file.mt
DESCRIPTION
Twig converts a tree-specification scheme consisting of
pattern-action rules with associated costs into C functions
that can be called to manipulate input trees. The C func-
tions first find a minimum-cost covering of an input tree
using a dynamic programming algorithm and then execute the
actions associated with the patterns used in the covering.
The tree-specification scheme may allow several coverings
for an input tree, but the dynamic programming algorithm
resolves any ambiguities by selecting a cheapest covering.
The input file containing the tree-specification scheme must
have the suffix `.mt'. Twig produces two output files:
walker.c, which becomes the source file for the tree
matcher, and symbols.h, which contains the definitions for
the node and label symbols used in the source file.
To build walker.c, twig uses an internal template file, by
default on appropriate for use with fprintf(2). The options
are
-A Use a template file for ANSI/POSIX source files.
-C Use a template file for files that use libc's
print(2) routines.
-S Use a template file for files that use
fprintf(2).
-s Do not produce a symbols.h file.
-w suffix Use the template file
/sys/lib/twig/walker.suffix.
FILES
/sys/lib/twig System area for template files.
SEE ALSO
yacc(1)
S. W. K. Tjiang, The Twig Reference Manual, Computing Sci-
ence Technical Report No. 120, AT&T Bell Laboratories, Mur-
ray Hill, N.J.
A. V. Aho, M. Ganapathi, and S. W. K. Tjiang, Code
generation using tree matching and dynamic programming.
Page 1 Plan 9 (printed 11/1/25)
TWIG(1) TWIG(1)
BUGS
When tree matching fails, the debugging output is cryptic.
Page 2 Plan 9 (printed 11/1/25)