~ubuntu-branches/ubuntu/maverick/python3.1/maverick

« back to all changes in this revision

Viewing changes to Parser/parser.h

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-03-23 00:01:27 UTC
  • Revision ID: james.westby@ubuntu.com-20090323000127-5fstfxju4ufrhthq
Tags: upstream-3.1~a1+20090322
ImportĀ upstreamĀ versionĀ 3.1~a1+20090322

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef Py_PARSER_H
 
2
#define Py_PARSER_H
 
3
#ifdef __cplusplus
 
4
extern "C" {
 
5
#endif
 
6
 
 
7
 
 
8
/* Parser interface */
 
9
 
 
10
#define MAXSTACK 1500
 
11
 
 
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;
 
17
 
 
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;
 
23
 
 
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;
 
32
 
 
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);
 
38
 
 
39
#ifdef __cplusplus
 
40
}
 
41
#endif
 
42
#endif /* !Py_PARSER_H */