14adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
24adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao/* Parser-tokenizer link interface */
34adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
44adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#ifndef Py_PARSETOK_H
54adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#define Py_PARSETOK_H
64adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#ifdef __cplusplus
74adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoextern "C" {
84adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#endif
94adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaotypedef struct {
114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    int error;
124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    const char *filename;
134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    int lineno;
144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    int offset;
154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    char *text;
164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    int token;
174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    int expected;
184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao} perrdetail;
194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#if 0
214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#define PyPARSE_YIELD_IS_KEYWORD	0x0001
224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#endif
234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#define PyPARSE_DONT_IMPLY_DEDENT	0x0002
254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#if 0
274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#define PyPARSE_WITH_IS_KEYWORD		0x0003
284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#endif
294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#define PyPARSE_PRINT_IS_FUNCTION       0x0004
314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#define PyPARSE_UNICODE_LITERALS        0x0008
324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
354adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPyAPI_FUNC(node *) PyParser_ParseString(const char *, grammar *, int,
364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao                                              perrdetail *);
374adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPyAPI_FUNC(node *) PyParser_ParseFile (FILE *, const char *, grammar *, int,
384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao                                             char *, char *, perrdetail *);
394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
404adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPyAPI_FUNC(node *) PyParser_ParseStringFlags(const char *, grammar *, int,
414adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao                                              perrdetail *, int);
424adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPyAPI_FUNC(node *) PyParser_ParseFileFlags(FILE *, const char *, grammar *,
434adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao						 int, char *, char *,
444adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao						 perrdetail *, int);
454adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPyAPI_FUNC(node *) PyParser_ParseFileFlagsEx(FILE *, const char *, grammar *,
464adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao						 int, char *, char *,
474adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao						 perrdetail *, int *);
484adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
494adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPyAPI_FUNC(node *) PyParser_ParseStringFlagsFilename(const char *,
504adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao					      const char *,
514adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao					      grammar *, int,
524adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao                                              perrdetail *, int);
534adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPyAPI_FUNC(node *) PyParser_ParseStringFlagsFilenameEx(const char *,
544adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao					      const char *,
554adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao					      grammar *, int,
564adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao                                              perrdetail *, int *);
574adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
584adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao/* Note that he following function is defined in pythonrun.c not parsetok.c. */
594adfde8bc82dd39f59e0445588c3e599ada477dJosh GaoPyAPI_FUNC(void) PyParser_SetError(perrdetail *);
604adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
614adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#ifdef __cplusplus
624adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao}
634adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#endif
644adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#endif /* !Py_PARSETOK_H */
65