forked from ethanchewy/PythonBuddy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtargetpushpop.py
More file actions
50 lines (41 loc) · 912 Bytes
/
targetpushpop.py
File metadata and controls
50 lines (41 loc) · 912 Bytes
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