Lysandros Nikolaou | 564cd18 | 2020-06-22 02:47:46 +0300 | [diff] [blame] | 1 | #include "parser_interface.h" |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 2 | |
Pablo Galindo | 1ed83ad | 2020-06-11 17:30:46 +0100 | [diff] [blame] | 3 | #include "tokenizer.h" |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 4 | #include "pegen.h" |
| 5 | |
| 6 | mod_ty |
Lysandros Nikolaou | 564cd18 | 2020-06-22 02:47:46 +0300 | [diff] [blame] | 7 | PyParser_ASTFromString(const char *str, const char *filename, int mode, |
Lysandros Nikolaou | 03b7642 | 2020-05-01 20:30:51 +0300 | [diff] [blame] | 8 | PyCompilerFlags *flags, PyArena *arena) |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 9 | { |
Lysandros Nikolaou | 03b7642 | 2020-05-01 20:30:51 +0300 | [diff] [blame] | 10 | PyObject *filename_ob = PyUnicode_FromString(filename); |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 11 | if (filename_ob == NULL) { |
| 12 | return NULL; |
| 13 | } |
Lysandros Nikolaou | 564cd18 | 2020-06-22 02:47:46 +0300 | [diff] [blame] | 14 | mod_ty result = PyParser_ASTFromStringObject(str, filename_ob, mode, flags, arena); |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 15 | Py_XDECREF(filename_ob); |
| 16 | return result; |
| 17 | } |
| 18 | |
| 19 | mod_ty |
Lysandros Nikolaou | 564cd18 | 2020-06-22 02:47:46 +0300 | [diff] [blame] | 20 | PyParser_ASTFromStringObject(const char *str, PyObject* filename, int mode, |
Lysandros Nikolaou | 03b7642 | 2020-05-01 20:30:51 +0300 | [diff] [blame] | 21 | PyCompilerFlags *flags, PyArena *arena) |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 22 | { |
| 23 | if (PySys_Audit("compile", "yO", str, filename) < 0) { |
| 24 | return NULL; |
| 25 | } |
| 26 | |
Pablo Galindo | 2b74c83 | 2020-04-27 18:02:07 +0100 | [diff] [blame] | 27 | mod_ty result = _PyPegen_run_parser_from_string(str, mode, filename, flags, arena); |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 28 | return result; |
| 29 | } |
| 30 | |
| 31 | mod_ty |
Lysandros Nikolaou | 564cd18 | 2020-06-22 02:47:46 +0300 | [diff] [blame] | 32 | PyParser_ASTFromFilename(const char *filename, int mode, PyCompilerFlags *flags, PyArena *arena) |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 33 | { |
| 34 | PyObject *filename_ob = PyUnicode_FromString(filename); |
| 35 | if (filename_ob == NULL) { |
| 36 | return NULL; |
| 37 | } |
| 38 | |
Pablo Galindo | 2b74c83 | 2020-04-27 18:02:07 +0100 | [diff] [blame] | 39 | mod_ty result = _PyPegen_run_parser_from_file(filename, mode, filename_ob, flags, arena); |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 40 | Py_XDECREF(filename_ob); |
| 41 | return result; |
| 42 | } |
| 43 | |
| 44 | mod_ty |
Lysandros Nikolaou | 564cd18 | 2020-06-22 02:47:46 +0300 | [diff] [blame] | 45 | PyParser_ASTFromFile(FILE *fp, const char *filename, const char *enc, |
| 46 | int mode, const char *ps1, const char* ps2, |
| 47 | PyCompilerFlags *flags, int *errcode, PyArena *arena) |
| 48 | { |
| 49 | PyObject *filename_ob = PyUnicode_FromString(filename); |
| 50 | if (filename_ob == NULL) { |
| 51 | return NULL; |
| 52 | } |
| 53 | mod_ty result = PyParser_ASTFromFileObject(fp, filename_ob, enc, mode, |
| 54 | ps1, ps2, flags, errcode, arena); |
| 55 | Py_XDECREF(filename_ob); |
| 56 | return result; |
| 57 | } |
| 58 | |
| 59 | mod_ty |
| 60 | PyParser_ASTFromFileObject(FILE *fp, PyObject *filename_ob, const char *enc, |
| 61 | int mode, const char *ps1, const char* ps2, |
Pablo Galindo | 2b74c83 | 2020-04-27 18:02:07 +0100 | [diff] [blame] | 62 | PyCompilerFlags *flags, int *errcode, PyArena *arena) |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 63 | { |
| 64 | if (PySys_Audit("compile", "OO", Py_None, filename_ob) < 0) { |
| 65 | return NULL; |
| 66 | } |
| 67 | return _PyPegen_run_parser_from_file_pointer(fp, mode, filename_ob, enc, ps1, ps2, |
Pablo Galindo | 2b74c83 | 2020-04-27 18:02:07 +0100 | [diff] [blame] | 68 | flags, errcode, arena); |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 69 | } |