home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / emerald / emrldsys.lha / Language / Compiler / nodes.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-08-16  |  782 b   |  35 lines

  1. /*
  2.  * @(#)nodes.c    1.3  7/9/87
  3.  */
  4. #include "assert.h"
  5. #include "nodes.h"
  6. #include "scan.h"
  7. #include "tagNames.c"
  8. #include "system.h"
  9.  
  10. NodePtr F_NewNode(T, N)
  11. Tag T;
  12. int N;
  13. {
  14.     register NodePtr New;
  15.     register int firstChild;
  16.     firstChild = (int)T <= (int)LASTZEROLOCALS ? 0 :
  17.          (int)T <= (int)LASTONELOCAL ? 1 : 
  18.          (int)T <= (int)LASTTWOLOCALS ? 2 : 3;
  19.     New = (NodePtr) calloc (1,
  20.       (unsigned)(BODYSIZE + ((N)+firstChild) * sizeof(NodePtr)));
  21.     New->tag = T;
  22.     New->maxChildren = N+firstChild;
  23.     New->firstChild = New->nChildren = firstChild;
  24.     New->lineNumber = nextLineNumber;
  25.     return(New);
  26. }
  27.  
  28. void initializeNodes()
  29. {
  30.   NodePtr p = NULL;
  31.   assert (sizeof(Address) == 4);
  32.   assert ((char *)&(p->b.invoc.target) - (char *)&p->b.invoc.opNumber == 8);
  33.   
  34. }
  35.