Mercurial > cpython-lru_cache-weakref
comparison Python/pythonrun.c @ 46120:78504d604b44
Merged revisions 61952-61953 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61952 | mark.dickinson | 2008-03-26 22:41:36 +0100 (Wed, 26 Mar 2008) | 2 lines
Typo: "objects reference count" -> "object's reference count"
........
r61953 | christian.heimes | 2008-03-26 23:01:37 +0100 (Wed, 26 Mar 2008) | 4 lines
Patch #2477: Added from __future__ import unicode_literals
The new PyParser_*Ex() functions are based on Neal's suggestion and initial patch. The new __future__ feature makes all '' and r'' unicode strings. b'' and br'' stay (byte) strings.
........
| author | Christian Heimes <christian@cheimes.de> |
|---|---|
| date | Wed, 26 Mar 2008 22:34:47 +0000 |
| parents | 4284718fb631 |
| children | 36d828d27c36 |
comparison
equal
deleted
inserted
replaced
| 46116:995c9960f7ff | 46120:78504d604b44 |
|---|---|
| 1561 struct symtable * | 1561 struct symtable * |
| 1562 Py_SymtableString(const char *str, const char *filename, int start) | 1562 Py_SymtableString(const char *str, const char *filename, int start) |
| 1563 { | 1563 { |
| 1564 struct symtable *st; | 1564 struct symtable *st; |
| 1565 mod_ty mod; | 1565 mod_ty mod; |
| 1566 PyCompilerFlags flags; | |
| 1566 PyArena *arena = PyArena_New(); | 1567 PyArena *arena = PyArena_New(); |
| 1567 if (arena == NULL) | 1568 if (arena == NULL) |
| 1568 return NULL; | 1569 return NULL; |
| 1569 | 1570 |
| 1570 mod = PyParser_ASTFromString(str, filename, start, NULL, arena); | 1571 mod = PyParser_ASTFromString(str, filename, start, &flags, arena); |
| 1571 if (mod == NULL) { | 1572 if (mod == NULL) { |
| 1572 PyArena_Free(arena); | 1573 PyArena_Free(arena); |
| 1573 return NULL; | 1574 return NULL; |
| 1574 } | 1575 } |
| 1575 st = PySymtable_Build(mod, filename, 0); | 1576 st = PySymtable_Build(mod, filename, 0); |
| 1582 PyParser_ASTFromString(const char *s, const char *filename, int start, | 1583 PyParser_ASTFromString(const char *s, const char *filename, int start, |
| 1583 PyCompilerFlags *flags, PyArena *arena) | 1584 PyCompilerFlags *flags, PyArena *arena) |
| 1584 { | 1585 { |
| 1585 mod_ty mod; | 1586 mod_ty mod; |
| 1586 perrdetail err; | 1587 perrdetail err; |
| 1587 node *n = PyParser_ParseStringFlagsFilename(s, filename, | 1588 int iflags; |
| 1589 iflags = PARSER_FLAGS(flags); | |
| 1590 | |
| 1591 node *n = PyParser_ParseStringFlagsFilenameEx(s, filename, | |
| 1588 &_PyParser_Grammar, start, &err, | 1592 &_PyParser_Grammar, start, &err, |
| 1589 PARSER_FLAGS(flags)); | 1593 &iflags); |
| 1590 if (n) { | 1594 if (n) { |
| 1595 if (flags) { | |
| 1596 flags->cf_flags |= iflags & PyCF_MASK; | |
| 1597 } | |
| 1591 mod = PyAST_FromNode(n, flags, filename, arena); | 1598 mod = PyAST_FromNode(n, flags, filename, arena); |
| 1592 PyNode_Free(n); | 1599 PyNode_Free(n); |
| 1593 return mod; | 1600 return mod; |
| 1594 } | 1601 } |
| 1595 else { | 1602 else { |
| 1604 char *ps2, PyCompilerFlags *flags, int *errcode, | 1611 char *ps2, PyCompilerFlags *flags, int *errcode, |
| 1605 PyArena *arena) | 1612 PyArena *arena) |
| 1606 { | 1613 { |
| 1607 mod_ty mod; | 1614 mod_ty mod; |
| 1608 perrdetail err; | 1615 perrdetail err; |
| 1609 node *n = PyParser_ParseFileFlags(fp, filename, enc, | 1616 int iflags; |
| 1617 | |
| 1618 iflags = PARSER_FLAGS(flags); | |
| 1619 node *n = PyParser_ParseFileFlagsEx(fp, filename, enc, | |
| 1610 &_PyParser_Grammar, | 1620 &_PyParser_Grammar, |
| 1611 start, ps1, ps2, &err, PARSER_FLAGS(flags)); | 1621 start, ps1, ps2, &err, &iflags); |
| 1612 if (n) { | 1622 if (n) { |
| 1623 if (flags) { | |
| 1624 flags->cf_flags |= iflags & PyCF_MASK; | |
| 1625 } | |
| 1613 mod = PyAST_FromNode(n, flags, filename, arena); | 1626 mod = PyAST_FromNode(n, flags, filename, arena); |
| 1614 PyNode_Free(n); | 1627 PyNode_Free(n); |
| 1615 return mod; | 1628 return mod; |
| 1616 } | 1629 } |
| 1617 else { | 1630 else { |
