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