Module(body=[Print(dest=None,
                   values=[Str(s='Big number test')],
                   nl=True),
             Assign(targets=[Name(id='v',
                                  ctx=Store())],
                    value=List(elts=[Num(n=1),
                                     Num(n=1.0),
                                     Num(n=1),
                                     Num(n=-1),
                                     Num(n=-1.0),
                                     Num(n=-1),
                                     Num(n=2),
                                     Num(n=2.0),
                                     Num(n=2),
                                     Num(n=-2),
                                     Num(n=-2.0),
                                     Num(n=-2),
                                     Num(n=1000000000.0),
                                     Num(n=-1000000000.0),
                                     Num(n=1e-09),
                                     Num(n=-1e-09),
                                     Num(n=123456789),
                                     Num(n=12345678901234567890123456789)],
                               ctx=Load())),
             Assign(targets=[Name(id='o',
                                  ctx=Store())],
                    value=List(elts=[Str(s='+'),
                                     Str(s='-'),
                                     Str(s='*'),
                                     Str(s='/'),
                                     Str(s='**'),
                                     Str(s='%'),
                                     Str(s='<'),
                                     Str(s='='),
                                     Str(s='>'),
                                     Str(s='<='),
                                     Str(s='!='),
                                     Str(s='>=')],
                               ctx=Load())),
             FunctionDef(name='oper',
                         args=arguments(args=[Name(id='v1',
                                                   ctx=Param()),
                                              Name(id='v2',
                                                   ctx=Param()),
                                              Name(id='op',
                                                   ctx=Param())],
                                        vararg=None,
                                        kwarg=None,
                                        defaults=[]),
                         body=[If(test=Compare(left=Name(id='op',
                                                         ctx=Load()),
                                               ops=[Eq()],
                                               comparators=[Str(s='+')]),
                                  body=[Print(dest=None,
                                              values=[Str(s='              '),
                                                      Name(id='v1',
                                                           ctx=Load()),
                                                      Name(id='op',
                                                           ctx=Load()),
                                                      Name(id='v2',
                                                           ctx=Load()),
                                                      Str(s='='),
                                                      BinOp(left=Name(id='v1',
                                                                      ctx=Load()),
                                                            op=Add(),
                                                            right=Name(id='v2',
                                                                       ctx=Load())),
                                                      Call(func=Name(id='type',
                                                                     ctx=Load()),
                                                           args=[BinOp(left=Name(id='v1',
                                                                                 ctx=Load()),
                                                                       op=Add(),
                                                                       right=Name(id='v2',
                                                                                  ctx=Load()))],
                                                           keywords=[],
                                                           starargs=None,
                                                           kwargs=None)],
                                              nl=True)],
                                  orelse=[If(test=Compare(left=Name(id='op',
                                                                    ctx=Load()),
                                                          ops=[Eq()],
                                                          comparators=[Str(s='-')]),
                                             body=[Print(dest=None,
                                                         values=[Str(s='              '),
                                                                 Name(id='v1',
                                                                      ctx=Load()),
                                                                 Name(id='op',
                                                                      ctx=Load()),
                                                                 Name(id='v2',
                                                                      ctx=Load()),
                                                                 Str(s='='),
                                                                 BinOp(left=Name(id='v1',
                                                                                 ctx=Load()),
                                                                       op=Sub(),
                                                                       right=Name(id='v2',
                                                                                  ctx=Load())),
                                                                 Call(func=Name(id='type',
                                                                                ctx=Load()),
                                                                      args=[BinOp(left=Name(id='v1',
                                                                                            ctx=Load()),
                                                                                  op=Sub(),
                                                                                  right=Name(id='v2',
                                                                                             ctx=Load()))],
                                                                      keywords=[],
                                                                      starargs=None,
                                                                      kwargs=None)],
                                                         nl=True)],
                                             orelse=[If(test=Compare(left=Name(id='op',
                                                                               ctx=Load()),
                                                                     ops=[Eq()],
                                                                     comparators=[Str(s='*')]),
                                                        body=[Print(dest=None,
                                                                    values=[Str(s='              '),
                                                                            Name(id='v1',
                                                                                 ctx=Load()),
                                                                            Name(id='op',
                                                                                 ctx=Load()),
                                                                            Name(id='v2',
                                                                                 ctx=Load()),
                                                                            Str(s='='),
                                                                            BinOp(left=Name(id='v1',
                                                                                            ctx=Load()),
                                                                                  op=Mult(),
                                                                                  right=Name(id='v2',
                                                                                             ctx=Load())),
                                                                            Call(func=Name(id='type',
                                                                                           ctx=Load()),
                                                                                 args=[BinOp(left=Name(id='v1',
                                                                                                       ctx=Load()),
                                                                                             op=Mult(),
                                                                                             right=Name(id='v2',
                                                                                                        ctx=Load()))],
                                                                                 keywords=[],
                                                                                 starargs=None,
                                                                                 kwargs=None)],
                                                                    nl=True)],
                                                        orelse=[If(test=Compare(left=Name(id='op',
                                                                                          ctx=Load()),
                                                                                ops=[Eq()],
                                                                                comparators=[Str(s='/')]),
                                                                   body=[Print(dest=None,
                                                                               values=[Str(s='              '),
                                                                                       Name(id='v1',
                                                                                            ctx=Load()),
                                                                                       Name(id='op',
                                                                                            ctx=Load()),
                                                                                       Name(id='v2',
                                                                                            ctx=Load()),
                                                                                       Str(s='='),
                                                                                       BinOp(left=Name(id='v1',
                                                                                                       ctx=Load()),
                                                                                             op=Div(),
                                                                                             right=Name(id='v2',
                                                                                                        ctx=Load())),
                                                                                       Call(func=Name(id='type',
                                                                                                      ctx=Load()),
                                                                                            args=[BinOp(left=Name(id='v1',
                                                                                                                  ctx=Load()),
                                                                                                        op=Div(),
                                                                                                        right=Name(id='v2',
                                                                                                                   ctx=Load()))],
                                                                                            keywords=[],
                                                                                            starargs=None,
                                                                                            kwargs=None)],
                                                                               nl=True)],
                                                                   orelse=[If(test=Compare(left=Name(id='op',
                                                                                                     ctx=Load()),
                                                                                           ops=[Eq()],
                                                                                           comparators=[Str(s='**')]),
                                                                              body=[If(test=Compare(left=Name(id='v2',
                                                                                                              ctx=Load()),
                                                                                                    ops=[Gt()],
                                                                                                    comparators=[Num(n=100000000)]),
                                                                                       body=[Print(dest=None,
                                                                                                   values=[Str(s='skipping pow of really big number')],
                                                                                                   nl=True),
                                                                                             Return(value=None)],
                                                                                       orelse=[]),
                                                                                    Print(dest=None,
                                                                                          values=[Str(s='              '),
                                                                                                  Name(id='v1',
                                                                                                       ctx=Load()),
                                                                                                  Name(id='op',
                                                                                                       ctx=Load()),
                                                                                                  Name(id='v2',
                                                                                                       ctx=Load()),
                                                                                                  Str(s='='),
                                                                                                  BinOp(left=Name(id='v1',
                                                                                                                  ctx=Load()),
                                                                                                        op=Pow(),
                                                                                                        right=Name(id='v2',
                                                                                                                   ctx=Load())),
                                                                                                  Call(func=Name(id='type',
                                                                                                                 ctx=Load()),
                                                                                                       args=[BinOp(left=Name(id='v1',
                                                                                                                             ctx=Load()),
                                                                                                                   op=Pow(),
                                                                                                                   right=Name(id='v2',
                                                                                                                              ctx=Load()))],
                                                                                                       keywords=[],
                                                                                                       starargs=None,
                                                                                                       kwargs=None)],
                                                                                          nl=True)],
                                                                              orelse=[If(test=Compare(left=Name(id='op',
                                                                                                                ctx=Load()),
                                                                                                      ops=[Eq()],
                                                                                                      comparators=[Str(s='%')]),
                                                                                         body=[Print(dest=None,
                                                                                                     values=[Str(s='              '),
                                                                                                             Name(id='v1',
                                                                                                                  ctx=Load()),
                                                                                                             Name(id='op',
                                                                                                                  ctx=Load()),
                                                                                                             Name(id='v2',
                                                                                                                  ctx=Load()),
                                                                                                             Str(s='='),
                                                                                                             BinOp(left=Name(id='v1',
                                                                                                                             ctx=Load()),
                                                                                                                   op=Mod(),
                                                                                                                   right=Name(id='v2',
                                                                                                                              ctx=Load())),
                                                                                                             Call(func=Name(id='type',
                                                                                                                            ctx=Load()),
                                                                                                                  args=[BinOp(left=Name(id='v1',
                                                                                                                                        ctx=Load()),
                                                                                                                              op=Mod(),
                                                                                                                              right=Name(id='v2',
                                                                                                                                         ctx=Load()))],
                                                                                                                  keywords=[],
                                                                                                                  starargs=None,
                                                                                                                  kwargs=None)],
                                                                                                     nl=True)],
                                                                                         orelse=[If(test=Compare(left=Name(id='op',
                                                                                                                           ctx=Load()),
                                                                                                                 ops=[Eq()],
                                                                                                                 comparators=[Str(s='<')]),
                                                                                                    body=[Print(dest=None,
                                                                                                                values=[Str(s='              '),
                                                                                                                        Name(id='v1',
                                                                                                                             ctx=Load()),
                                                                                                                        Name(id='op',
                                                                                                                             ctx=Load()),
                                                                                                                        Name(id='v2',
                                                                                                                             ctx=Load()),
                                                                                                                        Str(s='='),
                                                                                                                        Compare(left=Name(id='v1',
                                                                                                                                          ctx=Load()),
                                                                                                                                ops=[Lt()],
                                                                                                                                comparators=[Name(id='v2',
                                                                                                                                                  ctx=Load())]),
                                                                                                                        Call(func=Name(id='type',
                                                                                                                                       ctx=Load()),
                                                                                                                             args=[Compare(left=Name(id='v1',
                                                                                                                                                     ctx=Load()),
                                                                                                                                           ops=[Lt()],
                                                                                                                                           comparators=[Name(id='v2',
                                                                                                                                                             ctx=Load())])],
                                                                                                                             keywords=[],
                                                                                                                             starargs=None,
                                                                                                                             kwargs=None)],
                                                                                                                nl=True)],
                                                                                                    orelse=[If(test=Compare(left=Name(id='op',
                                                                                                                                      ctx=Load()),
                                                                                                                            ops=[Eq()],
                                                                                                                            comparators=[Str(s='=')]),
                                                                                                               body=[Print(dest=None,
                                                                                                                           values=[Str(s='              '),
                                                                                                                                   Name(id='v1',
                                                                                                                                        ctx=Load()),
                                                                                                                                   Name(id='op',
                                                                                                                                        ctx=Load()),
                                                                                                                                   Name(id='v2',
                                                                                                                                        ctx=Load()),
                                                                                                                                   Str(s='='),
                                                                                                                                   Compare(left=Name(id='v1',
                                                                                                                                                     ctx=Load()),
                                                                                                                                           ops=[Eq()],
                                                                                                                                           comparators=[Name(id='v2',
                                                                                                                                                             ctx=Load())]),
                                                                                                                                   Call(func=Name(id='type',
                                                                                                                                                  ctx=Load()),
                                                                                                                                        args=[Compare(left=Name(id='v1',
                                                                                                                                                                ctx=Load()),
                                                                                                                                                      ops=[Eq()],
                                                                                                                                                      comparators=[Name(id='v2',
                                                                                                                                                                        ctx=Load())])],
                                                                                                                                        keywords=[],
                                                                                                                                        starargs=None,
                                                                                                                                        kwargs=None)],
                                                                                                                           nl=True)],
                                                                                                               orelse=[If(test=Compare(left=Name(id='op',
                                                                                                                                                 ctx=Load()),
                                                                                                                                       ops=[Eq()],
                                                                                                                                       comparators=[Str(s='>')]),
                                                                                                                          body=[Print(dest=None,
                                                                                                                                      values=[Str(s='              '),
                                                                                                                                              Name(id='v1',
                                                                                                                                                   ctx=Load()),
                                                                                                                                              Name(id='op',
                                                                                                                                                   ctx=Load()),
                                                                                                                                              Name(id='v2',
                                                                                                                                                   ctx=Load()),
                                                                                                                                              Str(s='='),
                                                                                                                                              Compare(left=Name(id='v1',
                                                                                                                                                                ctx=Load()),
                                                                                                                                                      ops=[Gt()],
                                                                                                                                                      comparators=[Name(id='v2',
                                                                                                                                                                        ctx=Load())]),
                                                                                                                                              Call(func=Name(id='type',
                                                                                                                                                             ctx=Load()),
                                                                                                                                                   args=[Compare(left=Name(id='v1',
                                                                                                                                                                           ctx=Load()),
                                                                                                                                                                 ops=[Gt()],
                                                                                                                                                                 comparators=[Name(id='v2',
                                                                                                                                                                                   ctx=Load())])],
                                                                                                                                                   keywords=[],
                                                                                                                                                   starargs=None,
                                                                                                                                                   kwargs=None)],
                                                                                                                                      nl=True)],
                                                                                                                          orelse=[If(test=Compare(left=Name(id='op',
                                                                                                                                                            ctx=Load()),
                                                                                                                                                  ops=[Eq()],
                                                                                                                                                  comparators=[Str(s='<=')]),
                                                                                                                                     body=[Print(dest=None,
                                                                                                                                                 values=[Str(s='              '),
                                                                                                                                                         Name(id='v1',
                                                                                                                                                              ctx=Load()),
                                                                                                                                                         Name(id='op',
                                                                                                                                                              ctx=Load()),
                                                                                                                                                         Name(id='v2',
                                                                                                                                                              ctx=Load()),
                                                                                                                                                         Str(s='='),
                                                                                                                                                         Compare(left=Name(id='v1',
                                                                                                                                                                           ctx=Load()),
                                                                                                                                                                 ops=[LtE()],
                                                                                                                                                                 comparators=[Name(id='v2',
                                                                                                                                                                                   ctx=Load())]),
                                                                                                                                                         Call(func=Name(id='type',
                                                                                                                                                                        ctx=Load()),
                                                                                                                                                              args=[Compare(left=Name(id='v1',
                                                                                                                                                                                      ctx=Load()),
                                                                                                                                                                            ops=[LtE()],
                                                                                                                                                                            comparators=[Name(id='v2',
                                                                                                                                                                                              ctx=Load())])],
                                                                                                                                                              keywords=[],
                                                                                                                                                              starargs=None,
                                                                                                                                                              kwargs=None)],
                                                                                                                                                 nl=True)],
                                                                                                                                     orelse=[If(test=Compare(left=Name(id='op',
                                                                                                                                                                       ctx=Load()),
                                                                                                                                                             ops=[Eq()],
                                                                                                                                                             comparators=[Str(s='!=')]),
                                                                                                                                                body=[Print(dest=None,
                                                                                                                                                            values=[Str(s='              '),
                                                                                                                                                                    Name(id='v1',
                                                                                                                                                                         ctx=Load()),
                                                                                                                                                                    Name(id='op',
                                                                                                                                                                         ctx=Load()),
                                                                                                                                                                    Name(id='v2',
                                                                                                                                                                         ctx=Load()),
                                                                                                                                                                    Str(s='='),
                                                                                                                                                                    Compare(left=Name(id='v1',
                                                                                                                                                                                      ctx=Load()),
                                                                                                                                                                            ops=[NotEq()],
                                                                                                                                                                            comparators=[Name(id='v2',
                                                                                                                                                                                              ctx=Load())]),
                                                                                                                                                                    Call(func=Name(id='type',
                                                                                                                                                                                   ctx=Load()),
                                                                                                                                                                         args=[Compare(left=Name(id='v1',
                                                                                                                                                                                                 ctx=Load()),
                                                                                                                                                                                       ops=[NotEq()],
                                                                                                                                                                                       comparators=[Name(id='v2',
                                                                                                                                                                                                         ctx=Load())])],
                                                                                                                                                                         keywords=[],
                                                                                                                                                                         starargs=None,
                                                                                                                                                                         kwargs=None)],
                                                                                                                                                            nl=True)],
                                                                                                                                                orelse=[If(test=Compare(left=Name(id='op',
                                                                                                                                                                                  ctx=Load()),
                                                                                                                                                                        ops=[Eq()],
                                                                                                                                                                        comparators=[Str(s='>=')]),
                                                                                                                                                           body=[Print(dest=None,
                                                                                                                                                                       values=[Str(s='              '),
                                                                                                                                                                               Name(id='v1',
                                                                                                                                                                                    ctx=Load()),
                                                                                                                                                                               Name(id='op',
                                                                                                                                                                                    ctx=Load()),
                                                                                                                                                                               Name(id='v2',
                                                                                                                                                                                    ctx=Load()),
                                                                                                                                                                               Str(s='='),
                                                                                                                                                                               Compare(left=Name(id='v1',
                                                                                                                                                                                                 ctx=Load()),
                                                                                                                                                                                       ops=[GtE()],
                                                                                                                                                                                       comparators=[Name(id='v2',
                                                                                                                                                                                                         ctx=Load())]),
                                                                                                                                                                               Call(func=Name(id='type',
                                                                                                                                                                                              ctx=Load()),
                                                                                                                                                                                    args=[Compare(left=Name(id='v1',
                                                                                                                                                                                                            ctx=Load()),
                                                                                                                                                                                                  ops=[GtE()],
                                                                                                                                                                                                  comparators=[Name(id='v2',
                                                                                                                                                                                                                    ctx=Load())])],
                                                                                                                                                                                    keywords=[],
                                                                                                                                                                                    starargs=None,
                                                                                                                                                                                    kwargs=None)],
                                                                                                                                                                       nl=True)],
                                                                                                                                                           orelse=[])])])])])])])])])])])])],
                         decorator_list=[]),
             For(target=Name(id='x',
                             ctx=Store()),
                 iter=Name(id='v',
                           ctx=Load()),
                 body=[Print(dest=None,
                             values=[Str(s='Op 1 ::: '),
                                     Call(func=Name(id='type',
                                                    ctx=Load()),
                                          args=[Name(id='x',
                                                     ctx=Load())],
                                          keywords=[],
                                          starargs=None,
                                          kwargs=None),
                                     Name(id='x',
                                          ctx=Load())],
                             nl=True),
                       For(target=Name(id='y',
                                       ctx=Store()),
                           iter=Name(id='v',
                                     ctx=Load()),
                           body=[Print(dest=None,
                                       values=[Str(s='     Op 2 ::: '),
                                               Call(func=Name(id='type',
                                                              ctx=Load()),
                                                    args=[Name(id='y',
                                                               ctx=Load())],
                                                    keywords=[],
                                                    starargs=None,
                                                    kwargs=None),
                                               Name(id='y',
                                                    ctx=Load())],
                                       nl=True),
                                 For(target=Name(id='z',
                                                 ctx=Store()),
                                     iter=Name(id='o',
                                               ctx=Load()),
                                     body=[TryExcept(body=[Expr(value=Call(func=Name(id='oper',
                                                                                     ctx=Load()),
                                                                           args=[Name(id='x',
                                                                                      ctx=Load()),
                                                                                 Name(id='y',
                                                                                      ctx=Load()),
                                                                                 Name(id='z',
                                                                                      ctx=Load())],
                                                                           keywords=[],
                                                                           starargs=None,
                                                                           kwargs=None))],
                                                     handlers=[ExceptHandler(type=None,
                                                                             name=None,
                                                                             body=[Print(dest=None,
                                                                                         values=[Str(s="Can't "),
                                                                                                 Call(func=Name(id='type',
                                                                                                                ctx=Load()),
                                                                                                      args=[Name(id='x',
                                                                                                                 ctx=Load())],
                                                                                                      keywords=[],
                                                                                                      starargs=None,
                                                                                                      kwargs=None),
                                                                                                 Name(id='z',
                                                                                                      ctx=Load()),
                                                                                                 Call(func=Name(id='type',
                                                                                                                ctx=Load()),
                                                                                                      args=[Name(id='y',
                                                                                                                 ctx=Load())],
                                                                                                      keywords=[],
                                                                                                      starargs=None,
                                                                                                      kwargs=None)],
                                                                                         nl=True)])],
                                                     orelse=[])],
                                     orelse=[])],
                           orelse=[])],
                 orelse=[])])