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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile +2 -1
- data/README.md +2 -2
- data/Rakefile +12 -5
- data/ext/mittens/extconf.rb +3 -1
- data/lib/mittens/version.rb +1 -1
- data/vendor/snowball/.github/workflows/ci.yml +144 -17
- data/vendor/snowball/.github/workflows/coverage.yml +117 -0
- data/vendor/snowball/.github/workflows/runtime-tests.yml +26 -0
- data/vendor/snowball/.gitignore +33 -7
- data/vendor/snowball/CONTRIBUTING.rst +7 -0
- data/vendor/snowball/COPYING +1 -1
- data/vendor/snowball/GNUmakefile +736 -298
- data/vendor/snowball/NEWS +1394 -7
- data/vendor/snowball/README.rst +8 -8
- data/vendor/snowball/ada/generate/generate.adb +5 -5
- data/vendor/snowball/ada/src/stemmer.adb +177 -188
- data/vendor/snowball/ada/src/stemmer.ads +86 -89
- data/vendor/snowball/ada/src/stemwords.adb +21 -5
- data/vendor/snowball/algorithms/czech.sbl +255 -0
- data/vendor/snowball/algorithms/danish.sbl +22 -10
- data/vendor/snowball/algorithms/english.sbl +7 -4
- data/vendor/snowball/algorithms/esperanto.sbl +6 -7
- data/vendor/snowball/algorithms/estonian.sbl +9 -4
- data/vendor/snowball/algorithms/finnish.sbl +33 -21
- data/vendor/snowball/algorithms/german.sbl +5 -0
- data/vendor/snowball/algorithms/indonesian.sbl +115 -96
- data/vendor/snowball/algorithms/italian.sbl +26 -1
- data/vendor/snowball/algorithms/lithuanian.sbl +13 -13
- data/vendor/snowball/algorithms/norwegian.sbl +17 -6
- data/vendor/snowball/algorithms/persian.sbl +387 -0
- data/vendor/snowball/algorithms/polish.sbl +177 -0
- data/vendor/snowball/algorithms/sesotho.sbl +115 -0
- data/vendor/snowball/algorithms/turkish.sbl +4 -4
- data/vendor/snowball/compiler/analyser.c +2002 -711
- data/vendor/snowball/compiler/driver.c +460 -298
- data/vendor/snowball/compiler/generator.c +439 -1965
- data/vendor/snowball/compiler/generator_ada.c +605 -430
- data/vendor/snowball/compiler/generator_c.c +2227 -0
- data/vendor/snowball/compiler/generator_csharp.c +365 -274
- data/vendor/snowball/compiler/generator_dart.c +1476 -0
- data/vendor/snowball/compiler/generator_go.c +348 -270
- data/vendor/snowball/compiler/generator_java.c +330 -233
- data/vendor/snowball/compiler/generator_js.c +534 -385
- data/vendor/snowball/compiler/generator_pascal.c +361 -320
- data/vendor/snowball/compiler/generator_php.c +1445 -0
- data/vendor/snowball/compiler/generator_python.c +399 -299
- data/vendor/snowball/compiler/generator_rust.c +370 -261
- data/vendor/snowball/compiler/generator_zig.c +1474 -0
- data/vendor/snowball/compiler/header.h +153 -86
- data/vendor/snowball/compiler/space.c +121 -63
- data/vendor/snowball/compiler/tokeniser.c +286 -182
- data/vendor/snowball/compiler/tokens.h +71 -0
- data/vendor/snowball/csharp/Snowball/Among.cs +14 -26
- data/vendor/snowball/csharp/Snowball/AssemblyInfo.cs +3 -3
- data/vendor/snowball/csharp/Snowball/Stemmer.cs +41 -45
- data/vendor/snowball/csharp/Stemwords/Program.cs +20 -14
- data/vendor/snowball/cxx/.gitignore +4 -0
- data/vendor/snowball/cxx/generate_algorithms.pl +87 -0
- data/vendor/snowball/cxx/stemmer.h +12 -0
- data/vendor/snowball/cxx/stemwords.cxx +176 -0
- data/vendor/snowball/cxx/utilities.cxx +2 -0
- data/vendor/snowball/dart/.gitignore +4 -0
- data/vendor/snowball/dart/analysis_options.yaml +1 -0
- data/vendor/snowball/dart/example/test_app.dart +65 -0
- data/vendor/snowball/dart/generate_algorithms.pl +21 -0
- data/vendor/snowball/dart/lib/snowball.dart +18 -0
- data/vendor/snowball/dart/lib/src/snowball.dart +339 -0
- data/vendor/snowball/dart/pubspec.yaml +17 -0
- data/vendor/snowball/doc/libstemmer_dart_README +37 -0
- data/vendor/snowball/doc/libstemmer_js_README +2 -2
- data/vendor/snowball/doc/libstemmer_php_README +38 -0
- data/vendor/snowball/doc/libstemmer_python_README +3 -3
- data/vendor/snowball/examples/stemwords.c +18 -3
- data/vendor/snowball/go/README.md +12 -4
- data/vendor/snowball/go/env.go +12 -14
- data/vendor/snowball/go/stemwords/main.go +2 -1
- data/vendor/snowball/java/org/tartarus/snowball/CharArraySequence.java +36 -0
- data/vendor/snowball/java/org/tartarus/snowball/SnowballProgram.java +17 -34
- data/vendor/snowball/java/org/tartarus/snowball/SnowballStemmer.java +0 -2
- data/vendor/snowball/javascript/base-stemmer.js +219 -252
- data/vendor/snowball/javascript/stemwords.js +86 -58
- data/vendor/snowball/libstemmer/mkmodules.pl +1 -1
- data/vendor/snowball/libstemmer/modules.txt +4 -0
- data/vendor/snowball/pascal/SnowballProgram.pas +18 -31
- data/vendor/snowball/php/base-stemmer.php +453 -0
- data/vendor/snowball/php/stemwords.php +25 -0
- data/vendor/snowball/python/create_init.py +16 -21
- data/vendor/snowball/python/pyproject.toml +3 -0
- data/vendor/snowball/python/setup.py +5 -7
- data/vendor/snowball/python/snowballstemmer/among.py +1 -2
- data/vendor/snowball/python/snowballstemmer/basestemmer.py +24 -33
- data/vendor/snowball/python/stemwords.py +72 -63
- data/vendor/snowball/runtime/api.c +11 -42
- data/vendor/snowball/runtime/api.h +11 -9
- data/vendor/snowball/runtime/snowball_runtime.h +110 -0
- data/vendor/snowball/runtime/utilities.c +282 -106
- data/vendor/snowball/rust/src/main.rs +2 -2
- data/vendor/snowball/rust/src/snowball/snowball_env.rs +7 -9
- data/vendor/snowball/tests/compilertest +62 -0
- data/vendor/snowball/tests/errors/ae-errors.sbl +53 -0
- data/vendor/snowball/tests/errors/ae-errors.stderr +8 -0
- data/vendor/snowball/tests/errors/bad-dollar.sbl +14 -0
- data/vendor/snowball/tests/errors/bad-dollar.stderr +4 -0
- data/vendor/snowball/tests/errors/bad-grouping-definition.sbl +9 -0
- data/vendor/snowball/tests/errors/bad-grouping-definition.stderr +6 -0
- data/vendor/snowball/tests/errors/missing-bra.sbl +6 -0
- data/vendor/snowball/tests/errors/missing-bra.stderr +3 -0
- data/vendor/snowball/tests/errors/missing-command.sbl +9 -0
- data/vendor/snowball/tests/errors/missing-command.stderr +1 -0
- data/vendor/snowball/tests/errors/missing-ket-backwardmode.sbl +3 -0
- data/vendor/snowball/tests/errors/missing-ket-backwardmode.stderr +1 -0
- data/vendor/snowball/tests/errors/missing-ket.sbl +7 -0
- data/vendor/snowball/tests/errors/missing-ket.stderr +6 -0
- data/vendor/snowball/tests/errors/notdefined.sbl +4 -0
- data/vendor/snowball/tests/errors/notdefined.stderr +2 -0
- data/vendor/snowball/tests/errors/string-omitted.sbl +5 -0
- data/vendor/snowball/tests/errors/string-omitted.stderr +1 -0
- data/vendor/snowball/tests/errors/undeclared.sbl +20 -0
- data/vendor/snowball/tests/errors/undeclared.stderr +9 -0
- data/vendor/snowball/tests/errors/unexpected-token.sbl +24 -0
- data/vendor/snowball/tests/errors/unexpected-token.stderr +17 -0
- data/vendor/snowball/tests/errors/wrongdirection.sbl +14 -0
- data/vendor/snowball/tests/errors/wrongdirection.stderr +1 -0
- data/vendor/snowball/tests/runtime/among.sbl +19 -0
- data/vendor/snowball/tests/runtime/arithmeticexpr.sbl +86 -0
- data/vendor/snowball/tests/runtime/attachinsert.sbl +47 -0
- data/vendor/snowball/tests/runtime/booleans.sbl +19 -0
- data/vendor/snowball/tests/runtime/externals.sbl +22 -0
- data/vendor/snowball/tests/runtime/hop.sbl +12 -0
- data/vendor/snowball/tests/runtime/integertests.sbl +60 -0
- data/vendor/snowball/tests/runtime/intlimits.sbl +25 -0
- data/vendor/snowball/tests/runtime/naming.sbl +20 -0
- data/vendor/snowball/tests/runtime/not.sbl +30 -0
- data/vendor/snowball/tests/runtime/or.sbl +17 -0
- data/vendor/snowball/tests/runtime/repeat.sbl +16 -0
- data/vendor/snowball/tests/runtime/setlimit.sbl +24 -0
- data/vendor/snowball/tests/runtime/sizelen.sbl +56 -0
- data/vendor/snowball/tests/runtime/slice.sbl +27 -0
- data/vendor/snowball/tests/runtime/stringdollar.sbl +39 -0
- data/vendor/snowball/tests/runtime/strings.sbl +66 -0
- data/vendor/snowball/tests/runtime/test.sbl +19 -0
- data/vendor/snowball/tests/stemtest.c +41 -1
- data/vendor/snowball/tests/syntax/canon.sbl +32 -0
- data/vendor/snowball/tests/syntax/canon.stderr +0 -0
- data/vendor/snowball/tests/syntax/canon.syntax +57 -0
- data/vendor/snowball/tests/syntax/emptyprogram.sbl +2 -0
- data/vendor/snowball/tests/syntax/emptyprogram.syntax +0 -0
- data/vendor/snowball/tests/syntax/groupings.sbl +11 -0
- data/vendor/snowball/tests/syntax/inline.sbl +144 -0
- data/vendor/snowball/tests/syntax/inline.stderr +0 -0
- data/vendor/snowball/tests/syntax/inline.syntax +121 -0
- data/vendor/snowball/tests/syntax/legacy.sbl +17 -0
- data/vendor/snowball/tests/syntax/legacy.stderr +5 -0
- data/vendor/snowball/tests/syntax/legacy.syntax +19 -0
- data/vendor/snowball/tests/syntax/loops.sbl +14 -0
- data/vendor/snowball/tests/syntax/loops.stderr +9 -0
- data/vendor/snowball/tests/syntax/loops.syntax +29 -0
- data/vendor/snowball/tests/syntax/noops.sbl +76 -0
- data/vendor/snowball/tests/syntax/noops.stderr +27 -0
- data/vendor/snowball/tests/syntax/noops.syntax +135 -0
- data/vendor/snowball/tests/syntax/simplifyae.sbl +21 -0
- data/vendor/snowball/tests/syntax/simplifyae.stderr +0 -0
- data/vendor/snowball/tests/syntax/simplifyae.syntax +39 -0
- data/vendor/snowball/tests/syntax/unused.sbl +18 -0
- data/vendor/snowball/tests/syntax/unused.stderr +7 -0
- data/vendor/snowball/tests/syntax/unused.syntax +3 -0
- data/vendor/snowball/zig/env.zig +599 -0
- data/vendor/snowball/zig/generate_algorithms.pl +19 -0
- data/vendor/snowball/zig/stemwords.zig +123 -0
- metadata +102 -4
- data/vendor/snowball/compiler/syswords.h +0 -86
- 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,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
|