diff options
author | Li Jin <dragon-fly@qq.com> | 2020-03-24 10:19:30 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2020-03-24 10:19:30 +0800 |
commit | 2447d158241aeaaf9c0b1ab21a08db7a40e5cef3 (patch) | |
tree | a8c17610aae77e61ee713b090546e3ae7d35f967 /spec | |
parent | 14d7e02285857226e26288c1ac83a14eb4fbd478 (diff) | |
download | yuescript-2447d158241aeaaf9c0b1ab21a08db7a40e5cef3.tar.gz yuescript-2447d158241aeaaf9c0b1ab21a08db7a40e5cef3.tar.bz2 yuescript-2447d158241aeaaf9c0b1ab21a08db7a40e5cef3.zip |
add goto statement support.
Diffstat (limited to 'spec')
-rw-r--r-- | spec/inputs/goto.moon | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/inputs/goto.moon b/spec/inputs/goto.moon new file mode 100644 index 0000000..3410ca3 --- /dev/null +++ b/spec/inputs/goto.moon | |||
@@ -0,0 +1,41 @@ | |||
1 | do | ||
2 | a = 0 | ||
3 | ::start:: | ||
4 | a += 1 | ||
5 | goto done if a == 5 | ||
6 | goto start | ||
7 | ::done:: | ||
8 | |||
9 | do | ||
10 | for z = 1, 10 for y = 1, 10 for x = 1, 10 | ||
11 | if x^2 + y^2 == z^2 | ||
12 | print 'found a Pythagorean triple:', x, y, z | ||
13 | goto done | ||
14 | ::done:: | ||
15 | |||
16 | do | ||
17 | for z = 1, 10 | ||
18 | for y = 1, 10 for x = 1, 10 | ||
19 | if x^2 + y^2 == z^2 | ||
20 | print 'found a Pythagorean triple:', x, y, z | ||
21 | print 'now trying next z...' | ||
22 | goto zcontinue | ||
23 | ::zcontinue:: | ||
24 | |||
25 | do | ||
26 | ::redo:: | ||
27 | for x = 1, 10 for y = 1, 10 | ||
28 | if not f x, y then goto continue | ||
29 | if not g x, y then goto skip | ||
30 | if not h x, y then goto redo | ||
31 | ::continue:: | ||
32 | ::skip:: | ||
33 | |||
34 | do | ||
35 | for x in *t | ||
36 | if x % 2 == 0 | ||
37 | print 'list has even number' | ||
38 | goto has | ||
39 | print 'list lacks even number' | ||
40 | ::has:: | ||
41 | |||