home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / node.h < prev    next >
C/C++ Source or Header  |  2003-12-30  |  804b  |  38 lines

  1.  
  2. /* Parse tree node interface */
  3.  
  4. #ifndef Py_NODE_H
  5. #define Py_NODE_H
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9.  
  10. typedef struct _node {
  11.     short        n_type;
  12.     char        *n_str;
  13.     int            n_lineno;
  14.     int            n_nchildren;
  15.     struct _node    *n_child;
  16. } node;
  17.  
  18. PyAPI_FUNC(node *) PyNode_New(int type);
  19. PyAPI_FUNC(int) PyNode_AddChild(node *n, int type,
  20.                                       char *str, int lineno);
  21. PyAPI_FUNC(void) PyNode_Free(node *n);
  22.  
  23. /* Node access functions */
  24. #define NCH(n)        ((n)->n_nchildren)
  25. #define CHILD(n, i)    (&(n)->n_child[i])
  26. #define TYPE(n)        ((n)->n_type)
  27. #define STR(n)        ((n)->n_str)
  28.  
  29. /* Assert that the type of a node is what we expect */
  30. #define REQ(n, type) assert(TYPE(n) == (type))
  31.  
  32. PyAPI_FUNC(void) PyNode_ListTree(node *);
  33.  
  34. #ifdef __cplusplus
  35. }
  36. #endif
  37. #endif /* !Py_NODE_H */
  38.