mirror of
https://github.com/python/cpython.git
synced 2025-12-15 21:44:50 +00:00
Initial revision
This commit is contained in:
parent
c636014c43
commit
85a5fbbdfe
78 changed files with 13589 additions and 0 deletions
29
Include/node.h
Normal file
29
Include/node.h
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/* Parse tree node interface */
|
||||
|
||||
typedef struct _node {
|
||||
int n_type;
|
||||
char *n_str;
|
||||
int n_nchildren;
|
||||
struct _node *n_child;
|
||||
} node;
|
||||
|
||||
extern node *newnode PROTO((int type));
|
||||
extern node *addchild PROTO((node *n, int type, char *str));
|
||||
|
||||
/* Node access functions */
|
||||
#define NCH(n) ((n)->n_nchildren)
|
||||
#define CHILD(n, i) (&(n)->n_child[i])
|
||||
#define TYPE(n) ((n)->n_type)
|
||||
#define STR(n) ((n)->n_str)
|
||||
|
||||
/* Assert that the type of a node is what we expect */
|
||||
#ifndef DEBUG
|
||||
#define REQ(n, type) { /*pass*/ ; }
|
||||
#else
|
||||
#define REQ(n, type) \
|
||||
{ if (TYPE(n) != (type)) { \
|
||||
fprintf(stderr, "FATAL: node type %d, required %d\n", \
|
||||
TYPE(n), type); \
|
||||
abort(); \
|
||||
} }
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue