mittens 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/Gemfile +2 -1
  4. data/README.md +2 -2
  5. data/Rakefile +12 -5
  6. data/ext/mittens/extconf.rb +3 -1
  7. data/lib/mittens/version.rb +1 -1
  8. data/vendor/snowball/.github/workflows/ci.yml +144 -17
  9. data/vendor/snowball/.github/workflows/coverage.yml +117 -0
  10. data/vendor/snowball/.github/workflows/runtime-tests.yml +26 -0
  11. data/vendor/snowball/.gitignore +33 -7
  12. data/vendor/snowball/CONTRIBUTING.rst +7 -0
  13. data/vendor/snowball/COPYING +1 -1
  14. data/vendor/snowball/GNUmakefile +736 -298
  15. data/vendor/snowball/NEWS +1394 -7
  16. data/vendor/snowball/README.rst +8 -8
  17. data/vendor/snowball/ada/generate/generate.adb +5 -5
  18. data/vendor/snowball/ada/src/stemmer.adb +177 -188
  19. data/vendor/snowball/ada/src/stemmer.ads +86 -89
  20. data/vendor/snowball/ada/src/stemwords.adb +21 -5
  21. data/vendor/snowball/algorithms/czech.sbl +255 -0
  22. data/vendor/snowball/algorithms/danish.sbl +22 -10
  23. data/vendor/snowball/algorithms/english.sbl +7 -4
  24. data/vendor/snowball/algorithms/esperanto.sbl +6 -7
  25. data/vendor/snowball/algorithms/estonian.sbl +9 -4
  26. data/vendor/snowball/algorithms/finnish.sbl +33 -21
  27. data/vendor/snowball/algorithms/german.sbl +5 -0
  28. data/vendor/snowball/algorithms/indonesian.sbl +115 -96
  29. data/vendor/snowball/algorithms/italian.sbl +26 -1
  30. data/vendor/snowball/algorithms/lithuanian.sbl +13 -13
  31. data/vendor/snowball/algorithms/norwegian.sbl +17 -6
  32. data/vendor/snowball/algorithms/persian.sbl +387 -0
  33. data/vendor/snowball/algorithms/polish.sbl +177 -0
  34. data/vendor/snowball/algorithms/sesotho.sbl +115 -0
  35. data/vendor/snowball/algorithms/turkish.sbl +4 -4
  36. data/vendor/snowball/compiler/analyser.c +2002 -711
  37. data/vendor/snowball/compiler/driver.c +460 -298
  38. data/vendor/snowball/compiler/generator.c +439 -1965
  39. data/vendor/snowball/compiler/generator_ada.c +605 -430
  40. data/vendor/snowball/compiler/generator_c.c +2227 -0
  41. data/vendor/snowball/compiler/generator_csharp.c +365 -274
  42. data/vendor/snowball/compiler/generator_dart.c +1476 -0
  43. data/vendor/snowball/compiler/generator_go.c +348 -270
  44. data/vendor/snowball/compiler/generator_java.c +330 -233
  45. data/vendor/snowball/compiler/generator_js.c +534 -385
  46. data/vendor/snowball/compiler/generator_pascal.c +361 -320
  47. data/vendor/snowball/compiler/generator_php.c +1445 -0
  48. data/vendor/snowball/compiler/generator_python.c +399 -299
  49. data/vendor/snowball/compiler/generator_rust.c +370 -261
  50. data/vendor/snowball/compiler/generator_zig.c +1474 -0
  51. data/vendor/snowball/compiler/header.h +153 -86
  52. data/vendor/snowball/compiler/space.c +121 -63
  53. data/vendor/snowball/compiler/tokeniser.c +286 -182
  54. data/vendor/snowball/compiler/tokens.h +71 -0
  55. data/vendor/snowball/csharp/Snowball/Among.cs +14 -26
  56. data/vendor/snowball/csharp/Snowball/AssemblyInfo.cs +3 -3
  57. data/vendor/snowball/csharp/Snowball/Stemmer.cs +41 -45
  58. data/vendor/snowball/csharp/Stemwords/Program.cs +20 -14
  59. data/vendor/snowball/cxx/.gitignore +4 -0
  60. data/vendor/snowball/cxx/generate_algorithms.pl +87 -0
  61. data/vendor/snowball/cxx/stemmer.h +12 -0
  62. data/vendor/snowball/cxx/stemwords.cxx +176 -0
  63. data/vendor/snowball/cxx/utilities.cxx +2 -0
  64. data/vendor/snowball/dart/.gitignore +4 -0
  65. data/vendor/snowball/dart/analysis_options.yaml +1 -0
  66. data/vendor/snowball/dart/example/test_app.dart +65 -0
  67. data/vendor/snowball/dart/generate_algorithms.pl +21 -0
  68. data/vendor/snowball/dart/lib/snowball.dart +18 -0
  69. data/vendor/snowball/dart/lib/src/snowball.dart +339 -0
  70. data/vendor/snowball/dart/pubspec.yaml +17 -0
  71. data/vendor/snowball/doc/libstemmer_dart_README +37 -0
  72. data/vendor/snowball/doc/libstemmer_js_README +2 -2
  73. data/vendor/snowball/doc/libstemmer_php_README +38 -0
  74. data/vendor/snowball/doc/libstemmer_python_README +3 -3
  75. data/vendor/snowball/examples/stemwords.c +18 -3
  76. data/vendor/snowball/go/README.md +12 -4
  77. data/vendor/snowball/go/env.go +12 -14
  78. data/vendor/snowball/go/stemwords/main.go +2 -1
  79. data/vendor/snowball/java/org/tartarus/snowball/CharArraySequence.java +36 -0
  80. data/vendor/snowball/java/org/tartarus/snowball/SnowballProgram.java +17 -34
  81. data/vendor/snowball/java/org/tartarus/snowball/SnowballStemmer.java +0 -2
  82. data/vendor/snowball/javascript/base-stemmer.js +219 -252
  83. data/vendor/snowball/javascript/stemwords.js +86 -58
  84. data/vendor/snowball/libstemmer/mkmodules.pl +1 -1
  85. data/vendor/snowball/libstemmer/modules.txt +4 -0
  86. data/vendor/snowball/pascal/SnowballProgram.pas +18 -31
  87. data/vendor/snowball/php/base-stemmer.php +453 -0
  88. data/vendor/snowball/php/stemwords.php +25 -0
  89. data/vendor/snowball/python/create_init.py +16 -21
  90. data/vendor/snowball/python/pyproject.toml +3 -0
  91. data/vendor/snowball/python/setup.py +5 -7
  92. data/vendor/snowball/python/snowballstemmer/among.py +1 -2
  93. data/vendor/snowball/python/snowballstemmer/basestemmer.py +24 -33
  94. data/vendor/snowball/python/stemwords.py +72 -63
  95. data/vendor/snowball/runtime/api.c +11 -42
  96. data/vendor/snowball/runtime/api.h +11 -9
  97. data/vendor/snowball/runtime/snowball_runtime.h +110 -0
  98. data/vendor/snowball/runtime/utilities.c +282 -106
  99. data/vendor/snowball/rust/src/main.rs +2 -2
  100. data/vendor/snowball/rust/src/snowball/snowball_env.rs +7 -9
  101. data/vendor/snowball/tests/compilertest +62 -0
  102. data/vendor/snowball/tests/errors/ae-errors.sbl +53 -0
  103. data/vendor/snowball/tests/errors/ae-errors.stderr +8 -0
  104. data/vendor/snowball/tests/errors/bad-dollar.sbl +14 -0
  105. data/vendor/snowball/tests/errors/bad-dollar.stderr +4 -0
  106. data/vendor/snowball/tests/errors/bad-grouping-definition.sbl +9 -0
  107. data/vendor/snowball/tests/errors/bad-grouping-definition.stderr +6 -0
  108. data/vendor/snowball/tests/errors/missing-bra.sbl +6 -0
  109. data/vendor/snowball/tests/errors/missing-bra.stderr +3 -0
  110. data/vendor/snowball/tests/errors/missing-command.sbl +9 -0
  111. data/vendor/snowball/tests/errors/missing-command.stderr +1 -0
  112. data/vendor/snowball/tests/errors/missing-ket-backwardmode.sbl +3 -0
  113. data/vendor/snowball/tests/errors/missing-ket-backwardmode.stderr +1 -0
  114. data/vendor/snowball/tests/errors/missing-ket.sbl +7 -0
  115. data/vendor/snowball/tests/errors/missing-ket.stderr +6 -0
  116. data/vendor/snowball/tests/errors/notdefined.sbl +4 -0
  117. data/vendor/snowball/tests/errors/notdefined.stderr +2 -0
  118. data/vendor/snowball/tests/errors/string-omitted.sbl +5 -0
  119. data/vendor/snowball/tests/errors/string-omitted.stderr +1 -0
  120. data/vendor/snowball/tests/errors/undeclared.sbl +20 -0
  121. data/vendor/snowball/tests/errors/undeclared.stderr +9 -0
  122. data/vendor/snowball/tests/errors/unexpected-token.sbl +24 -0
  123. data/vendor/snowball/tests/errors/unexpected-token.stderr +17 -0
  124. data/vendor/snowball/tests/errors/wrongdirection.sbl +14 -0
  125. data/vendor/snowball/tests/errors/wrongdirection.stderr +1 -0
  126. data/vendor/snowball/tests/runtime/among.sbl +19 -0
  127. data/vendor/snowball/tests/runtime/arithmeticexpr.sbl +86 -0
  128. data/vendor/snowball/tests/runtime/attachinsert.sbl +47 -0
  129. data/vendor/snowball/tests/runtime/booleans.sbl +19 -0
  130. data/vendor/snowball/tests/runtime/externals.sbl +22 -0
  131. data/vendor/snowball/tests/runtime/hop.sbl +12 -0
  132. data/vendor/snowball/tests/runtime/integertests.sbl +60 -0
  133. data/vendor/snowball/tests/runtime/intlimits.sbl +25 -0
  134. data/vendor/snowball/tests/runtime/naming.sbl +20 -0
  135. data/vendor/snowball/tests/runtime/not.sbl +30 -0
  136. data/vendor/snowball/tests/runtime/or.sbl +17 -0
  137. data/vendor/snowball/tests/runtime/repeat.sbl +16 -0
  138. data/vendor/snowball/tests/runtime/setlimit.sbl +24 -0
  139. data/vendor/snowball/tests/runtime/sizelen.sbl +56 -0
  140. data/vendor/snowball/tests/runtime/slice.sbl +27 -0
  141. data/vendor/snowball/tests/runtime/stringdollar.sbl +39 -0
  142. data/vendor/snowball/tests/runtime/strings.sbl +66 -0
  143. data/vendor/snowball/tests/runtime/test.sbl +19 -0
  144. data/vendor/snowball/tests/stemtest.c +41 -1
  145. data/vendor/snowball/tests/syntax/canon.sbl +32 -0
  146. data/vendor/snowball/tests/syntax/canon.stderr +0 -0
  147. data/vendor/snowball/tests/syntax/canon.syntax +57 -0
  148. data/vendor/snowball/tests/syntax/emptyprogram.sbl +2 -0
  149. data/vendor/snowball/tests/syntax/emptyprogram.syntax +0 -0
  150. data/vendor/snowball/tests/syntax/groupings.sbl +11 -0
  151. data/vendor/snowball/tests/syntax/inline.sbl +144 -0
  152. data/vendor/snowball/tests/syntax/inline.stderr +0 -0
  153. data/vendor/snowball/tests/syntax/inline.syntax +121 -0
  154. data/vendor/snowball/tests/syntax/legacy.sbl +17 -0
  155. data/vendor/snowball/tests/syntax/legacy.stderr +5 -0
  156. data/vendor/snowball/tests/syntax/legacy.syntax +19 -0
  157. data/vendor/snowball/tests/syntax/loops.sbl +14 -0
  158. data/vendor/snowball/tests/syntax/loops.stderr +9 -0
  159. data/vendor/snowball/tests/syntax/loops.syntax +29 -0
  160. data/vendor/snowball/tests/syntax/noops.sbl +76 -0
  161. data/vendor/snowball/tests/syntax/noops.stderr +27 -0
  162. data/vendor/snowball/tests/syntax/noops.syntax +135 -0
  163. data/vendor/snowball/tests/syntax/simplifyae.sbl +21 -0
  164. data/vendor/snowball/tests/syntax/simplifyae.stderr +0 -0
  165. data/vendor/snowball/tests/syntax/simplifyae.syntax +39 -0
  166. data/vendor/snowball/tests/syntax/unused.sbl +18 -0
  167. data/vendor/snowball/tests/syntax/unused.stderr +7 -0
  168. data/vendor/snowball/tests/syntax/unused.syntax +3 -0
  169. data/vendor/snowball/zig/env.zig +599 -0
  170. data/vendor/snowball/zig/generate_algorithms.pl +19 -0
  171. data/vendor/snowball/zig/stemwords.zig +123 -0
  172. metadata +102 -4
  173. data/vendor/snowball/compiler/syswords.h +0 -86
  174. data/vendor/snowball/runtime/header.h +0 -62
@@ -0,0 +1,5 @@
1
+ syntax/legacy.sbl:5: warning: `decimal` is a legacy feature - use {U+1234} notation instead
2
+ syntax/legacy.sbl:6: warning: `hex` is a legacy feature - use {U+1234} notation instead
3
+ syntax/legacy.sbl:12: warning: Use of `=>` is not recommended, see https://snowballstem.org/compiler/snowman.html section 13.3 for details
4
+ syntax/legacy.sbl:14: warning: `<+` is a legacy feature - use `insert` instead
5
+ syntax/legacy.sbl:9: warning: among starter is a legacy feature - put starter code between `substring` and `among` instead
@@ -0,0 +1,19 @@
1
+ define stem
2
+ (
3
+ substring
4
+ (
5
+ next
6
+ among
7
+ literal 'a'
8
+ literal 'e'
9
+ literal 'i'
10
+ literal 'o'
11
+ literal 'u'
12
+ (
13
+ [
14
+ next
15
+ ]
16
+ => ch
17
+ <- ''
18
+ insert ch
19
+ Function end
@@ -0,0 +1,14 @@
1
+ // Test loop commands
2
+ externals (stem)
3
+ define stem as (
4
+ atleast 0 'x'
5
+ atleast -1 'y'
6
+ loop 1 'i'
7
+ repeat 'y'
8
+ try atleast len ()
9
+ try atleast len true
10
+ try atleast len false
11
+ try repeat ()
12
+ try repeat true
13
+ repeat false
14
+ )
@@ -0,0 +1,9 @@
1
+ syntax/loops.sbl:4: warning: atleast 0 C is just repeat C
2
+ syntax/loops.sbl:5: warning: atleast -1 C is just repeat C
3
+ syntax/loops.sbl:6: warning: loop 1 C is just C
4
+ syntax/loops.sbl:8: warning: infinite loop: body of 'atleast' always signals 't'
5
+ syntax/loops.sbl:9: warning: infinite loop: body of 'atleast' always signals 't'
6
+ syntax/loops.sbl:10: warning: body of 'atleast' always signals 'f'
7
+ syntax/loops.sbl:11: warning: infinite loop: body of 'repeat' always signals 't'
8
+ syntax/loops.sbl:12: warning: infinite loop: body of 'repeat' always signals 't'
9
+ syntax/loops.sbl:13: warning: body of 'repeat' always signals 'f'
@@ -0,0 +1,29 @@
1
+ define stem
2
+ (
3
+ repeat
4
+ literal 'x'
5
+ repeat
6
+ literal 'y'
7
+ literal 'i'
8
+ repeat
9
+ literal 'y'
10
+ try
11
+ atleast
12
+ # len
13
+ (
14
+ try
15
+ atleast
16
+ # len
17
+ true
18
+ try
19
+ (
20
+ false
21
+ try
22
+ repeat
23
+ (
24
+ try
25
+ repeat
26
+ true
27
+ do
28
+ false
29
+ Function end
@@ -0,0 +1,76 @@
1
+ // Test no-op commands which should get canonicalised.
2
+ externals (stem)
3
+ integers (x y)
4
+ booleans (b)
5
+ strings (s)
6
+ define stem as (
7
+ $x = 0
8
+ [substring] among ( // All actions equivalent to `true`.
9
+ '0' ()
10
+ 'a' (())
11
+ 'b' (true)
12
+ 'c' ('')
13
+ 'd' (loop 0 next)
14
+ 'e' (loop -1 next)
15
+ 'f' (hop 0)
16
+ 'g' ($x += 0)
17
+ 'h' ($x -= 0)
18
+ 'i' ($x *= 1)
19
+ 'j' ($x /= 1)
20
+ 'k' ($x = x)
21
+ 'l' (atmark cursor)
22
+ 'm' (tomark cursor)
23
+ 'n' (among (''))
24
+ 'o' (substring among (''))
25
+ 'p' (among ('' (atmark cursor)))
26
+ 'q' (substring atmark cursor among (''))
27
+ 'r' (substring atmark cursor among ('' (atmark cursor)))
28
+ 's' (insert '')
29
+ 't' (attach '')
30
+
31
+ // Values set are unused.
32
+ 'aa' ($y = 1)
33
+ 'ab' ($y += 1)
34
+ 'ac' ($y -= 1)
35
+ 'ad' ($y *= 2)
36
+ 'ae' ($y /= 2)
37
+ 'af' (setmark y)
38
+ 'ag' (set b)
39
+ 'ah' (unset b)
40
+ 'ai' (-> s)
41
+
42
+ // Integer tests.
43
+ 'A' ($(1 == 1))
44
+ 'B' ($(2 > 1))
45
+ 'C' ($(-1 < 0))
46
+ 'D' ($(-1 <= -1))
47
+ 'E' ($(0 >= 0))
48
+ 'F' ($(1 != 0))
49
+ )
50
+
51
+ // `setlimit tomark limit for X` is equivalent to just `X`.
52
+ setlimit tomark limit for 'X'
53
+
54
+ [substring] among ( // All actions equivalent to `false`.
55
+ '0' (false)
56
+ 'a' (fail ())
57
+ 'b' (fail true)
58
+ 'c' (fail '')
59
+ 'd' (fail loop 0 next)
60
+ 'e' (fail loop -1 next)
61
+ 'f' (fail hop 0)
62
+ 'g' (fail $x += 0)
63
+ 'h' (fail $x -= 0)
64
+ 'i' (fail $x *= 1)
65
+ 'j' (fail $x /= 1)
66
+
67
+ // Integer tests which are always false.
68
+ 'A' ($(1 != 1))
69
+ 'B' ($(1 > 2))
70
+ 'C' ($(-1 > 0))
71
+ 'D' ($(0 <= -1))
72
+ 'E' ($(0 >= 1))
73
+ 'F' ($(1 == 0))
74
+ )
75
+ )
76
+
@@ -0,0 +1,27 @@
1
+ syntax/noops.sbl:12: warning: empty literal string is a no-op
2
+ syntax/noops.sbl:13: warning: `loop 0 C` is a no-op
3
+ syntax/noops.sbl:14: warning: `loop -1 C` is a no-op
4
+ syntax/noops.sbl:15: warning: `hop 0` is a no-op
5
+ syntax/noops.sbl:20: warning: `$x = x` is a no-op
6
+ syntax/noops.sbl:21: warning: `atmark cursor` is always true
7
+ syntax/noops.sbl:22: warning: `tomark cursor` is a no-op
8
+ syntax/noops.sbl:23: warning: `among` with only empty string always matches
9
+ syntax/noops.sbl:24: warning: `among` with only empty string always matches
10
+ syntax/noops.sbl:25: warning: `atmark cursor` is always true
11
+ syntax/noops.sbl:25: warning: `among` with only empty string always matches
12
+ syntax/noops.sbl:26: warning: `atmark cursor` is always true
13
+ syntax/noops.sbl:26: warning: `among` with only empty string always matches
14
+ syntax/noops.sbl:27: warning: `atmark cursor` is always true
15
+ syntax/noops.sbl:27: warning: `atmark cursor` is always true
16
+ syntax/noops.sbl:27: warning: `among` with only empty string always matches
17
+ syntax/noops.sbl:28: warning: `insert ''` is a no-op
18
+ syntax/noops.sbl:29: warning: `attach ''` is a no-op
19
+ syntax/noops.sbl:52: warning: `setlimit tomark limit` is a no-op
20
+ syntax/noops.sbl:58: warning: empty literal string is a no-op
21
+ syntax/noops.sbl:59: warning: `loop 0 C` is a no-op
22
+ syntax/noops.sbl:60: warning: `loop -1 C` is a no-op
23
+ syntax/noops.sbl:61: warning: `hop 0` is a no-op
24
+ syntax/noops.sbl:5: warning: string 's' is set but never used
25
+ syntax/noops.sbl:4: warning: boolean 'b' is set but never used
26
+ syntax/noops.sbl:3: warning: integer 'y' is set but never used
27
+ syntax/noops.sbl:3: warning: integer 'x' is set but never used
@@ -0,0 +1,135 @@
1
+ define stem
2
+ (
3
+ true
4
+ [
5
+ substring
6
+ ]
7
+ among
8
+ literal '0'
9
+ (
10
+ literal 'a'
11
+ (
12
+ literal 'b'
13
+ (
14
+ literal 'c'
15
+ (
16
+ literal 'd'
17
+ (
18
+ literal 'e'
19
+ (
20
+ literal 'f'
21
+ (
22
+ literal 'g'
23
+ (
24
+ literal 'h'
25
+ (
26
+ literal 'i'
27
+ (
28
+ literal 'j'
29
+ (
30
+ literal 'k'
31
+ (
32
+ literal 'l'
33
+ (
34
+ literal 'm'
35
+ (
36
+ literal 'n'
37
+ (
38
+ literal 'o'
39
+ (
40
+ literal 'p'
41
+ (
42
+ literal 'q'
43
+ (
44
+ literal 'r'
45
+ (
46
+ literal 's'
47
+ (
48
+ literal 't'
49
+ (
50
+ literal 'aa'
51
+ (
52
+ literal 'ab'
53
+ (
54
+ literal 'ac'
55
+ (
56
+ literal 'ad'
57
+ (
58
+ literal 'ae'
59
+ (
60
+ literal 'af'
61
+ (
62
+ literal 'ag'
63
+ (
64
+ literal 'ah'
65
+ (
66
+ literal 'ai'
67
+ (
68
+ literal 'A'
69
+ (
70
+ literal 'B'
71
+ (
72
+ literal 'C'
73
+ (
74
+ literal 'D'
75
+ (
76
+ literal 'E'
77
+ (
78
+ literal 'F'
79
+ (
80
+ literal 'X'
81
+ [
82
+ substring
83
+ ]
84
+ among
85
+ literal '0'
86
+ (
87
+ false
88
+ literal 'a'
89
+ (
90
+ false
91
+ literal 'b'
92
+ (
93
+ false
94
+ literal 'c'
95
+ (
96
+ false
97
+ literal 'd'
98
+ (
99
+ false
100
+ literal 'e'
101
+ (
102
+ false
103
+ literal 'f'
104
+ (
105
+ false
106
+ literal 'g'
107
+ (
108
+ false
109
+ literal 'h'
110
+ (
111
+ false
112
+ literal 'i'
113
+ (
114
+ false
115
+ literal 'j'
116
+ (
117
+ false
118
+ literal 'A'
119
+ (
120
+ false
121
+ literal 'B'
122
+ (
123
+ false
124
+ literal 'C'
125
+ (
126
+ false
127
+ literal 'D'
128
+ (
129
+ false
130
+ literal 'E'
131
+ (
132
+ false
133
+ literal 'F'
134
+ (
135
+ false
@@ -0,0 +1,21 @@
1
+ // Test normalisation of arithmetic expressions (AEs).
2
+ integers(x y)
3
+ externals(stem)
4
+ define stem as (
5
+ $y = size * 0
6
+ $x = size
7
+ $x *= 0
8
+ $x *= -1
9
+ $y += x
10
+ $y /= -1
11
+ $x = size * -1
12
+ $y += x
13
+ $x = -1 * size
14
+ $y += x
15
+ $x = size / -1
16
+ $y += x
17
+ $y -= -1
18
+ $y += -1
19
+ $y == 1
20
+ )
21
+
File without changes
@@ -0,0 +1,39 @@
1
+ define stem
2
+ (
3
+ = y
4
+ # number 0
5
+ = x
6
+ # size
7
+ = x
8
+ # number 0
9
+ = x
10
+ # neg
11
+ name x
12
+ += y
13
+ # name x
14
+ = y
15
+ # neg
16
+ name y
17
+ = x
18
+ # neg
19
+ size
20
+ += y
21
+ # name x
22
+ = x
23
+ # neg
24
+ size
25
+ += y
26
+ # name x
27
+ = x
28
+ # neg
29
+ size
30
+ += y
31
+ # name x
32
+ += y
33
+ # number 1
34
+ -= y
35
+ # number 1
36
+ ==
37
+ # number 1
38
+ name y
39
+ Function end
@@ -0,0 +1,18 @@
1
+ // Test unused variables, routines and groupings.
2
+ externals (stem)
3
+ integers (x unused_int)
4
+ booleans (b unused_bool)
5
+ strings (unused string)
6
+ routines (r undef_routine)
7
+ groupings (g undef_grouping)
8
+ define g 'aeiou'
9
+ define r as (
10
+ unset b
11
+ try (next set b)
12
+ $x = size
13
+ b
14
+ $(x > 2)
15
+ g
16
+ )
17
+
18
+ define stem as true
@@ -0,0 +1,7 @@
1
+ syntax/unused.sbl:7: warning: grouping 'undef_grouping' declared but not defined
2
+ syntax/unused.sbl:6: warning: routine 'undef_routine' declared but not defined
3
+ syntax/unused.sbl:9: warning: routine 'r' defined but not used
4
+ syntax/unused.sbl:5: warning: string 'string' declared but not used
5
+ syntax/unused.sbl:5: warning: string 'unused' declared but not used
6
+ syntax/unused.sbl:4: warning: boolean 'unused_bool' declared but not used
7
+ syntax/unused.sbl:3: warning: integer 'unused_int' declared but not used
@@ -0,0 +1,3 @@
1
+ define stem
2
+ true
3
+ Function end