trans.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  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".
  4. */
  5. #ifndef UTILS_ACK_TRF_H
  6. #define UTILS_ACK_TRF_H
  7. #include "list.h"
  8. #ifndef NORCSID
  9. #define RCS_TRANS "$Id$"
  10. #endif
  11. /* This structure is the center of all actions */
  12. /* It contains the description of all phases,
  13. the suffices they consume and produce and various properties */
  14. typedef struct transform trf;
  15. struct transform {
  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. unsigned int t_stdin:1 ; /* The input is taken on stdin */
  25. unsigned int t_stdout:1 ; /* The output comes on stdout */
  26. unsigned int t_combine:1 ; /* Transform several files to one result */
  27. unsigned int t_visited:1 ; /* NO before setup, YES after */
  28. unsigned int t_prep:2 ; /* Needs preprocessor YES/NO/MAYBE */
  29. unsigned int t_isprep:1 ; /* Is preprocessor */
  30. unsigned int t_keep:1 ; /* Keep the output file */
  31. unsigned int t_scan:1 ; /* Used while finding path's */
  32. unsigned int t_bscan:1 ; /* Best scan so far, while finding path's */
  33. unsigned int t_linker:1 ; /* The linker usurps all unrecognized flags */
  34. unsigned int t_do:1 ; /* Is in a path to execute */
  35. unsigned 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 */
  44. } ;
  45. #define t_cont(elem) ((trf *)l_content(elem))
  46. #endif