Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (1) — Plan9 1st Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

yacc(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 functions 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 Science Technical 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. 

Plan 9  —  January 03, 1993

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026