tree.hh 793 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* $Id$ */
  2. #define MAXARGS 3
  3. typedef struct tree {
  4. short t_oper; /* tree operator */
  5. short t_whichoper; /* expression operator */
  6. t_addr t_address; /* some operators use an address */
  7. union {
  8. long tt_ival;
  9. char *tt_sval;
  10. double tt_fval;
  11. struct {
  12. struct idf *tt_idf;
  13. char *tt_str;
  14. } tt_x;
  15. struct tree *tt_args[MAXARGS];
  16. t_position tt_pos;
  17. } t_xxxx;
  18. #define t_ival t_xxxx.tt_ival
  19. #define t_sval t_xxxx.tt_sval
  20. #define t_fval t_xxxx.tt_fval
  21. #define t_idf t_xxxx.tt_x.tt_idf
  22. #define t_str t_xxxx.tt_x.tt_str
  23. #define t_args t_xxxx.tt_args
  24. #define t_lino t_xxxx.tt_pos.lineno
  25. #define t_filename t_xxxx.tt_pos.filename
  26. #define t_pos t_xxxx.tt_pos
  27. } t_tree, *p_tree;
  28. /* ALLOCDEF "tree" 100 */
  29. #if __STDC__
  30. extern p_tree mknode(int, ...);
  31. #else
  32. extern p_tree mknode();
  33. #endif