Lysandros Nikolaou | ebebb64 | 2020-04-23 18:36:06 +0300 | [diff] [blame] | 1 | #include "pegen_interface.h" |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 2 | |
| 3 | #include "../tokenizer.h" |
| 4 | #include "pegen.h" |
| 5 | |
| 6 | mod_ty |
Lysandros Nikolaou | 03b7642 | 2020-05-01 20:30:51 +0300 | [diff] [blame] | 7 | PyPegen_ASTFromString(const char *str, const char *filename, int mode, |
| 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 | } |
| 14 | mod_ty result = PyPegen_ASTFromStringObject(str, filename_ob, mode, flags, arena); |
| 15 | Py_XDECREF(filename_ob); |
| 16 | return result; |
| 17 | } |
| 18 | |
| 19 | mod_ty |
Lysandros Nikolaou | 03b7642 | 2020-05-01 20:30:51 +0300 | [diff] [blame] | 20 | PyPegen_ASTFromStringObject(const char *str, PyObject* filename, int mode, |
| 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 | 03b7642 | 2020-05-01 20:30:51 +0300 | [diff] [blame] | 32 | PyPegen_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 |
| 45 | PyPegen_ASTFromFileObject(FILE *fp, PyObject *filename_ob, int mode, |
| 46 | const char *enc, const char *ps1, const char* ps2, |
Pablo Galindo | 2b74c83 | 2020-04-27 18:02:07 +0100 | [diff] [blame] | 47 | PyCompilerFlags *flags, int *errcode, PyArena *arena) |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 48 | { |
| 49 | if (PySys_Audit("compile", "OO", Py_None, filename_ob) < 0) { |
| 50 | return NULL; |
| 51 | } |
| 52 | 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] | 53 | flags, errcode, arena); |
Pablo Galindo | c5fc156 | 2020-04-22 23:29:27 +0100 | [diff] [blame] | 54 | } |