glenda.party
term% ls -F
term% cat index.txt
TWIG(1)                     General Commands Manual                    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  ma‐
       nipulate input trees.  The C functions first find a minimum-cost cover‐
       ing of an input tree using a dynamic programming algorithm and then ex‐
       ecute  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  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 one
       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)  rou‐
                  tines.

       -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.

SOURCE
       /sys/src/cmd/twig

SEE ALSO
       yacc(1)
       S. W. K. Tjiang, ``The Twig Reference Manual'', Computing Science Tech‐
       nical Report No. 120, AT&T Bell Laboratories, Murray Hill, N.J.
       A. V. Aho, M. Ganapathi, and S. W. K. Tjiang, ``Code  generation  using
       tree matching and dynamic programming.''

BUGS
       When tree matching fails, the debugging output is cryptic.



                                                                       TWIG(1)