Issue #7701: Fix crash in binascii.b2a_uu() in debug mode when given a
[python.git] / Parser / parser.h
blob403236d1ea2b87cdedea2003df3f1e8a7bb0e7a9
1 #ifndef Py_PARSER_H
2 #define Py_PARSER_H
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
8 /* Parser interface */
10 #define MAXSTACK 1500
12 typedef struct {
13 int s_state; /* State in current DFA */
14 dfa *s_dfa; /* Current DFA */
15 struct _node *s_parent; /* Where to add next node */
16 } stackentry;
18 typedef struct {
19 stackentry *s_top; /* Top entry */
20 stackentry s_base[MAXSTACK];/* Array of stack entries */
21 /* NB The stack grows down */
22 } stack;
24 typedef struct {
25 stack p_stack; /* Stack of parser states */
26 grammar *p_grammar; /* Grammar to use */
27 node *p_tree; /* Top of parse tree */
28 #ifdef PY_PARSER_REQUIRES_FUTURE_KEYWORD
29 unsigned long p_flags; /* see co_flags in Include/code.h */
30 #endif
31 } parser_state;
33 parser_state *PyParser_New(grammar *g, int start);
34 void PyParser_Delete(parser_state *ps);
35 int PyParser_AddToken(parser_state *ps, int type, char *str, int lineno, int col_offset,
36 int *expected_ret);
37 void PyGrammar_AddAccelerators(grammar *g);
39 #ifdef __cplusplus
41 #endif
42 #endif /* !Py_PARSER_H */