Mercurial > cpython-lru_cache-weakref
diff Include/node.h @ 6:fc6fcd7df4f7 legacy-trunk
Initial revision
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Sun, 14 Oct 1990 12:07:46 +0000 |
| parents | |
| children | f72e0c62369e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Include/node.h Sun Oct 14 12:07:46 1990 +0000 @@ -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
