comparison Python/pythonrun.c @ 24159:cb728141ae12 legacy-trunk

Fix SF Bug 564931: compile() traceback must include filename.
author Thomas Heller <theller@ctypes.org>
date Tue, 09 Jul 2002 09:23:27 +0000
parents 9456a2ccda61
children 8ee2ab4f2a2d
comparison
equal deleted inserted replaced
24157:9dded6f18819 24159:cb728141ae12
1132 Py_CompileStringFlags(char *str, char *filename, int start, 1132 Py_CompileStringFlags(char *str, char *filename, int start,
1133 PyCompilerFlags *flags) 1133 PyCompilerFlags *flags)
1134 { 1134 {
1135 node *n; 1135 node *n;
1136 PyCodeObject *co; 1136 PyCodeObject *co;
1137 n = PyParser_SimpleParseStringFlags(str, start, PARSER_FLAGS(flags)); 1137
1138 n = PyParser_SimpleParseStringFlagsFilename(str, filename, start,
1139 PARSER_FLAGS(flags));
1138 if (n == NULL) 1140 if (n == NULL)
1139 return NULL; 1141 return NULL;
1140 co = PyNode_CompileFlags(n, filename, flags); 1142 co = PyNode_CompileFlags(n, filename, flags);
1141 PyNode_Free(n); 1143 PyNode_Free(n);
1142 return (PyObject *)co; 1144 return (PyObject *)co;
1145 struct symtable * 1147 struct symtable *
1146 Py_SymtableString(char *str, char *filename, int start) 1148 Py_SymtableString(char *str, char *filename, int start)
1147 { 1149 {
1148 node *n; 1150 node *n;
1149 struct symtable *st; 1151 struct symtable *st;
1150 n = PyParser_SimpleParseString(str, start); 1152 n = PyParser_SimpleParseStringFlagsFilename(str, filename,
1153 start, 0);
1151 if (n == NULL) 1154 if (n == NULL)
1152 return NULL; 1155 return NULL;
1153 st = PyNode_CompileSymtable(n, filename); 1156 st = PyNode_CompileSymtable(n, filename);
1154 PyNode_Free(n); 1157 PyNode_Free(n);
1155 return st; 1158 return st;
1191 1194
1192 node * 1195 node *
1193 PyParser_SimpleParseString(char *str, int start) 1196 PyParser_SimpleParseString(char *str, int start)
1194 { 1197 {
1195 return PyParser_SimpleParseStringFlags(str, start, 0); 1198 return PyParser_SimpleParseStringFlags(str, start, 0);
1199 }
1200
1201 node *
1202 PyParser_SimpleParseStringFlagsFilename(char *str, char *filename,
1203 int start, int flags)
1204 {
1205 node *n;
1206 perrdetail err;
1207
1208 n = PyParser_ParseStringFlagsFilename(str, filename,
1209 &_PyParser_Grammar,
1210 start, &err, flags);
1211 if (n == NULL)
1212 err_input(&err);
1213 return n;
1214 }
1215
1216 node *
1217 PyParser_SimpleParseStringFilename(char *str, char *filename, int start)
1218 {
1219 return PyParser_SimpleParseStringFlagsFilename(str, filename,
1220 start, 0);
1196 } 1221 }
1197 1222
1198 /* Set the error appropriate to the given input error code (see errcode.h) */ 1223 /* Set the error appropriate to the given input error code (see errcode.h) */
1199 1224
1200 static void 1225 static void