2 * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
3 * See the copyright notice in the ACK home directory, in the file "Copyright".
6 #define RCS_TRANS "$Id: trans.h,v 2.6 1994/06/24 10:13:18 ceriel Exp $"
9 /* This structure is the center of all actions */
10 /* It contains the description of all phases,
11 the suffices they consume and produce and various properties */
13 typedef struct transform trf;
16 char *t_in ; /* Suffices in '.o.k' */
17 char *t_out ; /* Result '.suffix' */
18 char *t_outfile ; /* Resulting output file */
19 char *t_name ; /* The name of this transformation */
20 list_head t_mapf ; /* Mapflags argument, uses varrep */
21 char *t_argd ; /* Argument descriptor, uses varrep */
22 char *t_needed ; /* Suffix indicating the libraries needed */
23 char *t_rts ; /* Suffix indicating the major language used*/
24 int t_stdin:1 ; /* The input is taken on stdin */
25 int t_stdout:1 ; /* The output comes on stdout */
26 int t_combine:1 ; /* Transform several files to one result */
27 int t_visited:1 ; /* NO before setup, YES after */
28 int t_prep:2 ; /* Needs preprocessor YES/NO/MAYBE */
29 int t_isprep:1 ; /* Is preprocessor */
30 int t_keep:1 ; /* Keep the output file */
31 int t_scan:1 ; /* Used while finding path's */
32 int t_bscan:1 ; /* Best scan so far, while finding path's */
33 int t_linker:1 ; /* The linker usurps all unrecognized flags */
34 int t_do:1 ; /* Is in a path to execute */
35 int t_blocked:1 ; /* An input file could not be produced */
36 short t_optim ; /* Is optimizer, + optimizer level */
37 short t_priority ; /* Importance of including phase in scan */
38 list_head t_inputs ; /* The input 'path's of a combiner */
39 char *t_origname ; /* The basename of the output file */
40 trf *t_next ; /* The transformation to be executed next */
41 char *t_prog ; /* Pathname for load file */
42 list_head t_flags ; /* List of flags */
43 list_head t_args ; /* List of arguments */
46 #define t_cont(elem) ((trf *)l_content(elem))