File: targetpushpop.py

package info (click to toggle)
pypy 7.0.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 107,216 kB
  • sloc: python: 1,201,787; ansic: 62,419; asm: 5,169; cpp: 3,017; sh: 2,534; makefile: 545; xml: 243; lisp: 45; awk: 4
file content (50 lines) | stat: -rw-r--r-- 912 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""
A simple standalone target.

The target below specifies None as the argument types list.
This is a case treated specially in driver.py . If the list
of input types is empty, it is meant to be a list of strings,
actually implementing argv of the executable.
"""

# __________  Entry point  __________

class A(object):
    pass

class B(object):
    pass

def f(x):
    if x == 0:
        return f(x - 1)
    b = B()
    b.x = x
    return b

global_a = A()

def entry_point(argv):
    a1 = A()
    a2 = A()
    a3 = A()
    a4 = A()
    global_a.next = a1
    a1.x = 1
    a2.x = 2
    a3.x = 3
    a4.x = 4
    a1.next = a2
    a2.next = a3
    a3.next = a4
    a4.next = None
    # push stuff
    global_a.b = f(len(argv))
    global_a.b.x = len(argv)
    # pop stuff
    return a1.x + a2.x + a3.x + a4.x + global_a.b.x

# _____ Define and setup target ___

def target(*args):
    return entry_point, None