-
Notifications
You must be signed in to change notification settings - Fork 214
Expand file tree
/
Copy pathbegin.prg
More file actions
126 lines (92 loc) · 2.43 KB
/
begin.prg
File metadata and controls
126 lines (92 loc) · 2.43 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// This files demonstrates the use of BEGIN/RECOVER/END SEQUENCE
// and BREAK statement
MEMVAR m_oMemvar
MEMVAR m_cPrivate
PROCEDURE Main()
LOCAL oLocal
PRIVATE m_cPrivate := "private value in MAIN"
BEGIN SEQUENCE
? " Inside SEQUENCE 1"
? " No break issued...."
RECOVER
? " Recovering in 1 ..."
END SEQUENCE
? "After SEQUENCE 1"
BEGIN SEQUENCE
? " Inside SEQUENCE 2"
Break( "VALUE 2" )
RECOVER USING oLocal
? " Recovering in 2 using....", oLocal
END SEQUENCE
? "After SEQUENCE 2"
BEGIN SEQUENCE
? " Inside SEQUENCE 3"
Break
RECOVER USING oLocal
? " Recovering in 3 using....", oLocal
END SEQUENCE
? "After SEQUENCE 3"
BEGIN SEQUENCE
? " Inside SEQUENCE 4"
Break
? " Recovering in 4 using....", oLocal
END SEQUENCE
? "After SEQUENCE 4"
BEGIN SEQUENCE
? " Inside SEQUENCE 5"
Break1()
? " Recovering in 5 using....", oLocal
END SEQUENCE
? "After SEQUENCE 5"
BEGIN SEQUENCE
? " Inside SEQUENCE 6"
Break1()
RECOVER USING m_oMemvar
? " Recovering in 6 using... ", m_oMemvar
END SEQUENCE
? "After SEQUENCE 6"
BEGIN SEQUENCE
? " Inside SEQUENCE 7"
Break2()
RECOVER USING m_oMemvar
? " Recovering in 7 using... ", m_oMemvar
END SEQUENCE
? "After SEQUENCE 7"
? M->m_cPrivate
Break( "exit from MAIN" )
? "This text will be not printed"
RETURN
PROCEDURE Break1()
PRIVATE m_cPrivate := "VALUE from Break1"
BREAK M->m_cPrivate
PROCEDURE Break2()
BEGIN SEQUENCE
? " Inside SEQUENCE 8"
Break3()
RECOVER USING m_oMemvar
? " Recovering in 8 using...", Eval( m_oMemvar, " eval in 8" )
Break( "BREAK from recovery code" )
END SEQUENCE
? "After SEQUENCE 8"
RETURN
PROCEDURE Break3()
STATIC s_oStatic
BEGIN SEQUENCE
? " Inside SEQUENCE 9"
BEGIN SEQUENCE
? " Inside SEQUENCE 10"
Break( "value from nested SEQUENCE 10" )
RECOVER USING s_oStatic
? " Recovering in 10 using...", s_oStatic
END SEQUENCE
? "After SEQUENCE 10"
Break4( " and parameter" )
RECOVER USING m_oMemvar
? " Recovering in 9 using...", Eval( m_oMemvar, " eval in 9" )
Break( m_oMemvar )
END SEQUENCE
? "After SEQUENCE 9"
RETURN
PROCEDURE Break4( cValue )
LOCAL oLocal := " detached Break4 "
Break( {| x | oLocal + x + cValue } )