mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-22 21:32:31 +00:00
python-3.6.zip added from Github
README.cosmo contains the necessary links.
This commit is contained in:
parent
75fc601ff5
commit
0c4c56ff39
4219 changed files with 1968626 additions and 0 deletions
56
third_party/python/Lib/lib2to3/fixes/fix_throw.py
vendored
Normal file
56
third_party/python/Lib/lib2to3/fixes/fix_throw.py
vendored
Normal file
|
@ -0,0 +1,56 @@
|
|||
"""Fixer for generator.throw(E, V, T).
|
||||
|
||||
g.throw(E) -> g.throw(E)
|
||||
g.throw(E, V) -> g.throw(E(V))
|
||||
g.throw(E, V, T) -> g.throw(E(V).with_traceback(T))
|
||||
|
||||
g.throw("foo"[, V[, T]]) will warn about string exceptions."""
|
||||
# Author: Collin Winter
|
||||
|
||||
# Local imports
|
||||
from .. import pytree
|
||||
from ..pgen2 import token
|
||||
from .. import fixer_base
|
||||
from ..fixer_util import Name, Call, ArgList, Attr, is_tuple
|
||||
|
||||
class FixThrow(fixer_base.BaseFix):
|
||||
BM_compatible = True
|
||||
PATTERN = """
|
||||
power< any trailer< '.' 'throw' >
|
||||
trailer< '(' args=arglist< exc=any ',' val=any [',' tb=any] > ')' >
|
||||
>
|
||||
|
|
||||
power< any trailer< '.' 'throw' > trailer< '(' exc=any ')' > >
|
||||
"""
|
||||
|
||||
def transform(self, node, results):
|
||||
syms = self.syms
|
||||
|
||||
exc = results["exc"].clone()
|
||||
if exc.type is token.STRING:
|
||||
self.cannot_convert(node, "Python 3 does not support string exceptions")
|
||||
return
|
||||
|
||||
# Leave "g.throw(E)" alone
|
||||
val = results.get("val")
|
||||
if val is None:
|
||||
return
|
||||
|
||||
val = val.clone()
|
||||
if is_tuple(val):
|
||||
args = [c.clone() for c in val.children[1:-1]]
|
||||
else:
|
||||
val.prefix = ""
|
||||
args = [val]
|
||||
|
||||
throw_args = results["args"]
|
||||
|
||||
if "tb" in results:
|
||||
tb = results["tb"].clone()
|
||||
tb.prefix = ""
|
||||
|
||||
e = Call(exc, args)
|
||||
with_tb = Attr(e, Name('with_traceback')) + [ArgList([tb])]
|
||||
throw_args.replace(pytree.Node(syms.power, with_tb))
|
||||
else:
|
||||
throw_args.replace(Call(exc, args))
|
Loading…
Add table
Add a link
Reference in a new issue