Root/b2/test/subcont

1#!/bin/bash
2. ./Common
3
4###############################################################################
5
6tst "substitutions: continue" -ds -q <<EOF
7!-s
8in = blah
9out = x
10in = (?)(*) {
11    out = \$out\$1\$1
12    in = \$2
13    continue
14}
15EOF
16
17expect <<EOF
18in=blah
19out=x
20in=RE {
21    out=\${out}\$1\$1
22    in=\$2
23    continue in
24}
25in=
26out=xbbllaahh
27EOF
28
29#------------------------------------------------------------------------------
30
31tst "substitutions: named continue to inner block" -q x=abc <<EOF
32!-s
33z = x
34x = (?)(*) {
35    x = \$2
36    y = \$x
37    y = (*)(?) {
38        z = \$z\$y\$2
39        y = \$1
40        continue y
41    }
42}
43EOF
44
45expect <<EOF
46z=xbccbb
47x=bc
48y=
49EOF
50
51#------------------------------------------------------------------------------
52
53tst "substitutions: named continue to outer block" -q x=abc <<EOF
54!-s
55z = x
56x = (?)(*) {
57    x = \$2
58    y = \$x
59    y = (*)(?) {
60        z = \$z\$y\$2
61        y = \$1
62        continue x
63    }
64}
65EOF
66
67expect <<EOF
68z=xbcccc
69x=
70y=
71EOF
72
73#------------------------------------------------------------------------------
74
75tst "substitutions: continue to \$" -ds -q <<EOF
76!-s
77in = blah
78out = x
79in = ?(*) {
80    in = \$1
81    out = \${out}+
82    continue \$
83}
84EOF
85
86expect <<EOF
87in=blah
88out=x
89in=RE {
90    in=\$1
91    out=\${out}+
92    continue in
93}
94in=
95out=x++++
96EOF
97
98#------------------------------------------------------------------------------
99
100tst_fail "substitutions: unnamed continue inside block" <<EOF
101!-s
102foo = * {
103    continue
104    bar = x
105}
106EOF
107
108expect <<EOF
109s:3: syntax error
110EOF
111
112#------------------------------------------------------------------------------
113
114tst_fail "substitutions: named continue inside block" <<EOF
115!-s
116foo = * {
117    continue foo
118    bar = x
119}
120EOF
121
122expect <<EOF
123s:4: unreachable code
124EOF
125
126#------------------------------------------------------------------------------
127
128tst_fail "substitutions: named continue to unknown block" -q <<EOF
129!-s
130x = foo
131x = * {
132    y = \$x
133    y = * {
134        continue z
135    }
136}
137EOF
138
139expect <<EOF
140s:8: cannot find "z"
141EOF
142
143#------------------------------------------------------------------------------
144
145tst_fail "substitutions: continue without block" -q <<EOF
146!-s
147continue
148EOF
149
150expect <<EOF
151s:2: jump without block
152EOF
153
154###############################################################################
155

Archive Download this file

Branches:
master



interactive