| /* Parse tree node interface */ |
| PyAPI_FUNC(node *) PyNode_New(int type); |
| PyAPI_FUNC(int) PyNode_AddChild(node *n, int type, |
| char *str, int lineno, int col_offset, |
| int end_lineno, int end_col_offset); |
| PyAPI_FUNC(void) PyNode_Free(node *n); |
| PyAPI_FUNC(Py_ssize_t) _PyNode_SizeOf(node *n); |
| /* 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) |
| #define LINENO(n) ((n)->n_lineno) |
| /* Assert that the type of a node is what we expect */ |
| #define REQ(n, type) assert(TYPE(n) == (type)) |
| PyAPI_FUNC(void) PyNode_ListTree(node *); |
| void _PyNode_FinalizeEndPos(node *n); // helper also used in parsetok.c |