Mercurial > cpython-lru_cache-weakref
annotate Include/node.h @ 80661:94de77bd0b4b 2.7
Issue #16194: document imp.load_dynamic problems
when read several extension modules from the same binary object file.
| author | Andrew Svetlov <andrew.svetlov@gmail.com> |
|---|---|
| date | Thu, 29 Nov 2012 19:51:28 +0200 |
| parents | aceb975c4832 |
| children | f7248550059c |
| rev | line source |
|---|---|
| 145 | 1 |
| 6 | 2 /* Parse tree node interface */ |
| 3 | |
|
13443
7e58c060d534
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
4 #ifndef Py_NODE_H |
|
7e58c060d534
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
5 #define Py_NODE_H |
|
7e58c060d534
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
6 #ifdef __cplusplus |
|
7e58c060d534
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
7 extern "C" { |
|
7e58c060d534
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
8 #endif |
|
7e58c060d534
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
9 |
| 6 | 10 typedef struct _node { |
|
25298
c670945c8695
Back out the previous change. It doesn't save any space on 64-bit
Guido van Rossum <guido@python.org>
parents:
25297
diff
changeset
|
11 short n_type; |
|
13443
7e58c060d534
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
12 char *n_str; |
|
14147
21ec69a56228
Charles G. Waldman <cgw@fnal.gov>:
Fred Drake <fdrake@acm.org>
parents:
13443
diff
changeset
|
13 int n_lineno; |
|
36786
57322cb2ca11
Patch #1440601: Add col_offset attribute to AST nodes.
Martin v. Löwis <martin@v.loewis.de>
parents:
32888
diff
changeset
|
14 int n_col_offset; |
|
14147
21ec69a56228
Charles G. Waldman <cgw@fnal.gov>:
Fred Drake <fdrake@acm.org>
parents:
13443
diff
changeset
|
15 int n_nchildren; |
|
25298
c670945c8695
Back out the previous change. It doesn't save any space on 64-bit
Guido van Rossum <guido@python.org>
parents:
25297
diff
changeset
|
16 struct _node *n_child; |
| 6 | 17 } node; |
| 18 | |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
20434
diff
changeset
|
19 PyAPI_FUNC(node *) PyNode_New(int type); |
|
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
20434
diff
changeset
|
20 PyAPI_FUNC(int) PyNode_AddChild(node *n, int type, |
|
36786
57322cb2ca11
Patch #1440601: Add col_offset attribute to AST nodes.
Martin v. Löwis <martin@v.loewis.de>
parents:
32888
diff
changeset
|
21 char *str, int lineno, int col_offset); |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
20434
diff
changeset
|
22 PyAPI_FUNC(void) PyNode_Free(node *n); |
|
78390
aceb975c4832
Closes #15512: Correct __sizeof__ support for parser
Jesus Cea <jcea@jcea.es>
parents:
36786
diff
changeset
|
23 #ifndef Py_LIMITED_API |
|
aceb975c4832
Closes #15512: Correct __sizeof__ support for parser
Jesus Cea <jcea@jcea.es>
parents:
36786
diff
changeset
|
24 Py_ssize_t _PyNode_SizeOf(node *n); |
|
aceb975c4832
Closes #15512: Correct __sizeof__ support for parser
Jesus Cea <jcea@jcea.es>
parents:
36786
diff
changeset
|
25 #endif |
| 6 | 26 |
| 27 /* Node access functions */ | |
| 28 #define NCH(n) ((n)->n_nchildren) | |
|
32888
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
25298
diff
changeset
|
29 |
| 6 | 30 #define CHILD(n, i) (&(n)->n_child[i]) |
|
32888
c7e03cf8333e
PEP-0318, @decorator-style. In Guido's words:
Anthony Baxter <anthonybaxter@gmail.com>
parents:
25298
diff
changeset
|
31 #define RCHILD(n, i) (CHILD(n, NCH(n) + i)) |
| 6 | 32 #define TYPE(n) ((n)->n_type) |
| 33 #define STR(n) ((n)->n_str) | |
| 34 | |
| 35 /* Assert that the type of a node is what we expect */ | |
|
20434
ba2850408f0a
Use an assert() for the REQ() macro instead of making up our own
Guido van Rossum <guido@python.org>
parents:
14375
diff
changeset
|
36 #define REQ(n, type) assert(TYPE(n) == (type)) |
| 86 | 37 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
20434
diff
changeset
|
38 PyAPI_FUNC(void) PyNode_ListTree(node *); |
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
39 |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
40 #ifdef __cplusplus |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
41 } |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
42 #endif |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
43 #endif /* !Py_NODE_H */ |
