/*********************************************************************/ /* pC++/Sage++ Copyright (C) 1993 */ /* Indiana University University of Oregon University of Rennes */ /*********************************************************************/ /**************************************************************** * * * Structure of the dep files generated by parsers * * * ****************************************************************/ /*#include */ #ifndef MAX_DEP #include dep.h #endif #include "compatible.h" /*#ifdef NO_u_short *#ifndef DEF_USHORT *#define DEF_USHORT 1 */ typedef unsigned int u_shrt; /*#endif #endif */ #define D_MAGIC 0420 struct preamble { /* structure of preamble of dep file */ u_shrt ptrsize; /* bit length of pointers (32 or 64) phb */ u_shrt language; /* source language type */ u_shrt num_blobs; /* number of blob nodes */ u_shrt num_bfnds; /* number of bif nodes */ u_shrt num_llnds; /* number of low level nodes */ u_shrt num_symbs; /* number of symbol nodes */ u_shrt num_types; /* number of type nodes */ u_shrt num_label; /* number of label nodes */ u_shrt num_dep; /* number of dep nodes */ u_shrt num_cmnts; /* number of comment nodes */ u_shrt num_files; /* number of filename nodes */ u_shrt global_bfnd; /* id of the global bif node */ }; struct locs { long llnd; /* offset of llnd in the dep file */ long symb; /* symbol nodes */ long type; /* type nodes */ long labs; /* label nodes */ long cmnt; /* comment nodes */ long file; /* filename nodes */ long deps; /* dep nodes */ long strs; /* string tables */ }; struct bf_nd { /* structure of bif node in dep file */ u_shrt id; /* id of this bif node */ u_shrt variant; /* type of this bif node */ u_shrt cp; /* control parent of this node */ u_shrt bf_ptr1; u_shrt cmnt_ptr; u_shrt symbol; u_shrt ll_ptr1; u_shrt ll_ptr2; u_shrt ll_ptr3; u_shrt dep_ptr1; u_shrt dep_ptr2; u_shrt label; u_shrt lbl_ptr; u_shrt g_line; u_shrt l_line; u_shrt decl_specs; u_shrt filename; }; struct ll_nd { u_shrt id; u_shrt variant; u_shrt type; }; struct sym_nd { u_shrt id; u_shrt variant; u_shrt type; u_shrt attr; u_shrt next; u_shrt scope; u_shrt ident; }; struct typ_nd { u_shrt id; u_shrt variant; u_shrt name; }; struct lab_nd { u_shrt id; u_shrt labtype; u_shrt body; u_shrt name; long stat_no; }; struct fil_nd { u_shrt id; u_shrt name; }; struct cmt_nd { u_shrt id; u_shrt type; u_shrt next; u_shrt str; }; struct dep_nd { u_shrt id; u_shrt type; u_shrt sym; u_shrt from_stmt; u_shrt from_ref; u_shrt to_stmt; u_shrt to_ref; u_shrt from_hook; u_shrt to_hook; u_shrt from_fwd; u_shrt from_back; u_shrt to_fwd; u_shrt to_back; u_shrt dire[MAX_DEP]; };