Build Logs
inkytonik/kiama • 3.8.0-RC3:2025-12-04
Errors
236
Warnings
55
Total Lines
4085
1##################################
2Clonning https://github.com/inkytonik/kiama.git into /build/repo using revision v2.5.1
3##################################
4Note: switching to '61750c32ccd51eee31271a78713fd94809a61928'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21----
22Preparing build for 3.8.0-RC3
23Scala binary version found: 3.8
24Implicitly using source version 3.8
25Scala binary version found: 3.8
26Implicitly using source version 3.8
27Would try to apply common scalacOption (best-effort, sbt/mill only):
28Append: ,REQUIRE:-source:3.8
29Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
30
31Try apply source patch:
32Path: .sbtopts
33Pattern: -J-XX:+CMSClassUnloadingEnabled
34Replacement:
35Starting compilation server
36Compiling project (Scala 3.7.3, JVM (17))
37Compiled project (Scala 3.7.3, JVM (17))
38Successfully applied pattern '-J-XX:+CMSClassUnloadingEnabled' in .sbtopts
39----
40Starting build for 3.8.0-RC3
41Execute tests: true
42sbt project found:
43Sbt version 1.9.2 is not supported, minimal supported version is 1.11.5
44Enforcing usage of sbt in version 1.11.5
45No prepare script found for project inkytonik/kiama
46##################################
47Scala version: 3.8.0-RC3
48Targets: org.bitbucket.inkytonik.kiama%kiama org.bitbucket.inkytonik.kiama%kiama-extras
49Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":".sbtopts","pattern":"-J-XX:+CMSClassUnloadingEnabled","replaceWith":""}]}
50##################################
51Using extra scalacOptions: ,REQUIRE:-source:3.8
52Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
53[sbt_options] declare -a sbt_options=()
54[process_args] java_version = '17'
55[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
56# Executing command line:
57java
58-Dfile.encoding=UTF-8
59-Xms2G
60-Xmx2G
61-XX:+UseParallelGC
62-Dcommunitybuild.scala=3.8.0-RC3
63-Dcommunitybuild.project.dependencies.add=
64-Xmx7G
65-Xms4G
66-Xss8M
67-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
68-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
69-jar
70/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
71"setCrossScalaVersions 3.8.0-RC3"
72"++3.8.0-RC3 -v"
73"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
74"set every credentials := Nil"
75"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
76"removeScalacOptionsStartingWith -P:wartremover"
77
78moduleMappings
79"runBuild 3.8.0-RC3 """{"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":".sbtopts","pattern":"-J-XX:+CMSClassUnloadingEnabled","replaceWith":""}]}""" org.bitbucket.inkytonik.kiama%kiama org.bitbucket.inkytonik.kiama%kiama-extras"
80
81[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
82[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
83[info] loading project definition from /build/repo/project
84[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
85[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
86[info] Compilation completed in 8.433s.
87[info] done compiling
88/build/repo/build.sbt:46: warning: method sonatypeOssRepos in class ResolverFunctions is deprecated (since 1.11.2): Sonatype OSS Repository Hosting (OSSRH) was sunset on 2025-06-30; remove this resolver. If snapshots are required, use:
89 resolvers += Resolver.sonatypeCentralSnapshots
90ThisBuild/resolvers ++= Resolver.sonatypeOssRepos("releases")
91 ^
92/build/repo/build.sbt:47: warning: method sonatypeOssRepos in class ResolverFunctions is deprecated (since 1.11.2): Sonatype OSS Repository Hosting (OSSRH) was sunset on 2025-06-30; remove this resolver. If snapshots are required, use:
93 resolvers += Resolver.sonatypeCentralSnapshots
94ThisBuild/resolvers ++= Resolver.sonatypeOssRepos("snapshots")
95 ^
96[info] loading settings for project root from build.sbt...
97[info] set current project to root (in build file:/build/repo/)
98Execute setCrossScalaVersions: 3.8.0-RC3
99OpenCB::Changing crossVersion 3.1.3 -> 3.8.0-RC3 in core/crossScalaVersions
100OpenCB::Changing crossVersion 3.0.2 -> 3.8.0-RC3 in core/crossScalaVersions
101OpenCB::Changing crossVersion 3.1.3 -> 3.8.0-RC3 in root/crossScalaVersions
102OpenCB::Changing crossVersion 3.0.2 -> 3.8.0-RC3 in root/crossScalaVersions
103OpenCB::Changing crossVersion 3.1.3 -> 3.8.0-RC3 in extras/crossScalaVersions
104OpenCB::Changing crossVersion 3.0.2 -> 3.8.0-RC3 in extras/crossScalaVersions
105[info] set current project to root (in build file:/build/repo/)
106[info] Setting Scala version to 3.8.0-RC3 on 3 projects.
107[info] Switching Scala version on:
108[info] * root (2.13.7, 3.8.0-RC3, 2.12.18, 2.11.12)
109[info] core (2.13.7, 3.8.0-RC3, 2.12.18, 2.11.12)
110[info] extras (2.13.7, 3.8.0-RC3, 2.12.18, 2.11.12)
111[info] Excluding projects:
112[info] Reapplying settings...
113[info] set current project to root (in build file:/build/repo/)
114Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
115[info] Reapplying settings...
116[info] set current project to root (in build file:/build/repo/)
117[info] Defining Global / credentials, core / credentials and 1 others.
118[info] The new values will be used by Global / pgpSelectPassphrase, allCredentials and 13 others.
119[info] Run `last` for details.
120[info] Reapplying settings...
121[info] set current project to root (in build file:/build/repo/)
122Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
123[info] Reapplying settings...
124OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
125
126 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
127 Did you mean allExcludeDependencies ?
128 , retry without global scopes
129[info] Reapplying settings...
130[info] set current project to root (in build file:/build/repo/)
131Execute removeScalacOptionsStartingWith: -P:wartremover
132[info] Reapplying settings...
133[info] set current project to root (in build file:/build/repo/)
134[success] Total time: 0 s, completed Dec 4, 2025, 3:14:33 PM
135Build config: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":".sbtopts","pattern":"-J-XX:+CMSClassUnloadingEnabled","replaceWith":""}]}
136Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
137Starting build...
138Projects: Set(core, extras)
139Starting build for ProjectRef(file:/build/repo/,core) (kiama)... [0/2]
140OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.13.7 module Scope(Select(BuildRef(file:/build/repo/)), Zero, Zero, Zero)
141OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
142OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
143OpenCB::Filter out '-Xfatal-warnings', matches setting pattern '^-?-Xfatal-warnings'
144Compile scalacOptions: -language:higherKinds, -sourcepath, /build/repo, -unchecked, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
145[info] Formatting 41 Scala sources ProjectRef(uri("file:/build/repo/"), "core")(compile) ...
146[info] compiling 41 Scala sources to /build/repo/core/target/scala-3.8.0-RC3/classes ...
147[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:570:32
148[warn] 570 | return None
149[warn] | ^^^^^^^^^^^
150[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
151[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:597:32
152[warn] 597 | return None
153[warn] | ^^^^^^^^^^^
154[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
155[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:624:32
156[warn] 624 | return None
157[warn] | ^^^^^^^^^^^
158[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
159[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:650:32
160[warn] 650 | return None
161[warn] | ^^^^^^^^^^^
162[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
163[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:703:24
164[warn] 703 | return Some(r)
165[warn] | ^^^^^^^^^^^^^^
166[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
167[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:706:24
168[warn] 706 | return Some(r.reconstruct(newchildren))
169[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
170[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
171[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:722:24
172[warn] 722 | return Some(p)
173[warn] | ^^^^^^^^^^^^^^
174[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
175[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:726:24
176[warn] 726 | return Some(dup(p, newchildren))
177[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
178[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
179[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:746:32
180[warn] 746 | return Some(t)
181[warn] | ^^^^^^^^^^^^^^
182[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
183[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:777:32
184[warn] 777 | return Some(t)
185[warn] | ^^^^^^^^^^^^^^
186[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
187[warn] -- Warning: /build/repo/core/src/main/scala/org/bitbucket/inkytonik/kiama/rewriting/Rewriter.scala:993:32
188[warn] 993 | return None
189[warn] | ^^^^^^^^^^^
190[warn] |Non local returns are no longer supported; use `boundary` and `boundary.break` in `scala.util` instead
191[warn] there was 1 deprecation warning; re-run with -deprecation for details
192[warn] 12 warnings found
193[info] done compiling
194Starting build for ProjectRef(file:/build/repo/,extras) (kiama-extras)... [1/2]
195Compile scalacOptions: -language:higherKinds, -sourcepath, /build/repo, -unchecked, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
196[info] Formatting 7 Scala sources ProjectRef(uri("file:/build/repo/"), "extras")(compile) ...
197[info] compiling 7 Scala sources to /build/repo/extras/target/scala-3.8.0-RC3/classes ...
198[info] done compiling
199[info] Formatting 221 Scala sources ProjectRef(uri("file:/build/repo/"), "extras")(test) ...
200[info] compiling 221 Scala sources to /build/repo/extras/target/scala-3.8.0-RC3/test-classes ...
201[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/extras/src/test/scala/org/bitbucket/inkytonik/kiama/attribution/AttributionTests.scala:813:29
202[warn] 813 | case node : AstBase if aggregateValuesAttr(node) > threshold =>
203[warn] | ^
204[warn] |the type test for AstBase cannot be checked at runtime because it's a local class
205[warn] |
206[warn] | longer explanation available when compiling with `-explain`
207[warn] one warning found
208[info] done compiling
209[info] DotNameResolutionTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/picojava/tests:
210[info] - class members are resolved
211[info] - nested classes are resolved
212[info] - nested names hide outer ones
213[info] - non-members in scope are not resolved as members
214[info] RewriterClassTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/rewriting:
215[info] - rewrite normal classes: top-level fail
216[info] - rewrite normal classes: all
217[info] - rewrite normal classes: some
218[info] - rewrite normal classes: one
219[info] - rewrite normal classes: counting all terms using count
220[info] - rewrite normal classes: counting all terms of a Term using a para
221[info] - rewrite normal classes: counting all terms of a non-Term using para
222[info] - constructing a Rewritable with wrong args throws exception
223[info] ComparisonTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/util:
224[info] - same: two equal Booleans compare equal
225[info] - same: two unequal Booleans compare unequal
226[info] - same: two equal integers compare equal
227[info] - same: two unequal integers compare unequal
228[info] - same: two equal longs compare equal
229[info] - same: two unequal longs compare unequal
230[info] - same: two equal floats compare equal
231[info] - same: two unequal floats compare unequal
232[info] - same: two equal doubles compare equal
233[info] - same: two unequal doubles compare unequal
234[info] - same: two equal strings compare equal
235[info] - same: two unequal strings compare unequal
236[info] - same: null is not equal to a reference on left
237[info] - same: null is not equal to a reference on right
238[info] - same: two unequal references compare unequal
239[info] - same: two equal references compare equal
240[info] - optsame: two None values compare equal
241[info] - optsame: None is not equal to a Some on left
242[info] - optsame: None is not equal to a Some on right
243[info] - optsame: Some of two unequal references compare unequal
244[info] - optsame: Some of two equal references compare equal
245[info] PositionedRewriterTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/rewriting:
246[info] - positioned rewriting with positions and strategyf works
247[info] - positioned rewriting with positions and strategy works
248[info] - positioned rewriting with positions and rule works
249[info] - positioned rewriting with positions and rulefs works
250[info] - positioned rewriting with no positions works
251[info] CombinedTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/picojava/tests:
252[info] - combined test program has no errors
253[info] TIL1_1Tests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/til:
254[info] - parse factorial program
255[info] - parse factors program *** FAILED ***
256[info] Parse failure with message "'!=' expected but 'd' found" at 'd' (8,14) (TIL1_1Tests.scala:106)
257[info] - parse multiples program
258[info] A3Tests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/drivers:
259[info] - Oberon0 testing A3 on base tests: -- emptybody.ob, expecting emptybody.out
260[info] - Oberon0 testing A3 on base tests: -- commentnoend.ob, expecting commentnoend.out
261[info] - Oberon0 testing A3 on base tests: -- emptymodule.ob, expecting emptymodule.out
262[info] - Oberon0 testing A3 on base tests: -- comment.ob, expecting comment.out
263[info] - Oberon0 testing A3 on base tests: -- keywordasname.ob, expecting keywordasname.out
264[info] - Oberon0 testing A3 on L0 tests: -- const.ob, expecting const.out
265[info] - Oberon0 testing A3 on L0 tests: -- selfref.ob, expecting selfref.out
266[info] - Oberon0 testing A3 on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
267[info] "* [errors
268[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
269[info] avar := answer - avar MOD 4;
270[info] ^]" was not equal to "* [_pp.ob
271[info] MODULE assign;
272[info]
273[info] CONST
274[info] answer = 42;
275[info] aconst1 = 1 + 42;
276[info] aconst2 = aconst1 * 2;
277[info]
278[info] VAR
279[info] avar, xvar : INTEGER;
280[info] bvar : BOOLEAN;
281[info]
282[info] BEGIN
283[info] avar := 10;
284[info] avar := answer - avar MOD 4;
285[info] avar := (answer + avar) * 4;
286[info] bvar := TRUE;
287[info] bvar := bvar OR bvar & FALSE
288[info] END assign.]" (CompilerTests.scala:149)
289[info] - Oberon0 testing A3 on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
290[info] - Oberon0 testing A3 on L0 tests: -- badassign.ob, expecting badassign.out
291[info] - Oberon0 testing A3 on L0 tests: -- type.ob, expecting type.out
292[info] - Oberon0 testing A3 on L0 tests: -- repeatsection.ob, expecting repeatsection.out
293[info] - Oberon0 testing A3 on L0 tests: -- redefinteger.ob, expecting redefinteger.out
294[info] - Oberon0 testing A3 on L0 tests: -- badeq.ob, expecting badeq.out
295[info] - Oberon0 testing A3 on L0 tests: -- typenodecl.ob, expecting typenodecl.out
296[info] - Oberon0 testing A3 on L0 tests: -- var.ob, expecting var.out
297[info] - Oberon0 testing A3 on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
298[info] - Oberon0 testing A3 on L0 tests: -- intoverflow.ob, expecting intoverflow.out
299[info] - Oberon0 testing A3 on L0 tests: -- redeftrue.ob, expecting redeftrue.out
300[info] - Oberon0 testing A3 on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
301[info] "* [errors
302[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
303[info] ivar1 := 2 + 3 * 4;
304[info] ^]" was not equal to "* [_pp.ob
305[info] MODULE simpleexps;
306[info]
307[info] VAR
308[info] ivar1, ivar2 : INTEGER;
309[info] bvar1, bvar2 : BOOLEAN;
310[info]
311[info] BEGIN
312[info] ivar1 := 0;
313[info] ivar1 := 12;
314[info] ivar1 := 345;
315[info] ivar1 := 67890123;
316[info] ivar1 := -0;
317[info] ivar1 := -1;
318[info] ivar2 := -782374;
319[info] ivar2 := --10;
320[info] ivar1 := ivar2 + 1;
321[info] ivar1 := 2 + ivar2;
322[info] ivar1 := ivar2 - ivar1;
323[info] ivar1 := 3 - ivar2;
324[info] ivar1 := ivar2 * 4;
325[info] ivar1 := 5 * ivar2;
326[info] ivar1 := ivar2 DIV 6;
327[info] ivar1 := (-7) DIV (ivar2 + 1);
328[info] ivar1 := ivar2 MOD ivar1;
329[info] ivar1 := 8 MOD (ivar2 + 1);
330[info] ivar1 := 2 + 3 * 4;
331[info] ivar1 := (2 + 3) * 4;
332[info] ivar1 := 2 - 3 DIV 4;
333[info] ivar1 := (2 - 3) DIV 4;
334[info] ivar1 := 2 + 3 MOD 4;
335[info] ivar1 := (2 + 3) MOD 4;
336[info] ivar1 := 2 + 3 + 4;
337[info] ivar1 := 2 + (3 + 4);
338[info] ivar1 := 2 - 3 - 4;
339[info] ivar1 := 2 - (3 - 4);
340[info] ivar1 := 2 * 3 * 4;
341[info] ivar1 := 2 * (3 * 4);
342[info] ivar1 := 2 MOD 3 MOD 4;
343[info] ivar1 := 2 MOD (3 MOD 4);
344[info] ivar1 := 2 DIV 3 DIV 4;
345[info] ivar1 := 2 DIV (4 DIV 4);
346[info] bvar1 := FALSE;
347[info] bvar1 := TRUE;
348[info] bvar1 := bvar1 OR bvar2;
349[info] bvar1 := bvar1 & bvar2;
350[info] bvar1 := FALSE OR FALSE & TRUE;
351[info] bvar1 := bvar1 & ~bvar2;
352[info] bvar1 := bvar1 OR bvar2 OR FALSE;
353[info] bvar1 := bvar1 OR bvar2 & FALSE;
354[info] bvar1 := bvar1 & (TRUE & bvar2);
355[info] bvar1 := ~TRUE;
356[info] bvar1 := ~bvar1 & bvar2;
357[info] bvar1 := ~~bvar1;
358[info] bvar1 := ivar1 = ivar2;
359[info] bvar1 := ivar1 # ivar2;
360[info] bvar1 := ivar1 < ivar2;
361[info] bvar1 := ivar1 <= ivar2;
362[info] bvar1 := ivar1 > ivar2;
363[info] bvar1 := ivar1 >= ivar2;
364[info] bvar1 := (ivar1 = ivar2) OR bvar2;
365[info] bvar1 := bvar2 & (ivar1 # ivar2)
366[info] END simpleexps.]" (CompilerTests.scala:149)
367[info] - Oberon0 testing A3 on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
368[info] - Oberon0 testing A3 on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
369[info] - Oberon0 testing A3 on L0 tests: -- keywordasname.ob, expecting keywordasname.out
370[info] - Oberon0 testing A3 on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
371[info] - Oberon0 testing A3 on L1 tests: -- badcond.ob, expecting badcond.out
372[info] - Oberon0 testing A3 on L1 tests: -- while.ob, expecting while.out
373[info] - Oberon0 testing A3 on L1 tests: -- condname.ob, expecting condname.out
374[info] - Oberon0 testing A3 on L1 tests: -- whilename.ob, expecting whilename.out
375[info] - Oberon0 testing A3 on L1 tests: -- badwhile.ob, expecting badwhile.out
376[info] - Oberon0 testing A3 on L1 tests: -- cond.ob, expecting cond.out
377[info] - Oberon0 testing A3 on L2 tests: -- casename.ob, expecting casename.out
378[info] - Oberon0 testing A3 on L2 tests: -- forname.ob, expecting forname.out
379[info] - Oberon0 testing A3 on L2 tests: -- case.ob, expecting case.out
380[info] - Oberon0 testing A3 on L2 tests: -- badcase.ob, expecting badcase.out
381[info] - Oberon0 testing A3 on L2 tests: -- badfor.ob, expecting badfor.out
382[info] - Oberon0 testing A3 on L2 tests: -- for.ob, expecting for.out
383[info] - Oberon0 testing A3 on L2 tests: -- lift.ob, expecting lift.out
384[info] - Oberon0 testing A3 on L2 tests: -- casenoclause.ob, expecting casenoclause.out
385[info] - Oberon0 testing A3 on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
386[info] - Oberon0 testing A3 on L3 tests: -- wrongprocedurename.ob, expecting wrongprocedurename.out
387[info] - Oberon0 testing A3 on L3 tests: -- nonlocalvar.ob, expecting nonlocalvar.out
388[info] - Oberon0 testing A3 on L3 tests: -- recurse.ob, expecting recurse.out
389[info] - Oberon0 testing A3 on L3 tests: -- gcd.ob, expecting gcd.out
390[info] - Oberon0 testing A3 on L3 tests: -- proc.ob, expecting proc.out
391[info] - Oberon0 testing A3 on L3 tests: -- factorial.ob, expecting factorial.out
392[info] - Oberon0 testing A3 on L3 tests: -- badproc.ob, expecting badproc.out
393[info] ObrExecTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests:
394[info] - ObrExec: --Kconsole string 0 -e -- or2.obr, expecting or2.obr.out from string '0'
395[info] - ObrExec: --Kconsole string 0 -e -- comp1.obr, expecting comp1.obr.out from string '0'
396[info] - ObrExec: --Kconsole string 0 -e -- equal1.obr, expecting equal1.obr.out from string '0' *** FAILED ***
397[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/equal1.obr:3:14:error: '>' expected but 'T' found
398[info] IF 1 = 1 THEN
399[info] ^]
400[info] " was not equal to "[1]
401[info] " (CompilerTests.scala:149)
402[info] - ObrExec: --Kconsole string 0 -e -- array.obr, expecting array.obr.out from string '0'
403[info] - ObrExec: --Kconsole string 0 -e -- const.obr, expecting const.obr.out from string '0'
404[info] - ObrExec: --Kconsole string 0 -e -- while2.obr, expecting while2.obr.out from string '0' *** FAILED ***
405[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/while2.obr:8:17:error: '>' expected but 'D' found
406[info] WHILE i < 0 DO
407[info] ^]
408[info] " was not equal to "[42]
409[info] " (CompilerTests.scala:149)
410[info] - ObrExec: --Kconsole string 0 -e -- or1.obr, expecting or1.obr.out from string '0'
411[info] - ObrExec: --Kconsole string 0 -e -- minus.obr, expecting minus.obr.out from string '0'
412[info] - ObrExec: --Kconsole string 0 -e -- while1.obr, expecting while1.obr.out from string '0' *** FAILED ***
413[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/while1.obr:8:18:error: '>' expected but 'D' found
414[info] WHILE i < 10 DO
415[info] ^]
416[info] " was not equal to "[45]
417[info] " (CompilerTests.scala:149)
418[info] - ObrExec: --Kconsole string 0 -e -- for1.obr, expecting for1.obr.out from string '0'
419[info] - ObrExec: --Kconsole string 0 -e -- for2.obr, expecting for2.obr.out from string '0'
420[info] - ObrExec: --Kconsole string 0 -e -- loop1.obr, expecting loop1.obr.out from string '0' *** FAILED ***
421[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/loop1.obr:10:18:error: '>' expected but 'T' found
422[info] IF v = 5 THEN EXIT; END
423[info] ^]
424[info] " was not equal to "[5]
425[info] " (CompilerTests.scala:149)
426[info] - ObrExec: --Kconsole string 0 -e -- equal2.obr, expecting equal2.obr.out from string '0' *** FAILED ***
427[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/equal2.obr:3:14:error: '>' expected but 'T' found
428[info] IF 1 = 2 THEN
429[info] ^]
430[info] " was not equal to "[1]
431[info] " (CompilerTests.scala:149)
432[info] - ObrExec: --Kconsole string 0 -e -- and1.obr, expecting and1.obr.out from string '0'
433[info] - ObrExec: --Kconsole string 0 -e -- and2.obr, expecting and2.obr.out from string '0'
434[info] - ObrExec: --Kconsole string 0 -e -- record.obr, expecting record.obr.out from string '0'
435[info] - ObrExec: --Kconsole string 0 -e -- inequal2.obr, expecting inequal2.obr.out from string '0' *** FAILED ***
436[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/inequal2.obr:3:14:error: '>' expected but 'T' found
437[info] IF 1 # 2 THEN
438[info] ^]
439[info] " was not equal to "[1]
440[info] " (CompilerTests.scala:149)
441[info] - ObrExec: --Kconsole string 0 -e -- neg.obr, expecting neg.obr.out from string '0'
442[info] - ObrExec: --Kconsole file factorial.obr.in -e -- factorial.obr, expecting factorial.obr.out from input factorial.obr.in *** FAILED ***
443[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/factorial.obr:18:21:error: '>' expected but 'D' found
444[info] WHILE c < v DO
445[info] ^]
446[info] " was not equal to "[120]
447[info] " (CompilerTests.scala:149)
448[info] - ObrExec: --Kconsole string 0 -e -- comp2.obr, expecting comp2.obr.out from string '0'
449[info] - ObrExec: --Kconsole string 0 -e -- times.obr, expecting times.obr.out from string '0'
450[info] - ObrExec: --Kconsole string 0 -e -- divide.obr, expecting divide.obr.out from string '0'
451[info] - ObrExec: --Kconsole file gcd.obr.in -e -- gcd.obr, expecting gcd.obr.out from input gcd.obr.in *** FAILED ***
452[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gcd.obr:6:17:error: '>' expected but 'D' found
453[info] WHILE x # y DO
454[info] ^]
455[info] " was not equal to "[3]
456[info] " (CompilerTests.scala:149)
457[info] - ObrExec: --Kconsole string 0 -e -- and3.obr, expecting and3.obr.out from string '0'
458[info] - ObrExec: --Kconsole string 0 -e -- plus.obr, expecting plus.obr.out from string '0'
459[info] - ObrExec: --Kconsole string 0 -e -- or3.obr, expecting or3.obr.out from string '0'
460[info] - ObrExec: --Kconsole string 0 -e -- loop2.obr, expecting loop2.obr.out from string '0' *** FAILED ***
461[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/loop2.obr:14:22:error: '>' expected but 'T' found
462[info] IF w = 3 THEN EXIT; END
463[info] ^]
464[info] " was not equal to "[8]
465[info] " (CompilerTests.scala:149)
466[info] - ObrExec: --Kconsole string 0 -e -- mod.obr, expecting mod.obr.out from string '0'
467[info] - ObrExec: --Kconsole string 0 -e -- gthan1.obr, expecting gthan1.obr.out from string '0' *** FAILED ***
468[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gthan1.obr:3:14:error: '>' expected but 'T' found
469[info] IF 1 > 2 THEN
470[info] ^]
471[info] " was not equal to "[1]
472[info] " (CompilerTests.scala:149)
473[info] - ObrExec: --Kconsole string 0 -e -- gthan2.obr, expecting gthan2.obr.out from string '0' *** FAILED ***
474[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gthan2.obr:3:14:error: '>' expected but 'T' found
475[info] IF 2 > 1 THEN
476[info] ^]
477[info] " was not equal to "[1]
478[info] " (CompilerTests.scala:149)
479[info] - ObrExec: --Kconsole string 0 -e -- inequal1.obr, expecting inequal1.obr.out from string '0' *** FAILED ***
480[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/inequal1.obr:3:14:error: '>' expected but 'T' found
481[info] IF 1 # 1 THEN
482[info] ^]
483[info] " was not equal to "[1]
484[info] " (CompilerTests.scala:149)
485[info] - ObrExec: --Kconsole string 0 -e -- lthan1.obr, expecting lthan1.obr.out from string '0' *** FAILED ***
486[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/lthan1.obr:3:14:error: '>' expected but 'T' found
487[info] IF 1 < 2 THEN
488[info] ^]
489[info] " was not equal to "[1]
490[info] " (CompilerTests.scala:149)
491[info] - ObrExec: --Kconsole string 0 -e -- lthan2.obr, expecting lthan2.obr.out from string '0' *** FAILED ***
492[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/lthan2.obr:3:14:error: '>' expected but 'T' found
493[info] IF 2 < 1 THEN
494[info] ^]
495[info] " was not equal to "[1]
496[info] " (CompilerTests.scala:149)
497[info] - ObrForExec processing for.obr parameters (0, 0) expecting 0
498[info] - ObrForExec processing for.obr parameters (5, 0) expecting 0
499[info] - ObrForExec processing for.obr parameters (-1, 3) expecting 0
500[info] - ObrForExec processing for.obr parameters (5, 5) expecting 25
501[info] - ObrForExec processing for2.obr parameters (2) expecting 2
502[info] - ObrForExec processing for2.obr parameters (0) expecting 1
503[info] - ObrForExec processing for2.obr parameters (-1) expecting 1
504[info] - ObrForExec processing for2.obr parameters (1) expecting 1
505[info] - ObrForExec processing for2.obr parameters (5) expecting 120
506[info] - ObrForExec processing for3.obr parameters (2) expecting 2 *** FAILED ***
507[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/for/codegen/for3.obr:11:24:error: '>' expected but 'T' found
508[info] IF a MOD 2 = 1 THEN
509[info] ^]
510[info] " was not equal to "[2]
511[info] " (ObrTests.scala:85)
512[info] - ObrForExec processing for3.obr parameters (0) expecting 1 *** FAILED ***
513[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/for/codegen/for3.obr:11:24:error: '>' expected but 'T' found
514[info] IF a MOD 2 = 1 THEN
515[info] ^]
516[info] " was not equal to "[1]
517[info] " (ObrTests.scala:85)
518[info] - ObrForExec processing for3.obr parameters (-1) expecting 1 *** FAILED ***
519[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/for/codegen/for3.obr:11:24:error: '>' expected but 'T' found
520[info] IF a MOD 2 = 1 THEN
521[info] ^]
522[info] " was not equal to "[1]
523[info] " (ObrTests.scala:85)
524[info] - ObrForExec processing for3.obr parameters (1) expecting 1 *** FAILED ***
525[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/for/codegen/for3.obr:11:24:error: '>' expected but 'T' found
526[info] IF a MOD 2 = 1 THEN
527[info] ^]
528[info] " was not equal to "[1]
529[info] " (ObrTests.scala:85)
530[info] - ObrForExec processing for3.obr parameters (5) expecting 141 *** FAILED ***
531[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/for/codegen/for3.obr:11:24:error: '>' expected but 'T' found
532[info] IF a MOD 2 = 1 THEN
533[info] ^]
534[info] " was not equal to "[141]
535[info] " (ObrTests.scala:85)
536[info] - ObrEnumExec processing enumtest.obr parameters (-1) expecting 0 *** FAILED ***
537[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/codegen/enumtest.obr:11:12:error: '>' expected but 'T' found
538[info] IF c = 0 THEN
539[info] ^]
540[info] " was not equal to "[0]
541[info] " (ObrTests.scala:85)
542[info] - ObrEnumExec processing enumtest.obr parameters (0) expecting 1 *** FAILED ***
543[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/codegen/enumtest.obr:11:12:error: '>' expected but 'T' found
544[info] IF c = 0 THEN
545[info] ^]
546[info] " was not equal to "[1]
547[info] " (ObrTests.scala:85)
548[info] - ObrEnumExec processing enumtest.obr parameters (1) expecting 1 *** FAILED ***
549[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/codegen/enumtest.obr:11:12:error: '>' expected but 'T' found
550[info] IF c = 0 THEN
551[info] ^]
552[info] " was not equal to "[1]
553[info] " (ObrTests.scala:85)
554[info] - ObrEnumExec processing enumtest.obr parameters (2) expecting 1 *** FAILED ***
555[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/codegen/enumtest.obr:11:12:error: '>' expected but 'T' found
556[info] IF c = 0 THEN
557[info] ^]
558[info] " was not equal to "[1]
559[info] " (ObrTests.scala:85)
560[info] - ObrEnumExec processing enumtest.obr parameters (3) expecting 1 *** FAILED ***
561[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/codegen/enumtest.obr:11:12:error: '>' expected but 'T' found
562[info] IF c = 0 THEN
563[info] ^]
564[info] " was not equal to "[1]
565[info] " (ObrTests.scala:85)
566[info] - ObrEnumExec processing enumtest.obr parameters (4) expecting 0 *** FAILED ***
567[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/codegen/enumtest.obr:11:12:error: '>' expected but 'T' found
568[info] IF c = 0 THEN
569[info] ^]
570[info] " was not equal to "[0]
571[info] " (ObrTests.scala:85)
572[info] - ObrEnumExec processing enumtest.obr parameters (5) expecting 0 *** FAILED ***
573[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/codegen/enumtest.obr:11:12:error: '>' expected but 'T' found
574[info] IF c = 0 THEN
575[info] ^]
576[info] " was not equal to "[0]
577[info] " (ObrTests.scala:85)
578[info] - ObrEnumExec processing enumtest.obr parameters (6) expecting 0 *** FAILED ***
579[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/codegen/enumtest.obr:11:12:error: '>' expected but 'T' found
580[info] IF c = 0 THEN
581[info] ^]
582[info] " was not equal to "[0]
583[info] " (ObrTests.scala:85)
584[info] - ObrEnumExec processing enumtest.obr parameters (7) expecting 0 *** FAILED ***
585[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/codegen/enumtest.obr:11:12:error: '>' expected but 'T' found
586[info] IF c = 0 THEN
587[info] ^]
588[info] " was not equal to "[0]
589[info] " (ObrTests.scala:85)
590[info] - ObrExceptionsExec processing except1a.obr parameters (0) expecting -1
591[info] - ObrExceptionsExec processing except1b.obr parameters (0) expecting -2 *** FAILED ***
592[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except1b.obr:15:14:error: '>' expected but 'T' found
593[info] IF i = 0 THEN
594[info] ^]
595[info] " was not equal to "[-2]
596[info] " (ObrTests.scala:85)
597[info] - ObrExceptionsExec processing except1b.obr parameters (20) expecting 20 *** FAILED ***
598[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except1b.obr:15:14:error: '>' expected but 'T' found
599[info] IF i = 0 THEN
600[info] ^]
601[info] " was not equal to "[20]
602[info] " (ObrTests.scala:85)
603[info] - ObrExceptionsExec processing except1c.obr parameters (-20) expecting -20 *** FAILED ***
604[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except1c.obr:15:12:error: '>' expected but 'T' found
605[info] IF i = 0 THEN
606[info] ^]
607[info] " was not equal to "[-20]
608[info] " (ObrTests.scala:85)
609[info] - ObrExceptionsExec processing except1c.obr parameters (0) expecting -1 *** FAILED ***
610[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except1c.obr:15:12:error: '>' expected but 'T' found
611[info] IF i = 0 THEN
612[info] ^]
613[info] " was not equal to "[-1]
614[info] " (ObrTests.scala:85)
615[info] - ObrExceptionsExec processing except1c.obr parameters (1) expecting -2 *** FAILED ***
616[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except1c.obr:15:12:error: '>' expected but 'T' found
617[info] IF i = 0 THEN
618[info] ^]
619[info] " was not equal to "[-2]
620[info] " (ObrTests.scala:85)
621[info] - ObrExceptionsExec processing except1c.obr parameters (2) expecting -3 *** FAILED ***
622[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except1c.obr:15:12:error: '>' expected but 'T' found
623[info] IF i = 0 THEN
624[info] ^]
625[info] " was not equal to "[-3]
626[info] " (ObrTests.scala:85)
627[info] - ObrExceptionsExec processing except1c.obr parameters (3) expecting 3 *** FAILED ***
628[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except1c.obr:15:12:error: '>' expected but 'T' found
629[info] IF i = 0 THEN
630[info] ^]
631[info] " was not equal to "[3]
632[info] " (ObrTests.scala:85)
633[info] - ObrExceptionsExec processing except2a.obr parameters (75) expecting -2 *** FAILED ***
634[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except2a.obr:16:14:error: '>' expected but 'T' found
635[info] IF i = 0 THEN
636[info] ^]
637[info] " was not equal to "[-2]
638[info] " (ObrTests.scala:85)
639[info] - ObrExceptionsExec processing except2a.obr parameters (0) expecting -1 *** FAILED ***
640[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except2a.obr:16:14:error: '>' expected but 'T' found
641[info] IF i = 0 THEN
642[info] ^]
643[info] " was not equal to "[-1]
644[info] " (ObrTests.scala:85)
645[info] - ObrExceptionsExec processing except2b.obr parameters (3) expecting -2 *** FAILED ***
646[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except2b.obr:17:18:error: '>' expected but 'T' found
647[info] IF i < 3 THEN
648[info] ^]
649[info] " was not equal to "[-2]
650[info] " (ObrTests.scala:85)
651[info] - ObrExceptionsExec processing except2b.obr parameters (2) expecting 2 *** FAILED ***
652[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except2b.obr:17:18:error: '>' expected but 'T' found
653[info] IF i < 3 THEN
654[info] ^]
655[info] " was not equal to "[2]
656[info] " (ObrTests.scala:85)
657[info] - ObrExceptionsExec processing except2b.obr parameters (1) expecting 11 *** FAILED ***
658[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except2b.obr:17:18:error: '>' expected but 'T' found
659[info] IF i < 3 THEN
660[info] ^]
661[info] " was not equal to "[11]
662[info] " (ObrTests.scala:85)
663[info] - ObrExceptionsExec processing except2b.obr parameters (0) expecting 110 *** FAILED ***
664[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except2b.obr:17:18:error: '>' expected but 'T' found
665[info] IF i < 3 THEN
666[info] ^]
667[info] " was not equal to "[110]
668[info] " (ObrTests.scala:85)
669[info] - ObrExceptionsExec processing except3.obr parameters (-32) expecting 68
670[info] - ObrExceptionsExec processing except4a.obr parameters (-3) expecting -33
671[info] - ObrExceptionsExec processing except4a.obr parameters (0) expecting -1
672[info] - ObrExceptionsExec processing except4a.obr parameters (10) expecting 10
673[info] - ObrExceptionsExec processing except4b.obr parameters (23) expecting -1
674[info] - ObrExceptionsExec processing except4b.obr parameters (16) expecting -1
675[info] - ObrExceptionsExec processing except4b.obr parameters (10) expecting 40
676[info] - ObrExceptionsExec processing except4b.obr parameters (20) expecting -68
677[info] - ObrExceptionsExec processing except5a.obr parameters (0) expecting -2
678[info] - ObrExceptionsExec processing except5a.obr parameters (20) expecting 5
679[info] - ObrExceptionsExec processing except5b.obr parameters (23) expecting -2
680[info] - ObrExceptionsExec processing except5b.obr parameters (16) expecting -2
681[info] - ObrExceptionsExec processing except5b.obr parameters (10) expecting 40
682[info] - ObrExceptionsExec processing except5b.obr parameters (-2) expecting 28
683[info] - ObrExceptionsExec processing except6a.obr parameters (0) expecting -1 *** FAILED ***
684[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6a.obr:23:19:error: '>' expected but 'T' found
685[info] IF i = 1 THEN
686[info] ^]
687[info] " was not equal to "[-1]
688[info] " (ObrTests.scala:85)
689[info] - ObrExceptionsExec processing except6a.obr parameters (1) expecting 10 *** FAILED ***
690[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6a.obr:23:19:error: '>' expected but 'T' found
691[info] IF i = 1 THEN
692[info] ^]
693[info] " was not equal to "[10]
694[info] " (ObrTests.scala:85)
695[info] - ObrExceptionsExec processing except6a.obr parameters (2) expecting 20 *** FAILED ***
696[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6a.obr:23:19:error: '>' expected but 'T' found
697[info] IF i = 1 THEN
698[info] ^]
699[info] " was not equal to "[20]
700[info] " (ObrTests.scala:85)
701[info] - ObrExceptionsExec processing except6a.obr parameters (3) expecting 30 *** FAILED ***
702[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6a.obr:23:19:error: '>' expected but 'T' found
703[info] IF i = 1 THEN
704[info] ^]
705[info] " was not equal to "[30]
706[info] " (ObrTests.scala:85)
707[info] - ObrExceptionsExec processing except6a.obr parameters (4) expecting -1 *** FAILED ***
708[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6a.obr:23:19:error: '>' expected but 'T' found
709[info] IF i = 1 THEN
710[info] ^]
711[info] " was not equal to "[-1]
712[info] " (ObrTests.scala:85)
713[info] - ObrExceptionsExec processing except6a.obr parameters (-10) expecting -1000 *** FAILED ***
714[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6a.obr:23:19:error: '>' expected but 'T' found
715[info] IF i = 1 THEN
716[info] ^]
717[info] " was not equal to "[-1000]
718[info] " (ObrTests.scala:85)
719[info] - ObrExceptionsExec processing except6a.obr parameters (10) expecting 1000 *** FAILED ***
720[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6a.obr:23:19:error: '>' expected but 'T' found
721[info] IF i = 1 THEN
722[info] ^]
723[info] " was not equal to "[1000]
724[info] " (ObrTests.scala:85)
725[info] - ObrExceptionsExec processing except6b.obr parameters (0) expecting -1 *** FAILED ***
726[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
727[info] IF i = 0 THEN
728[info] ^]
729[info] " was not equal to "[-1]
730[info] " (ObrTests.scala:85)
731[info] - ObrExceptionsExec processing except6b.obr parameters (1) expecting -4 *** FAILED ***
732[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
733[info] IF i = 0 THEN
734[info] ^]
735[info] " was not equal to "[-4]
736[info] " (ObrTests.scala:85)
737[info] - ObrExceptionsExec processing except6b.obr parameters (2) expecting -3 *** FAILED ***
738[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
739[info] IF i = 0 THEN
740[info] ^]
741[info] " was not equal to "[-3]
742[info] " (ObrTests.scala:85)
743[info] - ObrExceptionsExec processing except6b.obr parameters (3) expecting -2 *** FAILED ***
744[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
745[info] IF i = 0 THEN
746[info] ^]
747[info] " was not equal to "[-2]
748[info] " (ObrTests.scala:85)
749[info] - ObrExceptionsExec processing except6b.obr parameters (4) expecting -1 *** FAILED ***
750[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
751[info] IF i = 0 THEN
752[info] ^]
753[info] " was not equal to "[-1]
754[info] " (ObrTests.scala:85)
755[info] - ObrExceptionsExec processing except6b.obr parameters (5) expecting -4 *** FAILED ***
756[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
757[info] IF i = 0 THEN
758[info] ^]
759[info] " was not equal to "[-4]
760[info] " (ObrTests.scala:85)
761[info] - ObrExceptionsExec processing except6b.obr parameters (6) expecting -3 *** FAILED ***
762[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
763[info] IF i = 0 THEN
764[info] ^]
765[info] " was not equal to "[-3]
766[info] " (ObrTests.scala:85)
767[info] - ObrExceptionsExec processing except6b.obr parameters (7) expecting -1 *** FAILED ***
768[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
769[info] IF i = 0 THEN
770[info] ^]
771[info] " was not equal to "[-1]
772[info] " (ObrTests.scala:85)
773[info] - ObrExceptionsExec processing except6b.obr parameters (8) expecting 0 *** FAILED ***
774[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
775[info] IF i = 0 THEN
776[info] ^]
777[info] " was not equal to "[0]
778[info] " (ObrTests.scala:85)
779[info] - ObrExceptionsExec processing except6b.obr parameters (-152) expecting 0 *** FAILED ***
780[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6b.obr:23:12:error: '>' expected but 'T' found
781[info] IF i = 0 THEN
782[info] ^]
783[info] " was not equal to "[0]
784[info] " (ObrTests.scala:85)
785[info] - ObrExceptionsExec processing except6c.obr parameters (0) expecting 1 *** FAILED ***
786[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6c.obr:22:16:error: '>' expected but 'T' found
787[info] IF i = 0 THEN
788[info] ^]
789[info] " was not equal to "[1]
790[info] " (ObrTests.scala:85)
791[info] - ObrExceptionsExec processing except6c.obr parameters (5) expecting 500 *** FAILED ***
792[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except6c.obr:22:16:error: '>' expected but 'T' found
793[info] IF i = 0 THEN
794[info] ^]
795[info] " was not equal to "[500]
796[info] " (ObrTests.scala:85)
797[info] - ObrExceptionsExec processing except7a.obr parameters (0) expecting -2 *** FAILED ***
798[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except7a.obr:23:16:error: '>' expected but 'T' found
799[info] IF i = 0 THEN
800[info] ^]
801[info] " was not equal to "[-2]
802[info] " (ObrTests.scala:85)
803[info] - ObrExceptionsExec processing except7a.obr parameters (23) expecting 2300 *** FAILED ***
804[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except7a.obr:23:16:error: '>' expected but 'T' found
805[info] IF i = 0 THEN
806[info] ^]
807[info] " was not equal to "[2300]
808[info] " (ObrTests.scala:85)
809[info] - ObrExceptionsExec processing except7b.obr parameters (0) expecting 11 *** FAILED ***
810[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except7b.obr:25:15:error: '>' expected but 'T' found
811[info] IF i = 0 THEN
812[info] ^]
813[info] " was not equal to "[11]
814[info] " (ObrTests.scala:85)
815[info] - ObrExceptionsExec processing except7b.obr parameters (1) expecting 12 *** FAILED ***
816[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except7b.obr:25:15:error: '>' expected but 'T' found
817[info] IF i = 0 THEN
818[info] ^]
819[info] " was not equal to "[12]
820[info] " (ObrTests.scala:85)
821[info] - ObrExceptionsExec processing except7b.obr parameters (2) expecting 13 *** FAILED ***
822[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except7b.obr:25:15:error: '>' expected but 'T' found
823[info] IF i = 0 THEN
824[info] ^]
825[info] " was not equal to "[13]
826[info] " (ObrTests.scala:85)
827[info] - ObrExceptionsExec processing except7b.obr parameters (3) expecting 14 *** FAILED ***
828[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except7b.obr:25:15:error: '>' expected but 'T' found
829[info] IF i = 0 THEN
830[info] ^]
831[info] " was not equal to "[14]
832[info] " (ObrTests.scala:85)
833[info] - ObrExceptionsExec processing except7b.obr parameters (4) expecting -1 *** FAILED ***
834[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except7b.obr:25:15:error: '>' expected but 'T' found
835[info] IF i = 0 THEN
836[info] ^]
837[info] " was not equal to "[-1]
838[info] " (ObrTests.scala:85)
839[info] - ObrExceptionsExec processing except7b.obr parameters (10) expecting 0 *** FAILED ***
840[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except7b.obr:25:15:error: '>' expected but 'T' found
841[info] IF i = 0 THEN
842[info] ^]
843[info] " was not equal to "[0]
844[info] " (ObrTests.scala:85)
845[info] - ObrExceptionsExec processing except7b.obr parameters (-10) expecting 0 *** FAILED ***
846[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/codegen/except7b.obr:25:15:error: '>' expected but 'T' found
847[info] IF i = 0 THEN
848[info] ^]
849[info] " was not equal to "[0]
850[info] " (ObrTests.scala:85)
851[info] - ObrExceptionsExec processing outofbounds.obr parameters (0) expecting -400
852[info] - ObrExceptionsExec processing outofbounds.obr parameters (11) expecting -1
853[info] - ObrExceptionsExec processing outofbounds.obr parameters (1) expecting -200
854[info] - ObrExceptionsExec processing outofbounds.obr parameters (2) expecting 5000
855[info] - ObrExceptionsExec processing outofbounds.obr parameters (5) expecting 500
856[info] - ObrExceptionsExec processing outofbounds.obr parameters (8) expecting 178
857[info] A2aTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/drivers:
858[info] - Oberon0 testing A2a on base tests: -- emptybody.ob, expecting emptybody.out
859[info] - Oberon0 testing A2a on base tests: -- commentnoend.ob, expecting commentnoend.out
860[info] - Oberon0 testing A2a on base tests: -- emptymodule.ob, expecting emptymodule.out
861[info] - Oberon0 testing A2a on base tests: -- comment.ob, expecting comment.out
862[info] - Oberon0 testing A2a on base tests: -- keywordasname.ob, expecting keywordasname.out
863[info] - Oberon0 testing A2a on L0 tests: -- const.ob, expecting const.out
864[info] - Oberon0 testing A2a on L0 tests: -- selfref.ob, expecting selfref.out
865[info] - Oberon0 testing A2a on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
866[info] "* [errors
867[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
868[info] avar := answer - avar MOD 4;
869[info] ^]" was not equal to "* [_pp.ob
870[info] MODULE assign;
871[info]
872[info] CONST
873[info] answer = 42;
874[info] aconst1 = 1 + 42;
875[info] aconst2 = aconst1 * 2;
876[info]
877[info] VAR
878[info] avar, xvar : INTEGER;
879[info] bvar : BOOLEAN;
880[info]
881[info] BEGIN
882[info] avar := 10;
883[info] avar := answer - avar MOD 4;
884[info] avar := (answer + avar) * 4;
885[info] bvar := TRUE;
886[info] bvar := bvar OR bvar & FALSE
887[info] END assign.]" (CompilerTests.scala:149)
888[info] - Oberon0 testing A2a on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
889[info] - Oberon0 testing A2a on L0 tests: -- badassign.ob, expecting badassign.out
890[info] - Oberon0 testing A2a on L0 tests: -- type.ob, expecting type.out
891[info] - Oberon0 testing A2a on L0 tests: -- repeatsection.ob, expecting repeatsection.out
892[info] - Oberon0 testing A2a on L0 tests: -- redefinteger.ob, expecting redefinteger.out
893[info] - Oberon0 testing A2a on L0 tests: -- badeq.ob, expecting badeq.out
894[info] - Oberon0 testing A2a on L0 tests: -- typenodecl.ob, expecting typenodecl.out
895[info] - Oberon0 testing A2a on L0 tests: -- var.ob, expecting var.out
896[info] - Oberon0 testing A2a on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
897[info] - Oberon0 testing A2a on L0 tests: -- intoverflow.ob, expecting intoverflow.out
898[info] - Oberon0 testing A2a on L0 tests: -- redeftrue.ob, expecting redeftrue.out
899[info] - Oberon0 testing A2a on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
900[info] "* [errors
901[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
902[info] ivar1 := 2 + 3 * 4;
903[info] ^]" was not equal to "* [_pp.ob
904[info] MODULE simpleexps;
905[info]
906[info] VAR
907[info] ivar1, ivar2 : INTEGER;
908[info] bvar1, bvar2 : BOOLEAN;
909[info]
910[info] BEGIN
911[info] ivar1 := 0;
912[info] ivar1 := 12;
913[info] ivar1 := 345;
914[info] ivar1 := 67890123;
915[info] ivar1 := -0;
916[info] ivar1 := -1;
917[info] ivar2 := -782374;
918[info] ivar2 := --10;
919[info] ivar1 := ivar2 + 1;
920[info] ivar1 := 2 + ivar2;
921[info] ivar1 := ivar2 - ivar1;
922[info] ivar1 := 3 - ivar2;
923[info] ivar1 := ivar2 * 4;
924[info] ivar1 := 5 * ivar2;
925[info] ivar1 := ivar2 DIV 6;
926[info] ivar1 := (-7) DIV (ivar2 + 1);
927[info] ivar1 := ivar2 MOD ivar1;
928[info] ivar1 := 8 MOD (ivar2 + 1);
929[info] ivar1 := 2 + 3 * 4;
930[info] ivar1 := (2 + 3) * 4;
931[info] ivar1 := 2 - 3 DIV 4;
932[info] ivar1 := (2 - 3) DIV 4;
933[info] ivar1 := 2 + 3 MOD 4;
934[info] ivar1 := (2 + 3) MOD 4;
935[info] ivar1 := 2 + 3 + 4;
936[info] ivar1 := 2 + (3 + 4);
937[info] ivar1 := 2 - 3 - 4;
938[info] ivar1 := 2 - (3 - 4);
939[info] ivar1 := 2 * 3 * 4;
940[info] ivar1 := 2 * (3 * 4);
941[info] ivar1 := 2 MOD 3 MOD 4;
942[info] ivar1 := 2 MOD (3 MOD 4);
943[info] ivar1 := 2 DIV 3 DIV 4;
944[info] ivar1 := 2 DIV (4 DIV 4);
945[info] bvar1 := FALSE;
946[info] bvar1 := TRUE;
947[info] bvar1 := bvar1 OR bvar2;
948[info] bvar1 := bvar1 & bvar2;
949[info] bvar1 := FALSE OR FALSE & TRUE;
950[info] bvar1 := bvar1 & ~bvar2;
951[info] bvar1 := bvar1 OR bvar2 OR FALSE;
952[info] bvar1 := bvar1 OR bvar2 & FALSE;
953[info] bvar1 := bvar1 & (TRUE & bvar2);
954[info] bvar1 := ~TRUE;
955[info] bvar1 := ~bvar1 & bvar2;
956[info] bvar1 := ~~bvar1;
957[info] bvar1 := ivar1 = ivar2;
958[info] bvar1 := ivar1 # ivar2;
959[info] bvar1 := ivar1 < ivar2;
960[info] bvar1 := ivar1 <= ivar2;
961[info] bvar1 := ivar1 > ivar2;
962[info] bvar1 := ivar1 >= ivar2;
963[info] bvar1 := (ivar1 = ivar2) OR bvar2;
964[info] bvar1 := bvar2 & (ivar1 # ivar2)
965[info] END simpleexps.]" (CompilerTests.scala:149)
966[info] - Oberon0 testing A2a on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
967[info] - Oberon0 testing A2a on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
968[info] - Oberon0 testing A2a on L0 tests: -- keywordasname.ob, expecting keywordasname.out
969[info] - Oberon0 testing A2a on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
970[info] - Oberon0 testing A2a on L1 tests: -- badcond.ob, expecting badcond.out
971[info] - Oberon0 testing A2a on L1 tests: -- while.ob, expecting while.out
972[info] - Oberon0 testing A2a on L1 tests: -- condname.ob, expecting condname.out
973[info] - Oberon0 testing A2a on L1 tests: -- whilename.ob, expecting whilename.out
974[info] - Oberon0 testing A2a on L1 tests: -- badwhile.ob, expecting badwhile.out
975[info] - Oberon0 testing A2a on L1 tests: -- cond.ob, expecting cond.out
976[info] - Oberon0 testing A2a on L2 tests: -- casename.ob, expecting casename.out
977[info] - Oberon0 testing A2a on L2 tests: -- forname.ob, expecting forname.out
978[info] - Oberon0 testing A2a on L2 tests: -- case.ob, expecting case.out
979[info] - Oberon0 testing A2a on L2 tests: -- badcase.ob, expecting badcase.out
980[info] - Oberon0 testing A2a on L2 tests: -- badfor.ob, expecting badfor.out
981[info] - Oberon0 testing A2a on L2 tests: -- for.ob, expecting for.out
982[info] - Oberon0 testing A2a on L2 tests: -- lift.ob, expecting lift.out
983[info] - Oberon0 testing A2a on L2 tests: -- casenoclause.ob, expecting casenoclause.out
984[info] - Oberon0 testing A2a on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
985[info] - Oberon0 testing A2a on L3 tests: -- wrongprocedurename.ob, expecting wrongprocedurename.out
986[info] - Oberon0 testing A2a on L3 tests: -- nonlocalvar.ob, expecting nonlocalvar.out
987[info] - Oberon0 testing A2a on L3 tests: -- recurse.ob, expecting recurse.out
988[info] - Oberon0 testing A2a on L3 tests: -- gcd.ob, expecting gcd.out
989[info] - Oberon0 testing A2a on L3 tests: -- proc.ob, expecting proc.out
990[info] - Oberon0 testing A2a on L3 tests: -- factorial.ob, expecting factorial.out
991[info] - Oberon0 testing A2a on L3 tests: -- badproc.ob, expecting badproc.out
992[info] DynamicAttributionTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/attribution:
993[info] - dynamic attribution base works on Leafs
994[info] - dynamic attribution base defaults on Pairs
995[info] - dynamic attribute are re-evaluated when reset
996[info] - dynamic attribute can be extended and reduced manually
997[info] - dynamic attribute can be extended and reduced with a using operation
998[info] - using a dynamic attribute outside its domain raises an exception
999[info] - circularities are detected for dynamic attributes
1000[info] InterpreterTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/prolog:
1001[info] - queries that produce no results work
1002[info] - simple 'yes' queries work
1003[info] - queries with variables work
1004[info] LambdaTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/lambda:
1005[info] - an integer leaf evaluates to itself
1006[info] - a variable leaf evaluates to itself
1007[info] - a numeric parameter is passed and ignored
1008[info] - a numeric parameter is passed and substituted
1009[info] - recursive application works
1010[info] - another recursive application works
1011[info] - name capturing is avoided (1)
1012[info] - name capturing is avoided (2)
1013[info] - name capturing is avoided (3)
1014[info] - a function parameter is passed and ignored
1015[info] - a function parameter is passed and substituted
1016[info] - a variable is substituted at multiple levels
1017[info] - Church encodings of Booleans work
1018[info] - a syntactically invalid term produces a parse error
1019[info] RelationTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/relation:
1020[info] - apply of empty value-value relation is empty
1021[info] - apply of empty ref-value relation is empty
1022[info] - apply of empty value-ref relation is empty
1023[info] - apply of empty ref-ref relation is empty
1024[info] - apply of singleton value-value relation is correct (present)
1025[info] - apply of singleton value-value relation is empty (not present)
1026[info] - apply of singleton ref-value relation is correct (present)
1027[info] - apply of singleton ref-value relation is empty (not present)
1028[info] - apply of singleton value-ref relation is correct (present)
1029[info] - apply of singleton value-ref relation is empty (not present)
1030[info] - apply of singleton ref-ref relation is correct (present)
1031[info] - apply of singleton ref-ref relation is empty (not present)
1032[info] - apply of multiple element value-value relation is correct (present 1)
1033[info] - apply of multiple element value-value relation is correct (present 2)
1034[info] - apply of multiple element value-value relation is empty (not present)
1035[info] - apply of multiple element ref-value relation is correct (present)
1036[info] - apply of multiple element ref-value relation is empty (not present)
1037[info] - apply of multiple element value-ref relation is correct (present 1)
1038[info] - apply of multiple element value-ref relation is correct (present 2)
1039[info] - apply of multiple element ref-ref relation is correct (present)
1040[info] - apply of multiple element ref-ref relation is empty (not present)
1041[info] - apply of multiple element int-int relation is empty (present)
1042[info] - apply of multiple element int-int relation is empty (not present)
1043[info] - domain of singleton value-value relation contains its element
1044[info] - domain of singleton value-value relation doesn't contain a non-element
1045[info] - domain of singleton ref-value relation contains its element
1046[info] - domain of singleton ref-value relation doesn't contain a non-element
1047[info] - domain of singleton value-ref relation contains its element
1048[info] - domain of singleton value-ref relation doesn't contain a non-element
1049[info] - domain of singleton ref-ref relation contains its element
1050[info] - domain of singleton ref-ref relation doesn't contain a non-element
1051[info] - domain of multiple element value-value relation contains its first element
1052[info] - domain of multiple element value-value relation contains its second element
1053[info] - domain of multiple element value-value relation doesn't contain a non-element
1054[info] - domain of multiple element ref-value relation contains its first element
1055[info] - domain of multiple element ref-value relation contains its second element
1056[info] - domain of multiple element ref-value relation doesn't contain a non-element
1057[info] - domain of multiple element value-ref relation contains its first element
1058[info] - domain of multiple element value-ref relation contains its second element
1059[info] - domain of multiple element ref-ref relation contains its element
1060[info] - domain of multiple element ref-ref relation doesn't contain a non-element
1061[info] - domain of multiple element int-int relation contains its first element
1062[info] - domain of multiple element int-int relation contains its second element
1063[info] - domain of multiple element int-int relation contains its third element
1064[info] - domain of multiple element int-int relation doesn't contains a non-element
1065[info] - domain of empty value-value relation is empty
1066[info] - domain of empty ref-value relation is empty
1067[info] - domain of empty value-ref relation is empty
1068[info] - domain of empty ref-ref relation is empty
1069[info] - domain of singleton value-value relation is correct
1070[info] - domain of singleton ref-value relation is correct
1071[info] - domain of singleton value-ref relation is correct
1072[info] - domain of singleton ref-ref relation is correct
1073[info] - domain of multiple element value-value relation is correct
1074[info] - domain of multiple element ref-value relation is correct
1075[info] - domain of multiple element value-ref relation is correct
1076[info] - domain of multiple element ref-ref relation is correct
1077[info] - domain of multiple element int-int relation is correct
1078[info] - inverting an empty relation yields an empty relation
1079[info] - inverting a singleton relation yields the correct singleton relation
1080[info] - inverting a multiple relation yields the correct multiple relation
1081[info] - pairs of empty value-value relation is empty
1082[info] - pairs of empty ref-value relation is empty
1083[info] - pairs of empty value-ref relation is empty
1084[info] - pairs of empty ref-ref relation is empty
1085[info] - pairs of singleton value-value relation is correct
1086[info] - pairs of singleton ref-value relation is correct
1087[info] - pairs of singleton value-ref relation is correct
1088[info] - pairs of singleton ref-ref relation is correct
1089[info] - pairs of multiple element value-value relation is correct
1090[info] - pairs of multiple element ref-value relation is correct
1091[info] - pairs of multiple element value-ref relation is correct
1092[info] - pairs of multiple element ref-ref relation is correct
1093[info] - pairs of multiple element int-int relation is correct
1094[info] - range of empty value-value relation is empty
1095[info] - range of empty ref-value relation is empty
1096[info] - range of empty value-ref relation is empty
1097[info] - range of empty ref-ref relation is empty
1098[info] - range of singleton value-value relation is correct
1099[info] - range of singleton ref-value relation is correct
1100[info] - range of singleton value-ref relation is correct
1101[info] - range of singleton ref-ref relation is correct
1102[info] - range of multiple element value-value relation is correct
1103[info] - range of multiple element ref-value relation is correct
1104[info] - range of multiple element value-ref relation is correct
1105[info] - range of multiple element ref-ref relation is correct
1106[info] - range of multiple element int-int relation is correct
1107[info] - unapplySeq of empty value-value relation fails
1108[info] - unapplySeq of empty ref-value relation fails
1109[info] - unapplySeq of empty value-ref relation fails
1110[info] - unapplySeq of empty ref-ref relation fails
1111[info] - unapplySeq of singleton value-value relation is correct (present)
1112[info] - unapplySeq pair of singleton value-value relation is correct (present)
1113[info] - unapplySeq of singleton value-value relation fails (not present)
1114[info] - unapplySeq of singleton ref-value relation is correct (present)
1115[info] - unapplySeq pair of singleton ref-value relation doesn't produce equal but not eq value (present)
1116[info] - unapplySeq of singleton ref-value relation fails (not present)
1117[info] - unapplySeq of singleton value-ref relation is correct (present)
1118[info] - unapplySeq pair of singleton value-ref relation is correct (present)
1119[info] - unapplySeq of singleton value-ref relation fails (not present)
1120[info] - unapplySeq of singleton ref-ref relation is correct (present)
1121[info] - unapplySeq pair of singleton ref-ref relation is correct (present)
1122[info] - unapplySeq of singleton ref-ref relation fails (not present)
1123[info] - unapplySeq of multiple element value-value relation fails (multiple)
1124[info] - unapplySeq of multiple element value-value relation is correct (present)
1125[info] - unapplySeq pair of multiple element value-value relation is correct (present)
1126[info] - unapplySeq of multiple element value-value relation fails (not present)
1127[info] - unapplySeq of multiple element ref-value relation is correct (present)
1128[info] - unapplySeq pair of multiple element ref-value relation is correct (present)
1129[info] - unapplySeq of multiple element ref-value relation is correct (not present)
1130[info] - unapplySeq of multiple element value-ref relation fails (multiple)
1131[info] - unapplySeq of multiple element value-ref relation is correct (present)
1132[info] - unapplySeq pair of multiple element value-ref relation is correct (present)
1133[info] - unapplySeq of multiple element ref-ref relation is correct (multiple)
1134[info] - unapplySeq of multiple element ref-ref relation is correct (not present)
1135[info] - match of an empty relation gives nothing
1136[info] - match of a singleton relation suceeds with exactly one value (present)
1137[info] - pair match of a singleton relation suceeds with exactly one value (present)
1138[info] - match of a singleton relation gives nothing (not present)
1139[info] - match of a multiple relation gives multiple values (present)
1140[info] - pair match of a multiple relation gives multiple values (present)
1141[info] - match of a multiple relation fails (not present)
1142[info] OneOhOneTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/oneohonecompanies:
1143[info] - total of all salaries by rewriting - empty
1144[info] - total of all cut salaries by rewriting - empty
1145[info] - total of all salaries by attribution - empty
1146[info] - total of all cut salaries by attribution - empty
1147[info] - department depth - empty
1148[info] - salaries ordered - empty
1149[info] - total of all salaries by rewriting - onlymanager
1150[info] - total of all cut salaries by rewriting - onlymanager
1151[info] - total of all salaries by attribution - onlymanager
1152[info] - total of all cut salaries by attribution - onlymanager
1153[info] - department depth - onlymanager
1154[info] - salaries ordered - onlymanager
1155[info] - total of all salaries by rewriting - company
1156[info] - total of all cut salaries by rewriting - company
1157[info] - total of all salaries by attribution - company
1158[info] - total of research salaries by attribution - company
1159[info] - total of dev salaries by attribution - company
1160[info] - total of dev1 salaries by attribution - company
1161[info] - total of dev11 salaries by attribution - company
1162[info] - total of all cut salaries by attribution - company
1163[info] - average salary for company
1164[info] - average salary for research department
1165[info] - average salary for dev department
1166[info] - average salary for dev1 department
1167[info] - average salary for dev11 department
1168[info] - craig is above average
1169[info] - klaus is above average
1170[info] - joe is below average
1171[info] - department depth - company
1172[info] - salaries ordered - company
1173[info] - company employee count is correct
1174[info] - single employee count is correct
1175[info] - research department employee count is correct
1176[info] - dev department employee count is correct
1177[info] - dev1 department employee count is correct
1178[info] - dev11 department employee count is correct
1179[info] - salaries not ordered - employee
1180[info] - salaries not ordered - manager
1181[info] ErrorTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/picojava/tests:
1182[info] - semantic errors are correctly reported
1183[info] SemanticAnalyserTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/prolog:
1184[info] - Prolog: -- nametests.pl, expecting nametests.sem
1185[info] - Prolog: -- family.pl, expecting family.sem
1186[info] - Prolog: -- typeerror.pl, expecting typeerror.sem
1187[info] - Prolog: -- likes.pl, expecting likes.sem
1188[info] - Prolog: -- nameerror.pl, expecting nameerror.sem
1189[info] - Prolog: -- typetests.pl, expecting typetests.sem
1190[info] SourceTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/util:
1191[info] - dropCurrentPath drops current path correctly
1192[info] - dropCurrentPath drops partial current path correctly
1193[info] - dropCurrentPath doesn't drop non-current path (with sep)
1194[info] - dropCurrentPath doesn't drop non-current path (without sep)
1195[info] - dropPrefix copes with empty filename
1196[info] - dropPrefix correctly drops nothing if prefix is empty
1197[info] - dropPrefix correctly drops prefix that is there (1)
1198[info] - dropPrefix correctly drops prefix that is there (2)
1199[info] - dropPrefix correctly drops prefix that is whole filename
1200[info] - dropPrefix correctly ignores path that isn't there
1201[info] - dropPrefix correctly drops nothing if there is a partial common prefix (1)
1202[info] - dropPrefix correctly drops nothing if there is a partial common prefix (2)
1203[info] - dropPrefix correctly drops nothing if there is a partial common prefix (3)
1204[info] TIL2_3Tests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/til:
1205[info] - transform a program with many nested declarations *** FAILED ***
1206[info] "
1207[info] var d;
1208[info] d := 17;
1209[info] var r;
1210[info] r := 5;
1211[info] var y;
1212[info] read y;
1213[info] var z;
1214[info] read z;
1215[info] while y != 0 do
1216[info] var x;
1217[info] x := y + z;
1218[info] var a;
1219[info] a := 3;
1220[info] var j;
1221[info] j := 1;
1222[info] var b;
1223[info] while j != 100 do
1224[info] var k;
1225[info] k := a + z;
1226[info] b := j * z;
1227[info] d := (y + z) * d;
1228[info] var e;
1229[info] e := (x + z) * r;
1230[info] j := j + 1;
1231[info] end
1232[info] var c;
1233[info] c := a + y;
1234[info] var m;
1235[info] m := y * b;
1236[info] var n;
1237[info] n := r * y;
1238[info] write n;
1239[info] y := y - 1;
1240[info] end
1241[info] " Parse failure with message "'!=' expected but 'd' found" at 'd' (10,14)" (TIL2_3Tests.scala:76)
1242[info] BasicNameResolutionTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/picojava/tests:
1243[info] - bindings at the same nesting level are resolved
1244[info] - bindings at an outer nesting level are resolved
1245[info] - names can be declared after use
1246[info] - a missing declaration for a top-level use is detected
1247[info] - a missing declaration for a nested use is detected
1248[info] - a local shadowing binding is resolved
1249[info] LambdaTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/lambda3:
1250[info] - freshness evaluates correctly *** FAILED ***
1251[info] "e # (\f . f) (\g . e)" evaluated to "true" not expected "false" (LambdaTests.scala:83)
1252[info] - swapping evaluates correctly
1253[info] - alpha equivalence evaluates correctly *** FAILED ***
1254[info] "(\x . x) (\y. y) === (\a . a) (\b . b)" evaluated to "false" not expected "true" (LambdaTests.scala:117)
1255[info] - substitution evaluates correctly
1256[info] - free variables are calculated correctly *** FAILED ***
1257[info] "fv a b" evaluated to "Set(a)" not expected "Set(a, b)" (LambdaTests.scala:140)
1258[info] - basic evaluation works correctly *** FAILED ***
1259[info] "(\a . a c) (\b . b)" evaluated to "(c (\b . b))" not expected "c" (LambdaTests.scala:164)
1260[info] DataflowTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/dataflow:
1261[info] - succ - s1
1262[info] - succ - s2
1263[info] - succ - s3
1264[info] - succ - s4
1265[info] - succ - s41
1266[info] - succ - s411
1267[info] - succ - s412
1268[info] - succ - s5
1269[info] - in - s1
1270[info] - in - s2
1271[info] - in - s3
1272[info] - in - s4
1273[info] - in - s411
1274[info] - in - s412
1275[info] - in - s5
1276[info] - out - s1
1277[info] - out - s2
1278[info] - out - s3
1279[info] - out - s4
1280[info] - out - s411
1281[info] - out - s412
1282[info] - out - s412 (reset)
1283[info] - out - s5
1284[info] - Dataflow: -- test0.data, expecting test0.out
1285[info] - Dataflow: -- test1.data, expecting test1.out
1286[info] - Dataflow: -- test2.data, expecting test2.out
1287[info] - Dataflow: -- test3.data, expecting test3.out
1288[info] - Dataflow: -- test4.dataerr, expecting test4.err
1289[info] SyntaxAnalyserTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/minijava:
1290[info] - parsing an identifier of one letter works
1291[info] - parsing an identifier as an identifier works
1292[info] - parsing an identifier containing digits and underscores works
1293[info] - parsing an integer as an identifier gives an error
1294[info] - parsing a non-identifier as an identifier gives an error (digit)
1295[info] - parsing a non-identifier as an identifier gives an error (underscore)
1296[info] - parsing an integer of one digit as an integer works
1297[info] - parsing an integer as an integer works
1298[info] - parsing a non-integer as an integer gives an error
1299[info] - parsing an and expression produces the correct tree
1300[info] - parsing a less then expression produces the correct tree
1301[info] - parsing an addition expression produces the correct tree
1302[info] - parsing a subtraction expression produces the correct tree
1303[info] - parsing a multiplication expression produces the correct tree
1304[info] - parsing an index expression produces the correct tree
1305[info] - parsing a length expression produces the correct tree
1306[info] - parsing a method call expression produces the correct tree (no args)
1307[info] - parsing a method call expression produces the correct tree (one arg)
1308[info] - parsing a method call expression produces the correct tree (many args)
1309[info] - parsing an integer expression produces the correct tree
1310[info] - parsing a true expression produces the correct tree
1311[info] - parsing a false expression produces the correct tree
1312[info] - parsing a this expression produces the correct tree
1313[info] - parsing an identifier expression produces the correct tree
1314[info] - parsing a new array expression produces the correct tree
1315[info] - parsing a new expression produces the correct tree
1316[info] - parsing a not expression produces the correct tree
1317[info] - parsing a parenthesized expression produces the correct tree
1318[info] - two identifiers in a row are not a legal expression
1319[info] - && is left associative
1320[info] - + is left associative
1321[info] - - is left associative
1322[info] - * is left associative
1323[info] - < is not associative
1324[info] - parentheses override associativity
1325[info] - && has lower precedence than < (to left)
1326[info] - < has lower precedence than + (to left) *** FAILED ***
1327[info] Parse succeeded with "LessExp(IdnExp(IdnUse(a)),IdnExp(IdnUse(b)))" instead of expected "LessExp(IdnExp(IdnUse(a)),PlusExp(IdnExp(IdnUse(b)),IdnExp(IdnUse(c))))" at ' ' (1,6) (SyntaxAnalyserTests.scala:209)
1328[info] - < has lower precedence than - (to left) *** FAILED ***
1329[info] Parse succeeded with "LessExp(IdnExp(IdnUse(a)),IdnExp(IdnUse(b)))" instead of expected "LessExp(IdnExp(IdnUse(a)),MinusExp(IdnExp(IdnUse(b)),IdnExp(IdnUse(c))))" at ' ' (1,6) (SyntaxAnalyserTests.scala:215)
1330[info] - + has lower precedence than * (to left) *** FAILED ***
1331[info] Parse succeeded with "PlusExp(IdnExp(IdnUse(a)),IdnExp(IdnUse(b)))" instead of expected "PlusExp(IdnExp(IdnUse(a)),StarExp(IdnExp(IdnUse(b)),IdnExp(IdnUse(c))))" at ' ' (1,6) (SyntaxAnalyserTests.scala:221)
1332[info] - - has lower precedence than * (to left) *** FAILED ***
1333[info] Parse succeeded with "MinusExp(IdnExp(IdnUse(a)),IdnExp(IdnUse(b)))" instead of expected "MinusExp(IdnExp(IdnUse(a)),StarExp(IdnExp(IdnUse(b)),IdnExp(IdnUse(c))))" at ' ' (1,6) (SyntaxAnalyserTests.scala:227)
1334[info] - && has lower precedence than < (to right)
1335[info] - < has lower precedence than + (to right)
1336[info] - < has lower precedence than - (to right)
1337[info] - + has lower precedence than * (to right)
1338[info] - - has lower precedence than * (to right)
1339[info] - parentheses override precedence (to left)
1340[info] - parentheses override precedence (to right)
1341[info] - parsing a block produces the correct tree (no statement)
1342[info] - parsing a block produces the correct tree (one statement)
1343[info] - parsing a block produces the correct tree (many statements)
1344[info] - parsing an assignment statement produces the correct tree
1345[info] - parsing an if statement produces the correct tree
1346[info] - parsing a while statement produces the correct tree
1347[info] - parsing a println statement produces the correct tree
1348[info] - parsing a variable assignment statement produces the correct tree
1349[info] - parsing an array assignment statement produces the correct tree
1350[info] - a program with just a main class parses
1351[info] - a program with a main class and one normal class parses
1352[info] - a program with a main class and two normal classes parses
1353[info] - a main class parses correctly
1354[info] - a main class with more than one statement doesn't parse
1355[info] - a class with no extends clause, empty body parses
1356[info] - a class with an extends clause, empty body parses
1357[info] - a class with just a var declaration parses
1358[info] - a class with many var declarations parses
1359[info] - a class with just one method parses
1360[info] - a class with many methods parses
1361[info] - a class with many variable declarations and many methods parses
1362[info] - an integer variable declaration produces the correct tree
1363[info] - a Boolean variable declaration produces the correct tree
1364[info] - an integer array variable declaration produces the correct tree
1365[info] - a class variable declaration produces the correct tree
1366[info] - a method with an empty body does not parse
1367[info] - a method with just a return statement parses
1368[info] - a method with one variable declaration parses
1369[info] - a method with one statement parses
1370[info] - a method with mutliple variables and statements parses
1371[info] - a method with no arguments parses
1372[info] - a method with one argument parses
1373[info] - a method with many arguments parses
1374[info] - an empty argument list parses
1375[info] - a singleton argument list parses
1376[info] - an argument list with many arguments parses
1377[info] - a standalone node has no input text
1378[info] - input text from an identifier parse is the identifier
1379[info] - input text from an operator expression parse is correct
1380[info] - input text from a statement with comments is correct
1381[info] PrettyPrinterTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/minijava:
1382[info] - a simple MiniJava program pretty-prints with the correct positions using any
1383[info] - a simple MiniJava program pretty-prints with the correct positions using MiniJava pretty-printer
1384[info] SyntaxAnalyserTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/imperative:
1385[info] - an empty statement
1386[info] - an assignment statement parses correctly
1387[info] - a while statement parses correctly
1388[info] - an empty statement sequence parses correcrtly
1389[info] - a singleton statement sequence parses correcrtly
1390[info] - a non-empty statement sequence parses correcrtly
1391[info] - a combination expression parses correctly (assoc)
1392[info] - a combination expression parses correctly (prec left)
1393[info] - a combination expression parses correctly (prec right) *** FAILED ***
1394[info] Parse succeeded with "Add(Num(1.0),Num(2.0))" instead of expected "Add(Num(1.0),Mul(Num(2.0),Num(3.0)))" at ' ' (1,6) (SyntaxAnalyserTests.scala:64)
1395[info] - a combination expression parses correctly (paren override prec left)
1396[info] - a combination expression parses correctly (paren override right)
1397[info] - an addition expression parses correctly
1398[info] - a subtraction expression parses correctly
1399[info] - a multiplication expression parses correctly
1400[info] - a division expression parses correctly
1401[info] - a negation expression parses correctly
1402[info] - a double parses correctly
1403[info] - an integer parses correctly
1404[info] - a variable parses correctly
1405[info] - a keyword doesn't parse as an identifier
1406[info] PicoJavaTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/picojava/tests:
1407[info] - PicoJava: -- InheritanceNameResolutionTests.pj, expecting InheritanceNameResolutionTests.out
1408[info] - PicoJava: -- DotNameResolutionTests.pj, expecting DotNameResolutionTests.out
1409[info] - PicoJava: -- ObfuscationTest.pj, expecting ObfuscationTest.out
1410[info] - PicoJava: -- BasicNameResolutionTests.pj, expecting BasicNameResolutionTests.out
1411[info] - PicoJava: -- illegal.pj, expecting illegal.out
1412[info] - PicoJava: -- CombinedTests.pj, expecting CombinedTests.out
1413[info] - PicoJava: --obfuscate -- InheritanceNameResolutionTests.pj, expecting InheritanceNameResolutionTests.obsout
1414[info] - PicoJava: --obfuscate -- DotNameResolutionTests.pj, expecting DotNameResolutionTests.obsout
1415[info] - PicoJava: --obfuscate -- ObfuscationTest.pj, expecting ObfuscationTest.obsout
1416[info] - PicoJava: --obfuscate -- BasicNameResolutionTests.pj, expecting BasicNameResolutionTests.obsout
1417[info] - PicoJava: --obfuscate -- illegal.pj, expecting illegal.obsout
1418[info] - PicoJava: --obfuscate -- CombinedTests.pj, expecting CombinedTests.obsout
1419[info] PrologREPLTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/prolog:
1420[info] - Prolog REPL: --database family.pl -- basic.repl, expecting basic.replout
1421[info] SemanticAnalyserTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/grammar:
1422[info] - g1: has no semantic errors
1423[info] - g1: S is not nullable
1424[info] - g1: E is not nullable
1425[info] - g1: T is not nullable
1426[info] - g1: F is not nullable
1427[info] - g1: FIRST (S) is correct
1428[info] - g1: FIRST (E) is correct
1429[info] - g1: FIRST (T) is correct
1430[info] - g1: FIRST (F) is correct
1431[info] - g1: FOLLOW (S) is correct
1432[info] - g1: FOLLOW (E) is correct
1433[info] - g1: FOLLOW (T) is correct
1434[info] - g1: FOLLOW (F) is correct
1435[info] - g2: has no semantic errors
1436[info] - g2: S is not nullable
1437[info] - g2: E is not nullable
1438[info] - g2: Ep is nullable
1439[info] - g2: T is not nullable
1440[info] - g2: Tp is nullable
1441[info] - g2: F is not nullable
1442[info] - g2: FIRST (S) is correct
1443[info] - g2: FIRST (E) is correct
1444[info] - g2: FIRST (Ep) is correct
1445[info] - g2: FIRST (T) is correct
1446[info] - g2: FIRST (Tp) is correct
1447[info] - g2: FIRST (F) is correct
1448[info] - g2: FOLLOW (S) is correct
1449[info] - g2: FOLLOW (E) is correct
1450[info] - g2: FOLLOW (Ep) is correct
1451[info] - g2: FOLLOW (T) is correct
1452[info] - g2: FOLLOW (Tp) is correct
1453[info] - g2: FOLLOW (F) is correct
1454[info] - g3: has the expected semantic errors
1455[info] SemanticAnalyserTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/minijava:
1456[info] - two declarations of same class is an error
1457[info] - two declarations of same name in same class is an error
1458[info] - two declarations of same name in different scopes is ok
1459[info] - use of a name that is not declared is an error
1460[info] - use of a name that is declared in wrong scope is an error
1461[info] - an integer expression has integer type
1462[info] - a true expression has Boolean type
1463[info] - a false expression has Boolean type
1464[info] - a method name cannot be used in an expression
1465[info] - the condition of an if statement can have Boolean type
1466[info] - the condition of an if statement cannot have integer type
1467[info] - the condition of a while statement can have Boolean type
1468[info] - the condition of a while statement cannot have integer type
1469[info] - the expression in a println statement can be of Boolean type
1470[info] - the expression in a println statement can be of integer type
1471[info] - the expression in a println statement can be of integer array type
1472[info] - the expression in a println statement can be of reference type
1473[info] - a method name cannot be assigned to
1474[info] - an integer expression is assignment compatible with an integer var
1475[info] - a Boolean expression is not assignment compatible with an integer var
1476[info] - a Boolean expression is assignment compatible with a Boolean var
1477[info] - an integer expression is not assignment compatible with a Boolean var
1478[info] - an integer array expression is assignment compatible with an integer array var
1479[info] - an integer expression is not assignment compatible with an integer array var
1480[info] - integer expressions are ok in an integer array assignment
1481[info] - Boolean expressions are not ok in an integer array assignment
1482[info] - the children of a plus expression are allowed to be integers
1483[info] - the children of a plus expression must be integers and its type is integer
1484[info] - the children of an and expression are allowed to be Booleans
1485[info] - the children of an and expression must be Booelans and its type is Boolean
1486[info] - the child of a not expression is allowed to be Boolean
1487[info] - the child of a not expression must be Boolean and its type is Boolean
1488[info] - the children of a less-than expression are allowed to be integers
1489[info] - the children of a less-than expression must be integers and its type is Boolean
1490[info] - the child of a length expression is allowed to be an integer array
1491[info] - the child of a length expression must be an integer array and its type is integer
1492[info] - a non-method cannot be called
1493[info] - a superclass method can be called
1494[info] - the type of a method call expression is the method return type (1)
1495[info] - the type of a method call expression is the method return type (2)
1496[info] - the numbers of arguments in a call can match the declaration
1497[info] - the numbers of arguments in a call must match the declaration
1498[info] - the types of arguments in a call must match the declaration
1499[info] - forward references to methods work
1500[info] - the type of this is the current class
1501[info] - The type of a new array expression is an integer array
1502[info] - The type of the parameter in a new integer array expression must be an integer
1503[info] - The name used in a new expression must refer to a class
1504[info] - The type of a new expression is a reference to the created class
1505[info] - The return expression of a method can return the appropriate type
1506[info] - The return expression of a method cannot return an inappropriate type
1507[info] - A lowercase-starting class name produces an appropriate information message
1508[info] - The pretty-print of an environment at an expression contains the correct scopes
1509[info] DataflowForTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/dataflow:
1510[info] - in s1
1511[info] - in s2
1512[info] - in s3
1513[info] - in s4
1514[info] - in s411
1515[info] - in s412
1516[info] - in s5
1517[info] - out s1
1518[info] - out s2
1519[info] - out s3
1520[info] - out s4
1521[info] - out s411
1522[info] - out s412
1523[info] - out s5
1524[info] A4Tests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/drivers:
1525[info] - Oberon0 testing A4 on base tests: -- emptybody.ob, expecting emptybody.out
1526[info] - Oberon0 testing A4 on base tests: -- commentnoend.ob, expecting commentnoend.out
1527[info] - Oberon0 testing A4 on base tests: -- emptymodule.ob, expecting emptymodule.out
1528[info] - Oberon0 testing A4 on base tests: -- comment.ob, expecting comment.out
1529[info] - Oberon0 testing A4 on base tests: -- keywordasname.ob, expecting keywordasname.out
1530[info] - Oberon0 testing A4 on L0 tests: -- const.ob, expecting const.out
1531[info] - Oberon0 testing A4 on L0 tests: -- selfref.ob, expecting selfref.out
1532[info] - Oberon0 testing A4 on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
1533[info] "* [errors
1534[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
1535[info] avar := answer - avar MOD 4;
1536[info] ^]" was not equal to "* [_pp.ob
1537[info] MODULE assign;
1538[info]
1539[info] CONST
1540[info] answer = 42;
1541[info] aconst1 = 1 + 42;
1542[info] aconst2 = aconst1 * 2;
1543[info]
1544[info] VAR
1545[info] avar, xvar : INTEGER;
1546[info] bvar : BOOLEAN;
1547[info]
1548[info] BEGIN
1549[info] avar := 10;
1550[info] avar := answer - avar MOD 4;
1551[info] avar := (answer + avar) * 4;
1552[info] bvar := TRUE;
1553[info] bvar := bvar OR bvar & FALSE
1554[info] END assign.
1555[info] * c
1556[info] #include <stdio.h>
1557[info] int ob_answer2 = 42;
1558[info] int ob_aconst13 = 43;
1559[info] int ob_aconst24 = 86;
1560[info] int ob_avar5;
1561[info] int ob_xvar6;
1562[info] int ob_bvar7;
1563[info] int main (int argc, char *argv[0]) {
1564[info] ob_avar5 = 10;
1565[info] ob_avar5 = ob_answer2 - ob_avar5 % 4;
1566[info] ob_avar5 = (ob_answer2 + ob_avar5) * 4;
1567[info] ob_bvar7 = 1;
1568[info] ob_bvar7 = ob_bvar7 || ob_bvar7 && 0;
1569[info] return 0;
1570[info] }]" (CompilerTests.scala:149)
1571[info] - Oberon0 testing A4 on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
1572[info] - Oberon0 testing A4 on L0 tests: -- badassign.ob, expecting badassign.out
1573[info] - Oberon0 testing A4 on L0 tests: -- type.ob, expecting type.out
1574[info] - Oberon0 testing A4 on L0 tests: -- repeatsection.ob, expecting repeatsection.out
1575[info] - Oberon0 testing A4 on L0 tests: -- redefinteger.ob, expecting redefinteger.out
1576[info] - Oberon0 testing A4 on L0 tests: -- badeq.ob, expecting badeq.out
1577[info] - Oberon0 testing A4 on L0 tests: -- typenodecl.ob, expecting typenodecl.out
1578[info] - Oberon0 testing A4 on L0 tests: -- var.ob, expecting var.out
1579[info] - Oberon0 testing A4 on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
1580[info] - Oberon0 testing A4 on L0 tests: -- intoverflow.ob, expecting intoverflow.out
1581[info] - Oberon0 testing A4 on L0 tests: -- redeftrue.ob, expecting redeftrue.out
1582[info] - Oberon0 testing A4 on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
1583[info] "* [errors
1584[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
1585[info] ivar1 := 2 + 3 * 4;
1586[info] ^]" was not equal to "* [_pp.ob
1587[info] MODULE simpleexps;
1588[info]
1589[info] VAR
1590[info] ivar1, ivar2 : INTEGER;
1591[info] bvar1, bvar2 : BOOLEAN;
1592[info]
1593[info] BEGIN
1594[info] ivar1 := 0;
1595[info] ivar1 := 12;
1596[info] ivar1 := 345;
1597[info] ivar1 := 67890123;
1598[info] ivar1 := -0;
1599[info] ivar1 := -1;
1600[info] ivar2 := -782374;
1601[info] ivar2 := --10;
1602[info] ivar1 := ivar2 + 1;
1603[info] ivar1 := 2 + ivar2;
1604[info] ivar1 := ivar2 - ivar1;
1605[info] ivar1 := 3 - ivar2;
1606[info] ivar1 := ivar2 * 4;
1607[info] ivar1 := 5 * ivar2;
1608[info] ivar1 := ivar2 DIV 6;
1609[info] ivar1 := (-7) DIV (ivar2 + 1);
1610[info] ivar1 := ivar2 MOD ivar1;
1611[info] ivar1 := 8 MOD (ivar2 + 1);
1612[info] ivar1 := 2 + 3 * 4;
1613[info] ivar1 := (2 + 3) * 4;
1614[info] ivar1 := 2 - 3 DIV 4;
1615[info] ivar1 := (2 - 3) DIV 4;
1616[info] ivar1 := 2 + 3 MOD 4;
1617[info] ivar1 := (2 + 3) MOD 4;
1618[info] ivar1 := 2 + 3 + 4;
1619[info] ivar1 := 2 + (3 + 4);
1620[info] ivar1 := 2 - 3 - 4;
1621[info] ivar1 := 2 - (3 - 4);
1622[info] ivar1 := 2 * 3 * 4;
1623[info] ivar1 := 2 * (3 * 4);
1624[info] ivar1 := 2 MOD 3 MOD 4;
1625[info] ivar1 := 2 MOD (3 MOD 4);
1626[info] ivar1 := 2 DIV 3 DIV 4;
1627[info] ivar1 := 2 DIV (4 DIV 4);
1628[info] bvar1 := FALSE;
1629[info] bvar1 := TRUE;
1630[info] bvar1 := bvar1 OR bvar2;
1631[info] bvar1 := bvar1 & bvar2;
1632[info] bvar1 := FALSE OR FALSE & TRUE;
1633[info] bvar1 := bvar1 & ~bvar2;
1634[info] bvar1 := bvar1 OR bvar2 OR FALSE;
1635[info] bvar1 := bvar1 OR bvar2 & FALSE;
1636[info] bvar1 := bvar1 & (TRUE & bvar2);
1637[info] bvar1 := ~TRUE;
1638[info] bvar1 := ~bvar1 & bvar2;
1639[info] bvar1 := ~~bvar1;
1640[info] bvar1 := ivar1 = ivar2;
1641[info] bvar1 := ivar1 # ivar2;
1642[info] bvar1 := ivar1 < ivar2;
1643[info] bvar1 := ivar1 <= ivar2;
1644[info] bvar1 := ivar1 > ivar2;
1645[info] bvar1 := ivar1 >= ivar2;
1646[info] bvar1 := (ivar1 = ivar2) OR bvar2;
1647[info] bvar1 := bvar2 & (ivar1 # ivar2)
1648[info] END simpleexps.
1649[info] * c
1650[info] #include <stdio.h>
1651[info] int ob_ivar12;
1652[info] int ob_ivar23;
1653[info] int ob_bvar14;
1654[info] int ob_bvar25;
1655[info] int main (int argc, char *argv[0]) {
1656[info] ob_ivar12 = 0;
1657[info] ob_ivar12 = 12;
1658[info] ob_ivar12 = 345;
1659[info] ob_ivar12 = 67890123;
1660[info] ob_ivar12 = -0;
1661[info] ob_ivar12 = -1;
1662[info] ob_ivar23 = -782374;
1663[info] ob_ivar23 = -(-10);
1664[info] ob_ivar12 = ob_ivar23 + 1;
1665[info] ob_ivar12 = 2 + ob_ivar23;
1666[info] ob_ivar12 = ob_ivar23 - ob_ivar12;
1667[info] ob_ivar12 = 3 - ob_ivar23;
1668[info] ob_ivar12 = ob_ivar23 * 4;
1669[info] ob_ivar12 = 5 * ob_ivar23;
1670[info] ob_ivar12 = ob_ivar23 / 6;
1671[info] ob_ivar12 = -7 / (ob_ivar23 + 1);
1672[info] ob_ivar12 = ob_ivar23 % ob_ivar12;
1673[info] ob_ivar12 = 8 % (ob_ivar23 + 1);
1674[info] ob_ivar12 = 2 + 3 * 4;
1675[info] ob_ivar12 = (2 + 3) * 4;
1676[info] ob_ivar12 = 2 - 3 / 4;
1677[info] ob_ivar12 = (2 - 3) / 4;
1678[info] ob_ivar12 = 2 + 3 % 4;
1679[info] ob_ivar12 = (2 + 3) % 4;
1680[info] ob_ivar12 = 2 + 3 + 4;
1681[info] ob_ivar12 = 2 + (3 + 4);
1682[info] ob_ivar12 = 2 - 3 - 4;
1683[info] ob_ivar12 = 2 - (3 - 4);
1684[info] ob_ivar12 = 2 * 3 * 4;
1685[info] ob_ivar12 = 2 * (3 * 4);
1686[info] ob_ivar12 = 2 % 3 % 4;
1687[info] ob_ivar12 = 2 % (3 % 4);
1688[info] ob_ivar12 = 2 / 3 / 4;
1689[info] ob_ivar12 = 2 / (4 / 4);
1690[info] ob_bvar14 = 0;
1691[info] ob_bvar14 = 1;
1692[info] ob_bvar14 = ob_bvar14 || ob_bvar25;
1693[info] ob_bvar14 = ob_bvar14 && ob_bvar25;
1694[info] ob_bvar14 = 0 || 0 && 1;
1695[info] ob_bvar14 = ob_bvar14 && !ob_bvar25;
1696[info] ob_bvar14 = ob_bvar14 || ob_bvar25 || 0;
1697[info] ob_bvar14 = ob_bvar14 || ob_bvar25 && 0;
1698[info] ob_bvar14 = ob_bvar14 && (1 && ob_bvar25);
1699[info] ob_bvar14 = !1;
1700[info] ob_bvar14 = !ob_bvar14 && ob_bvar25;
1701[info] ob_bvar14 = !!ob_bvar14;
1702[info] ob_bvar14 = ob_ivar12 == ob_ivar23;
1703[info] ob_bvar14 = ob_ivar12 != ob_ivar23;
1704[info] ob_bvar14 = ob_ivar12 < ob_ivar23;
1705[info] ob_bvar14 = ob_ivar12 <= ob_ivar23;
1706[info] ob_bvar14 = ob_ivar12 > ob_ivar23;
1707[info] ob_bvar14 = ob_ivar12 >= ob_ivar23;
1708[info] ob_bvar14 = ob_ivar12 == ob_ivar23 || ob_bvar25;
1709[info] ob_bvar14 = ob_bvar25 && ob_ivar12 != ob_ivar23;
1710[info] return 0;
1711[info] }]" (CompilerTests.scala:149)
1712[info] - Oberon0 testing A4 on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
1713[info] - Oberon0 testing A4 on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
1714[info] - Oberon0 testing A4 on L0 tests: -- keywordasname.ob, expecting keywordasname.out
1715[info] - Oberon0 testing A4 on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
1716[info] - Oberon0 testing A4 on L1 tests: -- badcond.ob, expecting badcond.out
1717[info] - Oberon0 testing A4 on L1 tests: -- while.ob, expecting while.out
1718[info] - Oberon0 testing A4 on L1 tests: -- condname.ob, expecting condname.out
1719[info] - Oberon0 testing A4 on L1 tests: -- whilename.ob, expecting whilename.out
1720[info] - Oberon0 testing A4 on L1 tests: -- badwhile.ob, expecting badwhile.out
1721[info] - Oberon0 testing A4 on L1 tests: -- cond.ob, expecting cond.out
1722[info] - Oberon0 testing A4 on L2 tests: -- casename.ob, expecting casename.out
1723[info] - Oberon0 testing A4 on L2 tests: -- forname.ob, expecting forname.out
1724[info] - Oberon0 testing A4 on L2 tests: -- case.ob, expecting case.out
1725[info] - Oberon0 testing A4 on L2 tests: -- badcase.ob, expecting badcase.out
1726[info] - Oberon0 testing A4 on L2 tests: -- badfor.ob, expecting badfor.out
1727[info] - Oberon0 testing A4 on L2 tests: -- for.ob, expecting for.out
1728[info] - Oberon0 testing A4 on L2 tests: -- lift.ob, expecting lift.out
1729[info] - Oberon0 testing A4 on L2 tests: -- casenoclause.ob, expecting casenoclause.out
1730[info] - Oberon0 testing A4 on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
1731[info] - Oberon0 testing A4 on L3 tests: -- wrongprocedurename.ob, expecting wrongprocedurename.out
1732[info] - Oberon0 testing A4 on L3 tests: -- nonlocalvar.ob, expecting nonlocalvar.out
1733[info] - Oberon0 testing A4 on L3 tests: -- recurse.ob, expecting recurse.out
1734[info] - Oberon0 testing A4 on L3 tests: -- gcd.ob, expecting gcd.out
1735[info] - Oberon0 testing A4 on L3 tests: -- proc.ob, expecting proc.out
1736[info] - Oberon0 testing A4 on L3 tests: -- factorial.ob, expecting factorial.out
1737[info] - Oberon0 testing A4 on L3 tests: -- badproc.ob, expecting badproc.out
1738[info] - Oberon0 testing A4 on L4 tests: -- arrayname.ob, expecting arrayname.out
1739[info] - Oberon0 testing A4 on L4 tests: -- recordname.ob, expecting recordname.out
1740[info] - Oberon0 testing A4 on L4 tests: -- record.ob, expecting record.out
1741[info] - Oberon0 testing A4 on L4 tests: -- badarray.ob, expecting badarray.out
1742[info] - Oberon0 testing A4 on L4 tests: -- array.ob, expecting array.out
1743[info] - Oberon0 testing A4 on L4 tests: -- nominalarg.ob, expecting nominalarg.out
1744[info] - Oberon0 testing A4 on L4 tests: -- badarg.ob, expecting badarg.out
1745[info] - Oberon0 testing A4 on L4 tests: -- badrecord.ob, expecting badrecord.out
1746[info] ImperativeREPLTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/imperative:
1747[info] - Imperative REPL: -- basic.repl, expecting basic.replout *** FAILED ***
1748[info] "...um(10.0))
1749[info] a = 10.0;
1750[info] [1:15:error: '-' expected but ';' found
1751[info] a = a + 12.345;
1752[info] ^
1753[info] Asgn(Var("a"),Neg(Num(98.0)))
1754[info] a = (-98.0);
1755[info] 1:14:error: '-' expected but ';' found
1756[info] b = 1 + 2 + 3;
1757[info] ^
1758[info] 1:16:error: '-' expected but ';' found
1759[info] b = 1 - (2 - 3);
1760[info] ^
1761[info] 1:14:error: '/' expected but ';' found
1762[info] b = 1 + 2 * 3;
1763[info] ^
1764[info] Asgn(Var("b"),Mul(Add(Num(1.0),Num(2.0)),Num(3.0)))
1765[info] b = ((1.0 + 2.0) * 3.0);
1766[info] 1:14:error: '-' expected but ';' found
1767[info] b = 1 / 2 + 3;
1768[info] ^
1769[info] Asgn(Var("b"),Div(Num(1.0),Add(Num(2.0),Num(3.0))))
1770[info] b = (1.0 / (2.0 + 3.0));
1771[info] Seqn(Vector())
1772[info] { }
1773[info] Seqn(Vector(Asgn(Var("x"),Num(1.0))))
1774[info] { x = 1.0; }
1775[info] Seqn(Vector(Asgn(Var("x"),Num(1.0)), Asgn(Var("y"),Num(2.0))))
1776[info] { x = 1.0; y = 2.0; }
1777[info] While(Var("x"),Asgn(Var("a"),Num(1.0)))
1778[info] while (x) a = 1.0;
1779[info] 1:33:error: '-' expected but ';' found
1780[info] while (1 + x) { x = a; a = a + 1; }
1781[info] ^]
1782[info] While(Var("x"),Whil..." was not equal to "...um(10.0))
1783[info] a = 10.0;
1784[info] [Asgn(Var("a"),Add(Var("a"),Num(12.345)))
1785[info] a = (a + 12.345);
1786[info] Asgn(Var("a"),Neg(Num(98.0)))
1787[info] a = (-98.0);
1788[info] Asgn(Var("b"),Add(Add(Num(1.0),Num(2.0)),Num(3.0)))
1789[info] b = ((1.0 + 2.0) + 3.0);
1790[info] Asgn(Var("b"),Sub(Num(1.0),Sub(Num(2.0),Num(3.0))))
1791[info] b = (1.0 - (2.0 - 3.0));
1792[info] Asgn(Var("b"),Add(Num(1.0),Mul(Num(2.0),Num(3.0))))
1793[info] b = (1.0 + (2.0 * 3.0));
1794[info] Asgn(Var("b"),Mul(Add(Num(1.0),Num(2.0)),Num(3.0)))
1795[info] b = ((1.0 + 2.0) * 3.0);
1796[info] Asgn(Var("b"),Add(Div(Num(1.0),Num(2.0)),Num(3.0)))
1797[info] b = ((1.0 / 2.0) + 3.0);
1798[info] Asgn(Var("b"),Div(Num(1.0),Add(Num(2.0),Num(3.0))))
1799[info] b = (1.0 / (2.0 + 3.0));
1800[info] Seqn(Vector())
1801[info] { }
1802[info] Seqn(Vector(Asgn(Var("x"),Num(1.0))))
1803[info] { x = 1.0; }
1804[info] Seqn(Vector(Asgn(Var("x"),Num(1.0)), Asgn(Var("y"),Num(2.0))))
1805[info] { x = 1.0; y = 2.0; }
1806[info] While(Var("x"),Asgn(Var("a"),Num(1.0)))
1807[info] while (x) a = 1.0;
1808[info] While(Add(Num(1.0),Var("x")),Seqn(Vector(Asgn(Var("x"),Var("a")), Asgn(Var("a"),Add(Var("a"),Num(1.0))))))
1809[info] while ((1.0 + x)) { x = a; a = (a + 1.0); }]
1810[info] While(Var("x"),Whil..." (CompilerTests.scala:149)
1811[info] LambdaREPLTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/lambda3:
1812[info] - Lambda3 REPL: -- basic.repl, expecting basic.replout *** FAILED ***
1813[info] "...rue
1814[info] false
1815[info] a
1816[info] (c a)
1817[info] (([(\a . a) b) (\x . x))
1818[info] true
1819[info] true
1820[info] 1:39:error: '(' expected but end of source found
1821[info] (\x . x) (\y. y) === (\x . y) (\y . x)
1822[info] ^
1823[info] 1
1824[info] (\b0 . (\a1 . a1))
1825[info] Set()
1826[info] 1:12:error: '(' expected but end of source found
1827[info] fv \a . b c
1828[info] ^
1829[info] 1
1830[info] b]
1831[info] " was not equal to "...rue
1832[info] false
1833[info] a
1834[info] (c a)
1835[info] (([\a . (a b)) (\x . x))
1836[info] true
1837[info] true
1838[info] false
1839[info] 1
1840[info] (\b0 . (\a1 . a1))
1841[info] Set()
1842[info] Set(b, c)
1843[info] 1
1844[info] (\b2 . (b b2))]
1845[info] " (CompilerTests.scala:149)
1846[info] CompilerTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/util:
1847[info] - compiler driver produces an appropriate message if a file is not found
1848[info] - compiler driver produces an appropriate message if a command-line option is unknown
1849[info] - filetests using a directory that doesn't exist fails
1850[info] CodeGeneratorTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/minijava:
1851[info] - minijava code generation: -- binarysearch.mj, expecting binarysearch.out
1852[info] - minijava code generation: -- quicksort.mj, expecting quicksort.out
1853[info] - minijava code generation: -- linkedlist.mj, expecting linkedlist.out
1854[info] - minijava code generation: -- bubblesort.mj, expecting bubblesort.out
1855[info] - minijava code generation: -- iftrue.mj, expecting iftrue.out
1856[info] - minijava code generation: -- sub.mj, expecting sub.out
1857[info] - minijava code generation: -- andtruefalse.mj, expecting andtruefalse.out
1858[info] - minijava code generation: -- iffalse.mj, expecting iffalse.out
1859[info] - minijava code generation: -- linearsearch.mj, expecting linearsearch.out
1860[info] - minijava code generation: -- array.mj, expecting array.out
1861[info] - minijava code generation: -- andfalseloop.mj, expecting andfalseloop.out
1862[info] - minijava code generation: -- nottrue.mj, expecting nottrue.out
1863[info] - minijava code generation: -- whilemany.mj, expecting whilemany.out
1864[info] - minijava code generation: -- mul.mj, expecting mul.out
1865[info] - minijava code generation: -- whileone.mj, expecting whileone.out
1866[info] - minijava code generation: -- factorial.mj, expecting factorial.out
1867[info] - minijava code generation: -- whilezero.mj, expecting whilezero.out
1868[info] - minijava code generation: -- binarytree.mj, expecting binarytree.out
1869[info] - minijava code generation: -- andtruetrue.mj, expecting andtruetrue.out
1870[info] - minijava code generation: -- notfalse.mj, expecting notfalse.out
1871[info] - minijava code generation: -- arraylength.mj, expecting arraylength.out
1872[info] ObrSemanticTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests:
1873[info] - ObrSemanticEnum: -- enumerr2.obr, expecting enumerr2.out *** FAILED ***
1874[info] "...antic/enumerr2.obr:1[9:23:error: '>' expected but 'T' found
1875[info] IF Blue < Tuesday THEN
1876[info] ] ^
1877[info] " was not equal to "...antic/enumerr2.obr:1[2:18:error: expected enumeration CarColour type got enumeration WeekDays
1878[info] CarColour := Wednesday;
1879[info] ^
1880[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:15:5:error: illegal assignment
1881[info] Red := Blue;
1882[info] ^
1883[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:19:15:error: expected enumeration CarColour type got enumeration WeekDays
1884[info] IF Blue < Tuesday THEN
1885[info] ^
1886[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:24:8:error: expected integer or any enumeration type got boolean
1887[info] IF FALSE < TRUE THEN
1888[info] ^
1889[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:29:18:error: expected enumeration CarColour type got integer
1890[info] CarColour := 0;
1891[info] ^
1892[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:32:10:error: expected integer type got enumeration CarColour
1893[info] i := Red;
1894[info] ^
1895[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:35:18:error: expected integer type got enumeration CarColour
1896[info] CarColour := Red + Green;
1897[info] ^
1898[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:35:22:error: expected enumeration CarColour type got integer
1899[info] CarColour := Red + Green;
1900[info] ^
1901[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:35:24:error: expected integer type got enumeration CarColour
1902[info] CarColour := Red + Green;
1903[info] ^
1904[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:38:18:error: expected integer type got enumeration CarColour
1905[info] CarColour := Red + Monday;
1906[info] ^
1907[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:38:22:error: expected enumeration CarColour type got integer
1908[info] CarColour := Red + Monday;
1909[info] ^
1910[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:38:24:error: expected integer type got enumeration WeekDays
1911[info] CarColour := Red + Monday;
1912[info] ^
1913[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:41:10:error: expected integer type got enumeration CarColour
1914[info] i := Red + 1;
1915[info] ] ^
1916[info] " (CompilerTests.scala:149)
1917[info] - ObrSemanticEnum: -- enumok1.obr, expecting enumok1.out *** FAILED ***
1918[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumok1.obr:20:24:error: '>' expected but 'T' found
1919[info] IF CarColour = Red THEN
1920[info] ^
1921[info] ]" was not equal to "[]" (CompilerTests.scala:149)
1922[info] - ObrSemanticEnum: -- enumerr1.obr, expecting enumerr1.out
1923[info] - ObrSemanticException: -- excok1.obr, expecting excok1.out
1924[info] - ObrSemanticException: -- excok2.obr, expecting excok2.out *** FAILED ***
1925[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excok2.obr:17:16:error: '>' expected but 'T' found
1926[info] IF A < 0 THEN
1927[info] ^
1928[info] ]" was not equal to "[]" (CompilerTests.scala:149)
1929[info] - ObrSemanticException: -- excok3.obr, expecting excok3.out
1930[info] - ObrSemanticException: -- excerr1.obr, expecting excerr1.out
1931[info] - ObrSemanticException: -- excerr2.obr, expecting excerr2.out *** FAILED ***
1932[info] "...mantic/excerr2.obr:1[8:26:error: '>' expected but 'T' found
1933[info] IF FallOverALot > 10 THEN
1934[info] ] ^
1935[info] " was not equal to "...mantic/excerr2.obr:1[4:5:error: illegal assignment
1936[info] FallOverALot := 1;
1937[info] ^
1938[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:14:21:error: expected exception type got integer
1939[info] FallOverALot := 1;
1940[info] ^
1941[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:15:5:error: illegal assignment
1942[info] DivideByZero := 10;
1943[info] ^
1944[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:15:21:error: expected exception type got integer
1945[info] DivideByZero := 10;
1946[info] ^
1947[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:18:8:error: expected integer or any enumeration type got exception
1948[info] IF FallOverALot > 10 THEN
1949[info] ^
1950[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:19:14:error: expected integer type got exception
1951[info] i := DivideByZero + 1;
1952[info] ^
1953[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:23:5:error: raise parameter i must be an exception constant
1954[info] RAISE i;
1955[info] ^
1956[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:28:5:error: catch clause parameter j must be an exception constant
1957[info] CATCH j DO
1958[info] ^
1959[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:30:5:error: catch clause parameter i must be an exception constant
1960[info] CATCH i DO
1961[info] ^
1962[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:36:14:error: true is not declared
1963[info] i := true;
1964[info] ^
1965[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:38:9:error: illegal assignment
1966[info] FallOverALot := 1;
1967[info] ^
1968[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:38:25:error: expected exception type got integer
1969[info] FallOverALot := 1;
1970[info] ^
1971[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:40:18:error: expected integer type got exception
1972[info] i := j + DivideByZero;
1973[info] ] ^
1974[info] " (CompilerTests.scala:149)
1975[info] AttributionTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/attribution:
1976[info] - cached attributes are correctly evaluated
1977[info] - reset resets the hasBeenComputedAt state
1978[info] - hasBeenComputedAt returns false while an attribute is being evaluated
1979[info] - constant attributes are only evaluated once
1980[info] - cached attributes are re-evaluated after a reset
1981[info] - cached attributes are distinct for nodes that are equal
1982[info] - uncached attributes are evaluated each time
1983[info] - cached parameterised attributes work
1984[info] - cached parameterised attributes are re-evaluated after reset
1985[info] - cached parameterised attributes can be reset at specific keys
1986[info] - uncached parameterised attributes work
1987[info] - circularities are detected for cached attributes
1988[info] - circularities are detected for uncached attributes
1989[info] - circularities are detected for parameterised attributes
1990[info] - circularities are detected for uncached parameterised attributes
1991[info] - parameterised attribute keys compare correctly
1992[info] - a constant atRoot attribute returns the constant value
1993[info] - a variable atRoot attribute returns the value from the root
1994[info] - a down attribute with default function returns the computed value
1995[info] - a down attribute that is defined returns the computed value
1996[info] - a down attribute that is not defined returns the default value
1997[info] - a downErr attribute that is defined returns the computed value
1998[info] - a downErr attribute that is not defined throws an error
1999[info] - a downOpt attribute that is defined returns Some of the computed value
2000[info] - a downOpt attribute that is not defined returns None
2001[info] - a chain that is only defined at the root returns the root value
2002[info] - a chain with no updates throws appropriate exceptions
2003[info] - a circular attribute that never changes evaluates to initial value
2004[info] - two circular attributes that never change from initial value do converge
2005[info] - a directly circular attribute can count
2006[info] - a cycle of two circular attributes can count
2007[info] - a cycle of three circular attributes can count
2008[info] - a single circular attribute plus a cycle of two circular attributes can count
2009[info] - a single circular attribute plus a cycle of two trivial circular attributes converges
2010[info] - cached attribute definitions that throw exceptions reset evaluation status
2011[info] - cached parameterised attribute definitions that throw exceptions reset evaluation status
2012[info] - cached attribute thread safety (1 threads)
2013[info] - cached parameterised attribute thread safety (1 threads)
2014[info] - cached dynamic attribute thread safety (1 threads)
2015[info] - cached attribute thread safety (2 threads)
2016[info] - cached parameterised attribute thread safety (2 threads)
2017[info] - cached dynamic attribute thread safety (2 threads)
2018[info] - cached attribute thread safety (3 threads)
2019[info] - cached parameterised attribute thread safety (3 threads)
2020[info] - cached dynamic attribute thread safety (3 threads)
2021[info] - cached attribute thread safety (4 threads)
2022[info] - cached parameterised attribute thread safety (4 threads)
2023[info] - cached dynamic attribute thread safety (4 threads)
2024[info] - circular attribute thread safety (1 threads)
2025[info] - circular attribute thread safety (2 threads)
2026[info] - circular attribute thread safety (3 threads)
2027[info] - circular attribute thread safety (4 threads)
2028[info] LambdaREPLTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/lambda:
2029[info] - Lambda REPL: -- basic.repl, expecting basic.replout *** FAILED ***
2030[info] "1
2031[info] x
2032[info] (\x.x)
2033[info] 5
2034[info] (\x.x)
2035[info] [(4 (\x.x))
2036[info] 5
2037[info] (5 (\x.x))]
2038[info] " was not equal to "1
2039[info] x
2040[info] (\x.x)
2041[info] 5
2042[info] (\x.x)
2043[info] [4
2044[info] 5
2045[info] 5]
2046[info] " (CompilerTests.scala:149)
2047[info] TreeTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/relation:
2048[info] - child of leaf is empty (n1)
2049[info] - child of leaf is empty (n2)
2050[info] - child of leaf is empty (n3)
2051[info] - child of leaf is empty (v1)
2052[info] - child of leaf is empty (v2)
2053[info] - child of leaf is empty (v3)
2054[info] - child of leaf is empty (e4)
2055[info] - child of leaf is empty (s2)
2056[info] - child of interior node is its children (e1)
2057[info] - child of interior node is its children (e2)
2058[info] - child of interior node is its children (e3)
2059[info] - child of interior node is its children (s1)
2060[info] - child of interior node is its children (v3)
2061[info] - child of interior node is its children (s4)
2062[info] - child of Program ignores its non ImperativeTree fields
2063[info] - child of non-node throws an exception
2064[info] - firstChild of a leaf is not defined (n1)
2065[info] - firstChild of a leaf is not defined (n2)
2066[info] - firstChild of a leaf is not defined (n3)
2067[info] - firstChild of a leaf is not defined (v1)
2068[info] - firstChild of a leaf is not defined (v2)
2069[info] - firstChild of a leaf is not defined (v3)
2070[info] - firstChild of a leaf is not defined (e4)
2071[info] - firstChild of a leaf is not defined (s2)
2072[info] - firstChild of a node with children is correct (e1)
2073[info] - firstChild of a node with children is correct (e2)
2074[info] - firstChild of a node with children is correct (e3)
2075[info] - firstChild of a node with children is correct (s1)
2076[info] - firstChild of a node with children is correct (s3)
2077[info] - firstChild of a node with children is correct (s4)
2078[info] - firstChild of a node with a list component is correct
2079[info] - firstChild of non-node throws an exception
2080[info] - index of root is zero (p)
2081[info] - index of first child is zero (n1)
2082[info] - index of first child is zero (e1)
2083[info] - index of first child is zero (n3)
2084[info] - index of first child is zero (v2)
2085[info] - index of first child is zero (v3)
2086[info] - index of first child is zero (e4)
2087[info] - index of first child is zero (s1)
2088[info] - index of second child is one (n2)
2089[info] - index of second child is one (v1)
2090[info] - index of second child is one (e2)
2091[info] - index of second child is one (e3)
2092[info] - index of second child is one (s3)
2093[info] - index of second child is one (s2)
2094[info] - index of third child is two (s4)
2095[info] - index of fourth child is three (s5)
2096[info] - index of nulls(0) is 4
2097[info] - index of nulls(1) is 5
2098[info] - index of nulls(2) is 6
2099[info] - index of nulls(3) is 7
2100[info] - index of nulls(4) is 8
2101[info] - index of nulls(5) is 9
2102[info] - index of nulls(6) is 10
2103[info] - index of nulls(7) is 11
2104[info] - index of nulls(8) is 12
2105[info] - index of nulls(9) is 13
2106[info] - index of nulls(10) is 14
2107[info] - index of nulls(11) is 15
2108[info] - index of nulls(12) is 16
2109[info] - index of nulls(13) is 17
2110[info] - index of nulls(14) is 18
2111[info] - index of nulls(15) is 19
2112[info] - index of nulls(16) is 20
2113[info] - index of nulls(17) is 21
2114[info] - index of nulls(18) is 22
2115[info] - index of nulls(19) is 23
2116[info] - index of nulls(20) is 24
2117[info] - index of nulls(21) is 25
2118[info] - index of nulls(22) is 26
2119[info] - index of nulls(23) is 27
2120[info] - index of non-node throws an exception
2121[info] - indexFromEnd of root is zero (p)
2122[info] - indexFromEnd of second-last child is one (n1)
2123[info] - indexFromEnd of second-last child is one (e1)
2124[info] - indexFromEnd of last child is zero (n3)
2125[info] - indexFromEnd of second-last child is one (v2)
2126[info] - indexFromEnd of second-last child is one (v3)
2127[info] - indexFromEnd of second-last child is one (e4)
2128[info] - indexFromEnd of first sequence child is twenty-seven (s1)
2129[info] - indexFromEnd of last child is zero (n2)
2130[info] - indexFromEnd of last child is zero (v1)
2131[info] - indexFromEnd of last child is zero (e2)
2132[info] - indexFromEnd of last child is zero (e3)
2133[info] - indexFromEnd of last child is zero (s3)
2134[info] - indexFromEnd of second sequence child is twenty-six (s2)
2135[info] - indexFromEnd of third sequence child is twenty-five (s4)
2136[info] - indexFromEnd of fourth sequence child is twenty-four (s5)
2137[info] - indexFromEnd of nulls(0) is 23
2138[info] - indexFromEnd of nulls(1) is 22
2139[info] - indexFromEnd of nulls(2) is 21
2140[info] - indexFromEnd of nulls(3) is 20
2141[info] - indexFromEnd of nulls(4) is 19
2142[info] - indexFromEnd of nulls(5) is 18
2143[info] - indexFromEnd of nulls(6) is 17
2144[info] - indexFromEnd of nulls(7) is 16
2145[info] - indexFromEnd of nulls(8) is 15
2146[info] - indexFromEnd of nulls(9) is 14
2147[info] - indexFromEnd of nulls(10) is 13
2148[info] - indexFromEnd of nulls(11) is 12
2149[info] - indexFromEnd of nulls(12) is 11
2150[info] - indexFromEnd of nulls(13) is 10
2151[info] - indexFromEnd of nulls(14) is 9
2152[info] - indexFromEnd of nulls(15) is 8
2153[info] - indexFromEnd of nulls(16) is 7
2154[info] - indexFromEnd of nulls(17) is 6
2155[info] - indexFromEnd of nulls(18) is 5
2156[info] - indexFromEnd of nulls(19) is 4
2157[info] - indexFromEnd of nulls(20) is 3
2158[info] - indexFromEnd of nulls(21) is 2
2159[info] - indexFromEnd of nulls(22) is 1
2160[info] - indexFromEnd of nulls(23) is 0
2161[info] - indexFromEnd of non-node throws an exception
2162[info] - isLeaf returns true for a leaf
2163[info] - isLeaf returns false for a non-leaf
2164[info] - isFirst returns true for root
2165[info] - isFirst returns true for a first child
2166[info] - isFirst returns false for a non-first child
2167[info] - isFirst throws an exception for an unrelated node
2168[info] - isLast returns true for root
2169[info] - isLast returns true for a last child
2170[info] - isLast returns false for a non-last child
2171[info] - isLast throws an exception for an unrelated node
2172[info] - isRoot returns true for the root
2173[info] - isRoot returns false for a non-root node
2174[info] - isRoot throws an exception for an unrelated node
2175[info] - lastChild of a leaf is not defined (n1)
2176[info] - lastChild of a leaf is not defined (n2)
2177[info] - lastChild of a leaf is not defined (n3)
2178[info] - lastChild of a leaf is not defined (v1)
2179[info] - lastChild of a leaf is not defined (v2)
2180[info] - lastChild of a leaf is not defined (v3)
2181[info] - lastChild of a leaf is not defined (e4)
2182[info] - lastChild of a leaf is not defined (s2)
2183[info] - lastChild of a node with children is correct (e1)
2184[info] - lastChild of a node with children is correct (e2)
2185[info] - lastChild of a node with children is correct (e3)
2186[info] - lastChild of a node with children is correct (s1)
2187[info] - lastChild of a node with children is correct (s3)
2188[info] - lastChild of a node with children is correct (s4)
2189[info] - lastChild of a node with a list component is correct
2190[info] - lastChild of non-node throws an exception
2191[info] - next of root is not defined
2192[info] - next of a last child is not defined (n2)
2193[info] - next of a last child is not defined (v1)
2194[info] - next of a last child is not defined (n3)
2195[info] - next of a last child is not defined (e2)
2196[info] - next of a last child is not defined (e3)
2197[info] - next of a last child is not defined (s3)
2198[info] - next of a last child is not defined (nulls(23))
2199[info] - next of a non-last child is correct (n1)
2200[info] - next of a non-last child is correct (e1)
2201[info] - next of a non-last child is correct (v2)
2202[info] - next of a non-last child is correct (v3)
2203[info] - next of a non-last child is correct (e4)
2204[info] - next of a non-last child is correct (s1)
2205[info] - next of a non-last child is correct (s2)
2206[info] - next of a non-last child is correct (s4)
2207[info] - next of nulls(0) is nulls(1)
2208[info] - next of nulls(1) is nulls(2)
2209[info] - next of nulls(2) is nulls(3)
2210[info] - next of nulls(3) is nulls(4)
2211[info] - next of nulls(4) is nulls(5)
2212[info] - next of nulls(5) is nulls(6)
2213[info] - next of nulls(6) is nulls(7)
2214[info] - next of nulls(7) is nulls(8)
2215[info] - next of nulls(8) is nulls(9)
2216[info] - next of nulls(9) is nulls(10)
2217[info] - next of nulls(10) is nulls(11)
2218[info] - next of nulls(11) is nulls(12)
2219[info] - next of nulls(12) is nulls(13)
2220[info] - next of nulls(13) is nulls(14)
2221[info] - next of nulls(14) is nulls(15)
2222[info] - next of nulls(15) is nulls(16)
2223[info] - next of nulls(16) is nulls(17)
2224[info] - next of nulls(17) is nulls(18)
2225[info] - next of nulls(18) is nulls(19)
2226[info] - next of nulls(19) is nulls(20)
2227[info] - next of nulls(20) is nulls(21)
2228[info] - next of nulls(21) is nulls(22)
2229[info] - next of nulls(22) is nulls(23)
2230[info] - next of non-node throws an exception
2231[info] - parent of root is not defined
2232[info] - parent of leaf is its parent (n1)
2233[info] - parent of leaf is its parent (n2)
2234[info] - parent of leaf is its parent (n3)
2235[info] - parent of leaf is its parent (v1)
2236[info] - parent of leaf is its parent (v2)
2237[info] - parent of leaf is its parent (v3)
2238[info] - parent of leaf is its parent (e4)
2239[info] - parent of interior node is its parent (e1)
2240[info] - parent of interior node is its parent (e2)
2241[info] - parent of interior node is its parent (e3)
2242[info] - parent of interior node is its parent (e4)
2243[info] - parent of interior node is its parent (s3)
2244[info] - parent of node in Program is the program (s1)
2245[info] - parent of node in Program is the program (s2)
2246[info] - parent of node in Program is the program (s4)
2247[info] - parent of node in Program is the program (s5)
2248[info] - parent of node in Option field of Program is the program
2249[info] - parent of node after Option field of Program is the program
2250[info] - parent of node in Left field of Program is the program
2251[info] - parent of node in Right field of Program is the program
2252[info] - parent of node after Either fields of Program is the program
2253[info] - parent of node in tuple 1 of Program is the program
2254[info] - parent of node in tuple 2 of Program is the program (first)
2255[info] - parent of node in tuple 2 of Program is the program (second)
2256[info] - parent of node in tuple 3 of Program is the program (first)
2257[info] - parent of node in tuple 3 of Program is the program (second)
2258[info] - parent of node in tuple 3 of Program is the program (third)
2259[info] - parent of node in tuple 4 of Program is the program (first)
2260[info] - parent of node in tuple 4 of Program is the program (second)
2261[info] - parent of node in tuple 4 of Program is the program (third)
2262[info] - parent of node in tuple 4 of Program is the program (fourth)
2263[info] - parent of node after tuple 4 field of Program is the program
2264[info] - parent of node in list of Somes of Program is the program (first)
2265[info] - parent of node in list of Somes of Program is the program (second)
2266[info] - parent of middle field of Program is the program
2267[info] - parent of node in Vector field of Program is the program (first)
2268[info] - parent of node in Vector field of Program is the program (second)
2269[info] - parent of node in Vector field of Program is the program (third)
2270[info] - parent of node in Map field of Program is the program (first)
2271[info] - parent of node in Map field of Program is the program (second)
2272[info] - parent of non-node throws an exception
2273[info] - prev of root is not defined
2274[info] - prev of a first child is not defined (n1)
2275[info] - prev of a first child is not defined (e1)
2276[info] - prev of a first child is not defined (n3)
2277[info] - prev of a first child is not defined (v2)
2278[info] - prev of a first child is not defined (v3)
2279[info] - prev of a first child is not defined (e4)
2280[info] - prev of a first child is not defined (s1)
2281[info] - prev of a non-first child is correct (n2)
2282[info] - prev of a non-first child is correct (v1)
2283[info] - prev of a non-first child is correct (e2)
2284[info] - prev of a non-first child is correct (e3)
2285[info] - prev of a non-first child is correct (s3)
2286[info] - prev of a non-first child is correct (s2)
2287[info] - prev of a non-first child is correct (s4)
2288[info] - prev of a non-first child is correct (s5)
2289[info] - prev of a nulls(0) is correct
2290[info] - prev of nulls(1) is nulls(0)
2291[info] - prev of nulls(2) is nulls(1)
2292[info] - prev of nulls(3) is nulls(2)
2293[info] - prev of nulls(4) is nulls(3)
2294[info] - prev of nulls(5) is nulls(4)
2295[info] - prev of nulls(6) is nulls(5)
2296[info] - prev of nulls(7) is nulls(6)
2297[info] - prev of nulls(8) is nulls(7)
2298[info] - prev of nulls(9) is nulls(8)
2299[info] - prev of nulls(10) is nulls(9)
2300[info] - prev of nulls(11) is nulls(10)
2301[info] - prev of nulls(12) is nulls(11)
2302[info] - prev of nulls(13) is nulls(12)
2303[info] - prev of nulls(14) is nulls(13)
2304[info] - prev of nulls(15) is nulls(14)
2305[info] - prev of nulls(16) is nulls(15)
2306[info] - prev of nulls(17) is nulls(16)
2307[info] - prev of nulls(18) is nulls(17)
2308[info] - prev of nulls(19) is nulls(18)
2309[info] - prev of nulls(20) is nulls(19)
2310[info] - prev of nulls(21) is nulls(20)
2311[info] - prev of nulls(22) is nulls(21)
2312[info] - prev of nulls(23) is nulls(22)
2313[info] - prev of non-node throws an exception
2314[info] - root has itself as a sibling (sibling relation)
2315[info] - an only child has itself as a sibling (sibling relation) (n3)
2316[info] - a child of a normal node has the expected siblings (sibling relation) (n1)
2317[info] - a child of a normal node has the expected siblings (sibling relation) (n2)
2318[info] - a child of a normal node has the expected siblings (sibling relation) (e1)
2319[info] - a child of a normal node has the expected siblings (sibling relation) (e2)
2320[info] - a child of a normal node has the expected siblings (sibling relation) (v2)
2321[info] - a child of a normal node has the expected siblings (sibling relation) (e3)
2322[info] - a child of a normal node has the expected siblings (sibling relation) (v3)
2323[info] - a child of a normal node has the expected siblings (sibling relation) (e4)
2324[info] - a child of a normal node has the expected siblings (sibling relation) (s3)
2325[info] - a child of a node with a list component has the expected siblings (sibling relation) (s1
2326[info] - a child of a node with a list component has the expected siblings (sibling relation) (s2)
2327[info] - a child of a node with a list component has the expected siblings (sibling relation) (sibling relation) (s4)
2328[info] - a child of a node with a list component has the expected siblings (sibling relation) (s5)
2329[info] - sibling of non-node throws an exception (sibling relation)
2330[info] - CheckTree of a tree structure doesn't throw a StructureIsNotATreeException
2331[info] - CheckTree of a non-tree structure throws a StructureIsNotATreeException
2332[info] - EnsureTree of a tree structure doesn't change the structure
2333[info] - EnsureTree of a non-tree structure should make the structure into a tree
2334[info] UniplateTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/rewriting:
2335[info] - collection of variable references: direct style
2336[info] - singleton collection of variable references: indirect style
2337[info] - singleton collection of variable references: indirect style on sets and lists
2338[info] - all collection of variable references: indirect style
2339[info] - all collection of variable references: indirect style on sets and lists
2340[info] - search for division by zero
2341[info] - arithmetic simplification
2342[info] - remove double negations
2343[info] - reciprocal division to multiplication conversion
2344[info] - unique variable renaming
2345[info] - calculate expression depth
2346[info] - variable renaming
2347[info] - optimisation of integer addition
2348[info] ParenPrettyPrinterTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/output:
2349[info] - pretty-printing a lower priority postop on the left of a left assoc infix doesn't use parens
2350[info] - pretty-printing a higher priority postop on the left of an infix doesn't use parens
2351[info] - pretty-printing a lower priority preop on the left of an infix uses parens
2352[info] - pretty-printing a higher priority preop on the left of an infix doesn't use parens
2353[info] - pretty-printing a lower priority postop on the right of an infix uses parens
2354[info] - pretty-printing a higher priority postop on the right of an infix doesn't use parens
2355[info] - pretty-printing a lower priority preop on the right of an infix doesn't use parens
2356[info] - pretty-printing a higher priority preop on the right of an infix doesn't use parens
2357[info] - pretty-printing a lower priority postop on the left of a right assoc infix doesn't use parens
2358[info] - pretty-printing a higher priority postop on the left of a right assoc infix doesn't use parens
2359[info] - pretty-printing a lower priority preop on the left of a right assoc infix uses parens
2360[info] - pretty-printing a higher priority preop on the left of a right assoc infix doesn't use parens
2361[info] - pretty-printing a lower priority postop on the right of a right assoc infix uses parens
2362[info] - pretty-printing a higher priority postop on the right of a right assoc infix doesn't use parens
2363[info] - pretty-printing a lower priority preop on the right of a right assoc infix doesn't use parens
2364[info] - pretty-printing a higher priority preop on the right of a right assoc infix doesn't use parens
2365[info] - pretty-printing a lower-priority right assoc infix on the right of a right assoc infix uses parens
2366[info] - pretty-printing an equal priority right assoc infix on the right of a right assoc infix doesn't use parens
2367[info] - pretty-printing a higher-priority right assoc infix on the right of a right assoc infix doesn't use parens
2368[info] - pretty-printing a lower-priority right assoc infix on the right of a left assoc infix uses parens
2369[info] - pretty-printing an equal priority right assoc infix on the right of a left assoc infix uses parens
2370[info] - pretty-printing a higher-priority right assoc infix on the right of a left assoc infix doesn't use parens
2371[info] - pretty-printing a lower-priority right assoc infix on the right of a non assoc infix uses parens
2372[info] - pretty-printing an equal priority right assoc infix on the right of a non assoc infix uses parens
2373[info] - pretty-printing a higher-priority right assoc infix on the right of a non assoc infix doesn't use parens
2374[info] - pretty-printing a lower-priority left assoc infix on the right of a right assoc infix uses parens
2375[info] - pretty-printing an equal priority left assoc infix on the right of a right assoc infix uses parens
2376[info] - pretty-printing a higher-priority left assoc infix on the right of a right assoc infix doesn't use parens
2377[info] - pretty-printing a lower-priority left assoc infix on the right of a left assoc infix uses parens
2378[info] - pretty-printing an equal priority left assoc infix on the right of a left assoc infix uses parens
2379[info] - pretty-printing a higher-priority left assoc infix on the right of a left assoc infix doesn't use parens
2380[info] - pretty-printing a lower-priority left assoc infix on the right of a non assoc infix uses parens
2381[info] - pretty-printing an equal priority left assoc infix on the right of a non assoc infix uses parens
2382[info] - pretty-printing a higher-priority left assoc infix on the right of a non assoc infix doesn't use parens
2383[info] - pretty-printing a lower-priority non assoc infix on the right of a right assoc infix uses parens
2384[info] - pretty-printing an equal priority non assoc infix on the right of a right assoc infix uses parens
2385[info] - pretty-printing a higher-priority non assoc infix on the right of a right assoc infix doesn't use parens
2386[info] - pretty-printing a lower-priority non assoc infix on the right of a left assoc infix uses parens
2387[info] - pretty-printing an equal priority non assoc infix on the right of a left assoc infix uses parens
2388[info] - pretty-printing a higher-priority non assoc infix on the right of a left assoc infix doesn't use parens
2389[info] - pretty-printing a lower-priority non assoc infix on the right of a non assoc infix uses parens
2390[info] - pretty-printing an equal priority non assoc infix on the right of a non assoc infix uses parens
2391[info] - pretty-printing a higher-priority non assoc infix on the right of a non assoc infix doesn't use parens
2392[info] - pretty-printing a lower-priority right assoc infix on the left of a right assoc infix uses parens
2393[info] - pretty-printing an equal priority right assoc infix on the left of a right assoc infix uses parens
2394[info] - pretty-printing a higher-priority right assoc infix on the left of a right assoc infix doesn't use parens
2395[info] - pretty-printing a lower-priority right assoc infix on the left of a left assoc infix uses parens
2396[info] - pretty-printing an equal priority right assoc infix on the left of a left assoc infix uses parens
2397[info] - pretty-printing a higher-priority right assoc infix on the left of a left assoc infix doesn't use parens
2398[info] - pretty-printing a lower-priority right assoc infix on the left of a non assoc infix uses parens
2399[info] - pretty-printing an equal priority right assoc infix on the left of a non assoc infix uses parens
2400[info] - pretty-printing a higher-priority right assoc infix on the left of a non assoc infix doesn't use parens
2401[info] - pretty-printing a lower-priority left assoc infix on the left of a right assoc infix uses parens
2402[info] - pretty-printing an equal priority left assoc infix on the left of a right assoc infix uses parens
2403[info] - pretty-printing a higher-priority left assoc infix on the left of a right assoc infix doesn't use parens
2404[info] - pretty-printing a lower-priority left assoc infix on the left of a left assoc infix uses parens
2405[info] - pretty-printing an equal priority left assoc infix on the left of a left assoc infix doesn't use parens
2406[info] - pretty-printing a higher-priority left assoc infix on the left of a left assoc infix doesn't use parens
2407[info] - pretty-printing a lower-priority left assoc infix on the left of a non assoc infix uses parens
2408[info] - pretty-printing an equal priority left assoc infix on the left of a non assoc infix uses parens
2409[info] - pretty-printing a higher-priority left assoc infix on the left of a non assoc infix doesn't use parens
2410[info] - pretty-printing a lower-priority non assoc infix on the left of a right assoc infix uses parens
2411[info] - pretty-printing an equal priority non assoc infix on the left of a right assoc infix uses parens
2412[info] - pretty-printing a higher-priority non assoc infix on the left of a right assoc infix doesn't use parens
2413[info] - pretty-printing a lower-priority non assoc infix on the left of a left assoc infix uses parens
2414[info] - pretty-printing an equal priority non assoc infix on the left of a left assoc infix uses parens
2415[info] - pretty-printing a higher-priority non assoc infix on the left of a left assoc infix doesn't use parens
2416[info] - pretty-printing a lower-priority non assoc infix on the left of a non assoc infix uses parens
2417[info] - pretty-printing an equal priority non assoc infix on the left of a non assoc infix uses parens
2418[info] - pretty-printing a higher-priority non assoc infix on the left of a non assoc infix doesn't use parens
2419[info] - pretty-printing a lower-priority right assoc nary infix on left of a right assoc infix uses parens
2420[info] - pretty-printing an equal priority right assoc nary infix on left of a right assoc infix uses parens
2421[info] - pretty-printing a higher-priority right assoc nary infix on left of a right assoc infix doesn't use parens
2422[info] - pretty-printing a lower-priority right assoc nary infix on left of a left assoc infix uses parens
2423[info] - pretty-printing an equal priority right assoc nary infix on left of a left assoc infix uses parens
2424[info] - pretty-printing a higher-priority right assoc nary infix on left of a left assoc infix doesn't use parens
2425[info] - pretty-printing a lower-priority right assoc nary infix on left of a non assoc infix uses parens
2426[info] - pretty-printing an equal priority right assoc nary infix on left of a non assoc infix uses parens
2427[info] - pretty-printing a higher-priority right assoc nary infix on left of a non assoc infix doesn't use parens
2428[info] - pretty-printing a lower-priority right assoc nary infix on right of a right assoc infix uses parens
2429[info] - pretty-printing an equal priority right assoc nary infix on right of a right assoc infix doesn't use parens
2430[info] - pretty-printing a higher-priority right assoc nary infix on right of a right assoc infix doesn't use parens
2431[info] - pretty-printing a lower-priority right assoc nary infix on right of a left assoc infix uses parens
2432[info] - pretty-printing an equal priority right assoc nary infix on right of a left assoc infix uses parens
2433[info] - pretty-printing a higher-priority right assoc nary infix on right of a left assoc infix doesn't use parens
2434[info] - pretty-printing a lower-priority right assoc nary infix on right of a non assoc infix uses parens
2435[info] - pretty-printing an equal priority right assoc nary infix on right of a non assoc infix uses parens
2436[info] - pretty-printing a higher-priority right assoc nary infix on right of a non assoc infix doesn't use parens
2437[info] - pretty-printing a lower-priority left assoc nary infix on left of a right assoc infix uses parens
2438[info] - pretty-printing an equal priority left assoc nary infix on left of a right assoc infix uses parens
2439[info] - pretty-printing a higher-priority left assoc nary infix on left of a right assoc infix doesn't use parens
2440[info] - pretty-printing a lower-priority left assoc nary infix on left of a left assoc infix uses parens
2441[info] - pretty-printing an equal priority left assoc nary infix on left of a left assoc infix doesn't use parens
2442[info] - pretty-printing a higher-priority left assoc nary infix on left of a left assoc infix doesn't use parens
2443[info] - pretty-printing a lower-priority left assoc nary infix on left of a non assoc infix uses parens
2444[info] - pretty-printing an equal priority left assoc nary infix on left of a non assoc infix uses parens
2445[info] - pretty-printing a higher-priority left assoc nary infix on left of a non assoc infix doesn't use parens
2446[info] - pretty-printing a lower-priority left assoc nary infix on right of a right assoc infix uses parens
2447[info] - pretty-printing an equal priority left assoc nary infix on right of a right assoc infix uses parens
2448[info] - pretty-printing a higher-priority left assoc nary infix on right of a right assoc infix doesn't use parens
2449[info] - pretty-printing a lower-priority left assoc nary infix on right of a left assoc infix uses parens
2450[info] - pretty-printing an equal priority left assoc nary infix on right of a left assoc infix uses parens
2451[info] - pretty-printing a higher-priority left assoc nary infix on right of a left assoc infix doesn't use parens
2452[info] - pretty-printing a lower-priority left assoc nary infix on right of a non assoc infix uses parens
2453[info] - pretty-printing an equal priority left assoc nary infix on right of a non assoc infix uses parens
2454[info] - pretty-printing a higher-priority left assoc nary infix on right of a non assoc infix doesn't use parens
2455[info] - pretty-printing a lower-priority non assoc nary infix on left of a right assoc infix uses parens
2456[info] - pretty-printing an equal priority non assoc nary infix on left of a right assoc infix uses parens
2457[info] - pretty-printing a higher-priority non assoc nary infix on left of a right assoc infix doesn't use parens
2458[info] - pretty-printing a lower-priority non assoc nary infix on left of a left assoc infix uses parens
2459[info] - pretty-printing an equal priority non assoc nary infix on left of a left assoc infix uses parens
2460[info] - pretty-printing a higher-priority non assoc nary infix on left of a left assoc infix doesn't use parens
2461[info] - pretty-printing a lower-priority non assoc nary infix on left of a non assoc infix uses parens
2462[info] - pretty-printing an equal priority non assoc nary infix on left of a non assoc infix uses parens
2463[info] - pretty-printing a higher-priority non assoc nary infix on left of a non assoc infix doesn't use parens
2464[info] - pretty-printing a lower-priority non assoc nary infix on right of a right assoc infix uses parens
2465[info] - pretty-printing an equal priority non assoc nary infix on right of a right assoc infix uses parens
2466[info] - pretty-printing a higher-priority non assoc nary infix on right of a right assoc infix doesn't use parens
2467[info] - pretty-printing a lower-priority non assoc nary infix on right of a left assoc infix uses parens
2468[info] - pretty-printing an equal priority non assoc nary infix on right of a left assoc infix uses parens
2469[info] - pretty-printing a higher-priority non assoc nary infix on right of a left assoc infix doesn't use parens
2470[info] - pretty-printing a lower-priority non assoc nary infix on right of a non assoc infix uses parens
2471[info] - pretty-printing an equal priority non assoc nary infix on right of a non assoc infix uses parens
2472[info] - pretty-printing a higher-priority non assoc nary infix on right of a non assoc infix doesn't use parens
2473[info] - pretty-printing a lower priority postop on the right of an nary infix uses parens
2474[info] - pretty-printing a higher priority postop on the right of an nary infix doesn't use parens
2475[info] - pretty-printing a lower priority preop on the left of an nary infix uses parens
2476[info] - pretty-printing a higher priority postop on the left of an nary infix doesn't use parens
2477[info] ObrNumberingTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests:
2478[info] - ObrNumbering processing except8.obr
2479[info] - ObrNumbering processing enumtest2.obr
2480[info] RepminTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/repmin:
2481[info] - repmin actually reps and mins (traditional)
2482[info] - repmin actually reps and mins (decorator)
2483[info] ClonerTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/rewriting:
2484[info] - deep cloning a term gives an equal but not eq term
2485[info] - deep cloning a term containing a sequence works
2486[info] - lazy cloning a term with no sharing gives that term
2487[info] - lazy cloning a term with sharing clones the shared sub-term
2488[info] LambdaREPLTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/lambda2:
2489[info] - Lambda2 REPL: -- mech.repl, expecting mech.replout
2490[info] - Lambda2 REPL: -- basic.repl, expecting basic.replout
2491[info] SyntaxAnalyserTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/json:
2492[info] - parsing true works
2493[info] - parsing false works
2494[info] - parsing null works
2495[info] - parsing a single digit integer works (0)
2496[info] - parsing a single digit integer works (4)
2497[info] - parsing a single digit integer works (-7)
2498[info] - parsing a single digit integer works (-9)
2499[info] - parsing a non-trivial integer works (78)
2500[info] - parsing a non-trivial integer works (-123)
2501[info] - parsing a non-trivial integer works (793223)
2502[info] - parsing non-numbers as numbers fails (x)
2503[info] - parsing non-numbers as numbers fails (Eugene)
2504[info] - parsing non-numbers as numbers fails (paren)
2505[info] - parsing a floating point number without exponent works (0.9)
2506[info] - parsing a floating point number without exponent works (-1.4)
2507[info] - parsing a floating point number without exponent works (42.09)
2508[info] - parsing a floating point number without exponent works (1234.5678)
2509[info] - parsing a floating point number without decimal part but with exponent works (0e5)
2510[info] - parsing a floating point number without decimal part but with exponent works (-4e+3)
2511[info] - parsing a floating point number without decimal part but with exponent works (73e-6)
2512[info] - parsing a floating point number with decimal part and exponent works (8.5e2)
2513[info] - parsing a floating point number with decimal part and exponent works (-0.7e-5)
2514[info] - parsing a floating point number with decimal part and exponent works (96.0001e+13)
2515[info] - parsing a number with leading zeros doesn't work (00)
2516[info] - parsing a number with leading zeros doesn't work (000)
2517[info] - parsing a number with leading zeros doesn't work (01)
2518[info] - parsing a number with leading zeros doesn't work (000.1)
2519[info] - empty string parses
2520[info] - simple string parses
2521[info] - empty array parses
2522[info] - single element array parses
2523[info] - multiple element array parses
2524[info] - nested array parses
2525[info] - object inside array parses
2526[info] - empty object parses
2527[info] - single pair object parses
2528[info] - multiple pair object parses
2529[info] - nested object parses
2530[info] - array inside object parses
2531[info] TIL2_2Tests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/til:
2532[info] - transform a single for loop
2533[info] - transform nested for loops
2534[info] MachineTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/machine:
2535[info] - new state is undefined
2536[info] - asking for the value of undefined state gives an error
2537[info] - state can be made undefined
2538[info] - undefined state is not equal to anything
2539[info] - defined state is only equal to its value
2540[info] - undefined state toStrings to a special message
2541[info] - defined state toStrings to its value
2542[info] - state updates trigger suitable debug messages
2543[info] - multiple consistent state updates are allowed
2544[info] - inconsistent state updates in differents steps are allowed
2545[info] - inconsistent state updates in one step trigger an exception
2546[info] - new parameterised state is undefined
2547[info] - asking for the value of undefined parameterised state gives an error
2548[info] - asking for the value of parameterised state at an undefined value gives an error
2549[info] - parameterised state can be made undefined
2550[info] - undefined parameterised state is not equal to anything
2551[info] - defined parameterised state is only equal to its value
2552[info] - parameterised state updates trigger suitable debug messages
2553[info] - multiple consistent parameterised state updates are allowed
2554[info] - inconsistent parameterised state updates in different steps are allowed
2555[info] - inconsistent parameterised state updates in one step trigger an exception
2556[info] - running multiple steps produces a suitable trace
2557[info] FiltersTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/output:
2558[info] - keepMaxChars can handle empty string
2559[info] - keepMaxLines can handle empty string
2560[info] - keepMaxWords can handle empty string
2561[info] - keepMaxChars can handle zero count
2562[info] - keepMaxChars can handle count in first line
2563[info] - keepMaxChars can handle count in an inner line
2564[info] - keepMaxChars can handle count after end
2565[info] - keepMaxLines can handle zero count
2566[info] - keepMaxLines can handle one count
2567[info] - keepMaxLines can handle an inner count
2568[info] - keepMaxLines can handle count after end
2569[info] - keepMaxWords can handle zero count
2570[info] - keepMaxWords can handle count in first line
2571[info] - keepMaxWords can handle count in an inner line
2572[info] - keepMaxWords can handle count after end
2573[info] - keepMaxIndent with indent of zero replaces all
2574[info] - keepMaxIndent with indent of one keeps just top-level lines
2575[info] - keepMaxIndent with indent of two keeps just top-level lines
2576[info] - keepMaxIndent with indent of two and FIXME insertion works
2577[info] - keepMaxIndent with indent of three keeps top two levels
2578[info] - keepMaxIndent with indent of four keeps top two levels
2579[info] - keepMaxIndent with indent of five keeps everything
2580[info] ObrParserTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests:
2581[info] - ObrParserEnum: -- enumok3.obr, expecting enumok3.out
2582[info] - ObrParserEnum: -- enumok4.obr, expecting enumok4.out
2583[info] - ObrParserEnum: -- enumok2.obr, expecting enumok2.out
2584[info] - ObrParserEnum: -- enumerr3b.obr, expecting enumerr3b.out
2585[info] - ObrParserEnum: -- enumerr1a.obr, expecting enumerr1a.out
2586[info] - ObrParserEnum: -- enumerr2.obr, expecting enumerr2.out
2587[info] - ObrParserEnum: -- enumok1.obr, expecting enumok1.out
2588[info] - ObrParserEnum: -- enumerr3a.obr, expecting enumerr3a.out
2589[info] - ObrParserEnum: -- enumerr1b.obr, expecting enumerr1b.out
2590[info] - ObrParserException: -- exerr4a.obr, expecting exerr4a.out
2591[info] - ObrParserException: -- excok6.obr, expecting excok6.out
2592[info] - ObrParserException: -- excok1.obr, expecting excok1.out
2593[info] - ObrParserException: -- excok4.obr, expecting excok4.out *** FAILED ***
2594[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/parser/excok4.obr:9:16:error: '>' expected but 'T' found
2595[info] IF A < 0 THEN
2596[info] ^]
2597[info] " was not equal to "[ObrInt(ExcOk4,Vector(IntParam(IdnDef(i))),Vector(TryStmt(TryBody(Vector(AssignStmt(IdnExp(IdnUse(A)),SlashExp(IdnExp(IdnUse(B)),IdnExp(IdnUse(C)))), IfStmt(LessExp(IdnExp(IdnUse(A)),IntExp(0)),Vector(RaiseStmt(IdnUse(NegativeError))),Vector()))),Vector(Catch(IdnUse(NegativeError),Vector(WhileStmt(NotEqualExp(IdnExp(IdnUse(A)),IdnExp(IdnUse(C))),Vector(AssignStmt(IdnExp(IdnUse(A)),PlusExp(IdnExp(IdnUse(A)),IntExp(1))))))), Catch(IdnUse(DivideByZero),Vector(AssignStmt(IdnExp(IdnUse(A)),IntExp(1)), AssignStmt(IdnExp(IdnUse(B)),MinusExp(IdnExp(IdnUse(C)),IdnExp(IdnUse(A))))))))),ExcOk4)]
2598[info] " (CompilerTests.scala:149)
2599[info] - ObrParserException: -- excok2.obr, expecting excok2.out
2600[info] - ObrParserException: -- excok3.obr, expecting excok3.out
2601[info] - ObrParserException: -- exerr4b.obr, expecting exerr4b.out *** FAILED ***
2602[info] ".../parser/exerr4b.obr:[9:16:error: '>' expected but 'T' found
2603[info] IF A < 0 THEN
2604[info] ] ^
2605[info] " was not equal to ".../parser/exerr4b.obr:[16:17:error: ':=' expected but 'D' found
2606[info] DivideByZero DO
2607[info] ] ^
2608[info] " (CompilerTests.scala:149)
2609[info] - ObrParserException: -- excok5.obr, expecting excok5.out
2610[info] - ObrParserException: -- exerr2.obr, expecting exerr2.out
2611[info] - ObrParserException: -- exerr3.obr, expecting exerr3.out
2612[info] - ObrParserException: -- exerr1.obr, expecting exerr1.out
2613[info] SyntaxAnalyserTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/picojava/tests:
2614[info] - parse identifier: single letter
2615[info] - parse identifier: multiple letter
2616[info] - parse identifier: letter and digit
2617[info] - parse identifier: mixed letter and digit
2618[info] - parse identifier: multiple mixed letter and digit
2619[info] - parse after line comment
2620[info] - generate errors for invalid tokens: leading underscore
2621[info] - generate errors for invalid tokens: digit
2622[info] - generate errors for invalid tokens: leading digit
2623[info] - generate errors for invalid tokens: C-style comment
2624[info] - parse an empty block
2625[info] - generate a parse error for an empty program
2626[info] - generate a parse error for a semi-colon only program
2627[info] - parse an empty class declaration
2628[info] - parse an empty class declaration with an extends clause
2629[info] - generate a parse error for a class declaration with a qualified extends clause
2630[info] - parse a nested class
2631[info] - parse a variable declaration with a simple type
2632[info] - parse a variable declaration with a qualified type
2633[info] - generate an error for a qualified variable declaration
2634[info] - parse a simple assignment statement
2635[info] - parse an assignment statement with a qualified left-hand side
2636[info] - parse an assignment statement with a qualified right-hand side
2637[info] - parse a while statement
2638[info] - generate an error for a while statement with a block body
2639[info] InheritanceNameResolutionTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/picojava/tests:
2640[info] - members are resolved in nested classes
2641[info] - nested members shadow outer members
2642[info] - class names are resolved in extends clauses
2643[info] - inherited members are resolved
2644[info] - local members hide inherited ones
2645[info] - inherited inner classes are resolved
2646[info] - inner references to members of outer class are resolved
2647[info] - inner references to inherited members of outer class are resolved
2648[info] - inherited members shadow outer occurrences of the same name
2649[info] JSONTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/json:
2650[info] - JSON: -- array.json, expecting array.out
2651[info] - JSON: -- skating.json, expecting skating.out
2652[info] - JSON: -- small.json, expecting small.out
2653[info] - JSON: -- 101comp.json, expecting 101comp.out
2654[info] - JSON: -- test.json, expecting test.out
2655[info] ParsersTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/parsing:
2656[info] - arity 2 case class contructors can be used as parser actions
2657[info] - arity 3 case class contructors can be used as parser actions
2658[info] - arity 4 case class contructors can be used as parser actions
2659[info] - arity 5 case class contructors can be used as parser actions
2660[info] - arity 6 case class contructors can be used as parser actions
2661[info] - arity 2 tuples can be created by parsers without explicit actions
2662[info] - arity 3 tuples can be created by parsers without explicit actions
2663[info] - arity 4 tuples can be created by parsers without explicit actions
2664[info] - arity 5 tuples can be created by parsers without explicit actions
2665[info] - arity 6 tuples can be created by parsers without explicit actions
2666[info] - normal sequence interacts properly with alternation
2667[info] - non-backtracking sequence interacts properly with alternation
2668[info] - non-backtracking sequence operator properly cuts
2669[info] - cut sequence operator properly cuts inside repetition
2670[info] - cut-based time parsers work in isolation
2671[info] - cut nested in time parsers propagate outwards
2672[info] - nocut successfully supresses nested cut in time parsers
2673[info] - error parser combinator skips whitespace and gives correct error
2674[info] - failure parser combinator skips whitespace and gives correct failure
2675[info] - keywords parser works if whitespace is after the keyword
2676[info] - keywords parser works if EOI is after the keyword
2677[info] - keywords parser fails if keyword is just a prefix of input
2678[info] A2bTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/drivers:
2679[info] - Oberon0 testing A2b on base tests: -- emptybody.ob, expecting emptybody.out
2680[info] - Oberon0 testing A2b on base tests: -- commentnoend.ob, expecting commentnoend.out
2681[info] - Oberon0 testing A2b on base tests: -- emptymodule.ob, expecting emptymodule.out
2682[info] - Oberon0 testing A2b on base tests: -- comment.ob, expecting comment.out
2683[info] - Oberon0 testing A2b on base tests: -- keywordasname.ob, expecting keywordasname.out
2684[info] - Oberon0 testing A2b on L0 tests: -- const.ob, expecting const.out
2685[info] - Oberon0 testing A2b on L0 tests: -- selfref.ob, expecting selfref.out
2686[info] - Oberon0 testing A2b on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
2687[info] "* [errors
2688[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
2689[info] avar := answer - avar MOD 4;
2690[info] ^]" was not equal to "* [_pp.ob
2691[info] MODULE assign;
2692[info]
2693[info] CONST
2694[info] answer = 42;
2695[info] aconst1 = 1 + 42;
2696[info] aconst2 = aconst1 * 2;
2697[info]
2698[info] VAR
2699[info] avar, xvar : INTEGER;
2700[info] bvar : BOOLEAN;
2701[info]
2702[info] BEGIN
2703[info] avar := 10;
2704[info] avar := answer - avar MOD 4;
2705[info] avar := (answer + avar) * 4;
2706[info] bvar := TRUE;
2707[info] bvar := bvar OR bvar & FALSE
2708[info] END assign.]" (CompilerTests.scala:149)
2709[info] - Oberon0 testing A2b on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
2710[info] - Oberon0 testing A2b on L0 tests: -- badassign.ob, expecting badassign.out
2711[info] - Oberon0 testing A2b on L0 tests: -- type.ob, expecting type.out
2712[info] - Oberon0 testing A2b on L0 tests: -- repeatsection.ob, expecting repeatsection.out
2713[info] - Oberon0 testing A2b on L0 tests: -- redefinteger.ob, expecting redefinteger.out
2714[info] - Oberon0 testing A2b on L0 tests: -- badeq.ob, expecting badeq.out
2715[info] - Oberon0 testing A2b on L0 tests: -- typenodecl.ob, expecting typenodecl.out
2716[info] - Oberon0 testing A2b on L0 tests: -- var.ob, expecting var.out
2717[info] - Oberon0 testing A2b on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
2718[info] - Oberon0 testing A2b on L0 tests: -- intoverflow.ob, expecting intoverflow.out
2719[info] - Oberon0 testing A2b on L0 tests: -- redeftrue.ob, expecting redeftrue.out
2720[info] - Oberon0 testing A2b on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
2721[info] "* [errors
2722[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
2723[info] ivar1 := 2 + 3 * 4;
2724[info] ^]" was not equal to "* [_pp.ob
2725[info] MODULE simpleexps;
2726[info]
2727[info] VAR
2728[info] ivar1, ivar2 : INTEGER;
2729[info] bvar1, bvar2 : BOOLEAN;
2730[info]
2731[info] BEGIN
2732[info] ivar1 := 0;
2733[info] ivar1 := 12;
2734[info] ivar1 := 345;
2735[info] ivar1 := 67890123;
2736[info] ivar1 := -0;
2737[info] ivar1 := -1;
2738[info] ivar2 := -782374;
2739[info] ivar2 := --10;
2740[info] ivar1 := ivar2 + 1;
2741[info] ivar1 := 2 + ivar2;
2742[info] ivar1 := ivar2 - ivar1;
2743[info] ivar1 := 3 - ivar2;
2744[info] ivar1 := ivar2 * 4;
2745[info] ivar1 := 5 * ivar2;
2746[info] ivar1 := ivar2 DIV 6;
2747[info] ivar1 := (-7) DIV (ivar2 + 1);
2748[info] ivar1 := ivar2 MOD ivar1;
2749[info] ivar1 := 8 MOD (ivar2 + 1);
2750[info] ivar1 := 2 + 3 * 4;
2751[info] ivar1 := (2 + 3) * 4;
2752[info] ivar1 := 2 - 3 DIV 4;
2753[info] ivar1 := (2 - 3) DIV 4;
2754[info] ivar1 := 2 + 3 MOD 4;
2755[info] ivar1 := (2 + 3) MOD 4;
2756[info] ivar1 := 2 + 3 + 4;
2757[info] ivar1 := 2 + (3 + 4);
2758[info] ivar1 := 2 - 3 - 4;
2759[info] ivar1 := 2 - (3 - 4);
2760[info] ivar1 := 2 * 3 * 4;
2761[info] ivar1 := 2 * (3 * 4);
2762[info] ivar1 := 2 MOD 3 MOD 4;
2763[info] ivar1 := 2 MOD (3 MOD 4);
2764[info] ivar1 := 2 DIV 3 DIV 4;
2765[info] ivar1 := 2 DIV (4 DIV 4);
2766[info] bvar1 := FALSE;
2767[info] bvar1 := TRUE;
2768[info] bvar1 := bvar1 OR bvar2;
2769[info] bvar1 := bvar1 & bvar2;
2770[info] bvar1 := FALSE OR FALSE & TRUE;
2771[info] bvar1 := bvar1 & ~bvar2;
2772[info] bvar1 := bvar1 OR bvar2 OR FALSE;
2773[info] bvar1 := bvar1 OR bvar2 & FALSE;
2774[info] bvar1 := bvar1 & (TRUE & bvar2);
2775[info] bvar1 := ~TRUE;
2776[info] bvar1 := ~bvar1 & bvar2;
2777[info] bvar1 := ~~bvar1;
2778[info] bvar1 := ivar1 = ivar2;
2779[info] bvar1 := ivar1 # ivar2;
2780[info] bvar1 := ivar1 < ivar2;
2781[info] bvar1 := ivar1 <= ivar2;
2782[info] bvar1 := ivar1 > ivar2;
2783[info] bvar1 := ivar1 >= ivar2;
2784[info] bvar1 := (ivar1 = ivar2) OR bvar2;
2785[info] bvar1 := bvar2 & (ivar1 # ivar2)
2786[info] END simpleexps.]" (CompilerTests.scala:149)
2787[info] - Oberon0 testing A2b on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
2788[info] - Oberon0 testing A2b on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
2789[info] - Oberon0 testing A2b on L0 tests: -- keywordasname.ob, expecting keywordasname.out
2790[info] - Oberon0 testing A2b on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
2791[info] - Oberon0 testing A2b on L1 tests: -- badcond.ob, expecting badcond.out
2792[info] - Oberon0 testing A2b on L1 tests: -- while.ob, expecting while.out
2793[info] - Oberon0 testing A2b on L1 tests: -- condname.ob, expecting condname.out
2794[info] - Oberon0 testing A2b on L1 tests: -- whilename.ob, expecting whilename.out
2795[info] - Oberon0 testing A2b on L1 tests: -- badwhile.ob, expecting badwhile.out
2796[info] - Oberon0 testing A2b on L1 tests: -- cond.ob, expecting cond.out
2797[info] - Oberon0 testing A2b on L2 tests: -- casename.ob, expecting casename.out
2798[info] - Oberon0 testing A2b on L2 tests: -- forname.ob, expecting forname.out
2799[info] - Oberon0 testing A2b on L2 tests: -- case.ob, expecting case.out
2800[info] - Oberon0 testing A2b on L2 tests: -- badcase.ob, expecting badcase.out
2801[info] - Oberon0 testing A2b on L2 tests: -- badfor.ob, expecting badfor.out
2802[info] - Oberon0 testing A2b on L2 tests: -- for.ob, expecting for.out
2803[info] - Oberon0 testing A2b on L2 tests: -- lift.ob, expecting lift.out
2804[info] - Oberon0 testing A2b on L2 tests: -- casenoclause.ob, expecting casenoclause.out
2805[info] - Oberon0 testing A2b on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
2806[info] SyntaxAnalyserTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/prolog:
2807[info] - parsing an atom as an atom works
2808[info] - parsing a non-atom as an atom gives an error
2809[info] - parsing an atomic literal produces the correct tree
2810[info] - parsing a predicate literal produces the correct tree
2811[info] - parsing a single letter atom as an atom works
2812[info] - parsing an atom as an var gives an error
2813[info] - parsing a single letter var as a var works
2814[info] - parsing a length > 1 var as a var works
2815[info] - parsing a mixed-case var as a var works
2816[info] - parsing an empty program gives an error
2817[info] - parsing a single clause works
2818[info] - parsing multiple clauses works
2819[info] - parsing a rule works
2820[info] - parsing a fact works
2821[info] - parsing an atomic literal works
2822[info] - parsing a variable as a literal fails
2823[info] - can't parse a predicate literal with zero arguments
2824[info] - parsing a predicate literal with one argument works
2825[info] - parsing a predicate literal with many argument works
2826[info] - parsing a predicate literal with a predicate argument works
2827[info] - parsing a cut works
2828[info] - parsing a literal list containg a cut works
2829[info] - can't parse a nested cut
2830[info] - parsing an empty literal list gives an error
2831[info] - parsing a singleton literal list works
2832[info] - parsing multiple literal list works
2833[info] - parsing a single digit integer works
2834[info] - parsing a non-trivial integer works
2835[info] - parsing non-integers as integers fails
2836[info] - parsing an empty list works
2837[info] - parsing a singleton list works
2838[info] - parsing a multiple-element list works
2839[info] ObfuscationTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/picojava/tests:
2840[info] - obfuscation produces correct program (pretty printed)
2841[info] - obfuscation produces correct program
2842[info] A1Tests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/drivers:
2843[info] - Oberon0 testing A1 on base tests: -- emptybody.ob, expecting emptybody.out
2844[info] - Oberon0 testing A1 on base tests: -- commentnoend.ob, expecting commentnoend.out
2845[info] - Oberon0 testing A1 on base tests: -- emptymodule.ob, expecting emptymodule.out
2846[info] - Oberon0 testing A1 on base tests: -- comment.ob, expecting comment.out
2847[info] - Oberon0 testing A1 on base tests: -- keywordasname.ob, expecting keywordasname.out
2848[info] - Oberon0 testing A1 on L0 tests: -- const.ob, expecting const.out
2849[info] - Oberon0 testing A1 on L0 tests: -- selfref.ob, expecting selfref.out
2850[info] - Oberon0 testing A1 on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
2851[info] "* [errors
2852[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
2853[info] avar := answer - avar MOD 4;
2854[info] ^]" was not equal to "* [_pp.ob
2855[info] MODULE assign;
2856[info]
2857[info] CONST
2858[info] answer = 42;
2859[info] aconst1 = 1 + 42;
2860[info] aconst2 = aconst1 * 2;
2861[info]
2862[info] VAR
2863[info] avar, xvar : INTEGER;
2864[info] bvar : BOOLEAN;
2865[info]
2866[info] BEGIN
2867[info] avar := 10;
2868[info] avar := answer - avar MOD 4;
2869[info] avar := (answer + avar) * 4;
2870[info] bvar := TRUE;
2871[info] bvar := bvar OR bvar & FALSE
2872[info] END assign.]" (CompilerTests.scala:149)
2873[info] - Oberon0 testing A1 on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
2874[info] - Oberon0 testing A1 on L0 tests: -- badassign.ob, expecting badassign.out
2875[info] - Oberon0 testing A1 on L0 tests: -- type.ob, expecting type.out
2876[info] - Oberon0 testing A1 on L0 tests: -- repeatsection.ob, expecting repeatsection.out
2877[info] - Oberon0 testing A1 on L0 tests: -- redefinteger.ob, expecting redefinteger.out
2878[info] - Oberon0 testing A1 on L0 tests: -- badeq.ob, expecting badeq.out
2879[info] - Oberon0 testing A1 on L0 tests: -- typenodecl.ob, expecting typenodecl.out
2880[info] - Oberon0 testing A1 on L0 tests: -- var.ob, expecting var.out
2881[info] - Oberon0 testing A1 on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
2882[info] - Oberon0 testing A1 on L0 tests: -- intoverflow.ob, expecting intoverflow.out
2883[info] - Oberon0 testing A1 on L0 tests: -- redeftrue.ob, expecting redeftrue.out
2884[info] - Oberon0 testing A1 on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
2885[info] "* [errors
2886[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
2887[info] ivar1 := 2 + 3 * 4;
2888[info] ^]" was not equal to "* [_pp.ob
2889[info] MODULE simpleexps;
2890[info]
2891[info] VAR
2892[info] ivar1, ivar2 : INTEGER;
2893[info] bvar1, bvar2 : BOOLEAN;
2894[info]
2895[info] BEGIN
2896[info] ivar1 := 0;
2897[info] ivar1 := 12;
2898[info] ivar1 := 345;
2899[info] ivar1 := 67890123;
2900[info] ivar1 := -0;
2901[info] ivar1 := -1;
2902[info] ivar2 := -782374;
2903[info] ivar2 := --10;
2904[info] ivar1 := ivar2 + 1;
2905[info] ivar1 := 2 + ivar2;
2906[info] ivar1 := ivar2 - ivar1;
2907[info] ivar1 := 3 - ivar2;
2908[info] ivar1 := ivar2 * 4;
2909[info] ivar1 := 5 * ivar2;
2910[info] ivar1 := ivar2 DIV 6;
2911[info] ivar1 := (-7) DIV (ivar2 + 1);
2912[info] ivar1 := ivar2 MOD ivar1;
2913[info] ivar1 := 8 MOD (ivar2 + 1);
2914[info] ivar1 := 2 + 3 * 4;
2915[info] ivar1 := (2 + 3) * 4;
2916[info] ivar1 := 2 - 3 DIV 4;
2917[info] ivar1 := (2 - 3) DIV 4;
2918[info] ivar1 := 2 + 3 MOD 4;
2919[info] ivar1 := (2 + 3) MOD 4;
2920[info] ivar1 := 2 + 3 + 4;
2921[info] ivar1 := 2 + (3 + 4);
2922[info] ivar1 := 2 - 3 - 4;
2923[info] ivar1 := 2 - (3 - 4);
2924[info] ivar1 := 2 * 3 * 4;
2925[info] ivar1 := 2 * (3 * 4);
2926[info] ivar1 := 2 MOD 3 MOD 4;
2927[info] ivar1 := 2 MOD (3 MOD 4);
2928[info] ivar1 := 2 DIV 3 DIV 4;
2929[info] ivar1 := 2 DIV (4 DIV 4);
2930[info] bvar1 := FALSE;
2931[info] bvar1 := TRUE;
2932[info] bvar1 := bvar1 OR bvar2;
2933[info] bvar1 := bvar1 & bvar2;
2934[info] bvar1 := FALSE OR FALSE & TRUE;
2935[info] bvar1 := bvar1 & ~bvar2;
2936[info] bvar1 := bvar1 OR bvar2 OR FALSE;
2937[info] bvar1 := bvar1 OR bvar2 & FALSE;
2938[info] bvar1 := bvar1 & (TRUE & bvar2);
2939[info] bvar1 := ~TRUE;
2940[info] bvar1 := ~bvar1 & bvar2;
2941[info] bvar1 := ~~bvar1;
2942[info] bvar1 := ivar1 = ivar2;
2943[info] bvar1 := ivar1 # ivar2;
2944[info] bvar1 := ivar1 < ivar2;
2945[info] bvar1 := ivar1 <= ivar2;
2946[info] bvar1 := ivar1 > ivar2;
2947[info] bvar1 := ivar1 >= ivar2;
2948[info] bvar1 := (ivar1 = ivar2) OR bvar2;
2949[info] bvar1 := bvar2 & (ivar1 # ivar2)
2950[info] END simpleexps.]" (CompilerTests.scala:149)
2951[info] - Oberon0 testing A1 on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
2952[info] - Oberon0 testing A1 on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
2953[info] - Oberon0 testing A1 on L0 tests: -- keywordasname.ob, expecting keywordasname.out
2954[info] - Oberon0 testing A1 on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
2955[info] - Oberon0 testing A1 on L1 tests: -- badcond.ob, expecting badcond.out
2956[info] - Oberon0 testing A1 on L1 tests: -- while.ob, expecting while.out
2957[info] - Oberon0 testing A1 on L1 tests: -- condname.ob, expecting condname.out
2958[info] - Oberon0 testing A1 on L1 tests: -- whilename.ob, expecting whilename.out
2959[info] - Oberon0 testing A1 on L1 tests: -- badwhile.ob, expecting badwhile.out
2960[info] - Oberon0 testing A1 on L1 tests: -- cond.ob, expecting cond.out
2961[info] - Oberon0 testing A1 on L2 tests: -- casename.ob, expecting casename.out
2962[info] - Oberon0 testing A1 on L2 tests: -- forname.ob, expecting forname.out
2963[info] - Oberon0 testing A1 on L2 tests: -- case.ob, expecting case.out
2964[info] - Oberon0 testing A1 on L2 tests: -- badcase.ob, expecting badcase.out
2965[info] - Oberon0 testing A1 on L2 tests: -- badfor.ob, expecting badfor.out
2966[info] - Oberon0 testing A1 on L2 tests: -- for.ob, expecting for.out
2967[info] - Oberon0 testing A1 on L2 tests: -- lift.ob, expecting lift.out
2968[info] - Oberon0 testing A1 on L2 tests: -- casenoclause.ob, expecting casenoclause.out
2969[info] - Oberon0 testing A1 on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
2970[info] TIL2_1Tests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/til:
2971[info] - transform a single for loop
2972[info] - transform a for loop that occurs first in a sequence
2973[info] - transform a for loop that occurs last in a sequence
2974[info] - transform a for loop that occurs in the middle of a sequence
2975[info] - transform nested for loops
2976[info] LambdaTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/lambda2:
2977[info] - an unknown variable by itself is reported
2978[info] - an unknown variable in an abstraction is reported (typed)
2979[info] - an unknown variable in an abstraction is reported (untyped)
2980[info] - an Int -> Int cannot be used as an Int (typed)
2981[info] - an Int -> Int can be used as an Int (untyped)
2982[info] - an Int cannot be passed to an Int -> Int (typed)
2983[info] - an Int cannot be passed to an Int -> Int (untyped)
2984[info] - an Int -> Int cannot be passed to an Int (typed)
2985[info] - an Int -> Int cannot be passed to an Int (untyped)
2986[info] - an Int cannot be directly applied as a function
2987[info] - an Int cannot be applied as a function via a parameter (typed)
2988[info] - an Int cannot be applied as a function via a parameter (untyped)
2989[info] - a single digit number evaluates to itself
2990[info] - a two digit number evaluates to itself
2991[info] - a four digit number evaluates to itself
2992[info] - a single character variable evaluates to itself
2993[info] - a two character variable evaluates to itself
2994[info] - a variable whose name contains digits evaluates to itself
2995[info] - primitives evaluate correctly: addition
2996[info] - primitives evaluate correctly: subtraction
2997[info] - primitives evaluate correctly: addition and subtraction
2998[info] - primitives evaluate correctly: addition and subtraction with parens
2999[info] - primitives evaluate correctly: addition twice
3000[info] - primitives evaluate correctly: subtraction twice
3001[info] - primitives evaluate correctly: subtraction twice with parens
3002[info] - lambda expressions evaluate to themselves: constant body
3003[info] - lambda expressions evaluate to themselves: non-constant body
3004[info] - parameters are correctly substituted: integer param
3005[info] - parameters are correctly substituted: function param
3006[info] - a beta reduction and an operator evaluation works
3007[info] - an unused parameter is ignored: integer param
3008[info] - an unused parameter is ignored: integer param with whitespace
3009[info] - an unused parameter is ignored: function param
3010[info] - a function of one parameter passed as a parameter can be called
3011[info] - a function of multiple parameters passed as a parameter can be called
3012[info] - multiple parameters are passed correctly
3013[info] - applications in arguments are evaluated correctly
3014[info] - redexes inside lambdas are evaluated or ignored as appropriate
3015[info] - pretty-print lambda expression, simple operation
3016[info] - pretty-print applications, nested operation
3017[info] - pretty-printed nested lets
3018[info] - pretty-printed parallel lets
3019[info] TransformTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/transform:
3020[info] - Transform: -- test2.exp, expecting test2.out
3021[info] - Transform: -- test8.exp, expecting test8.out
3022[info] - Transform: -- test5.exp, expecting test5.out
3023[info] - Transform: -- test3.exp, expecting test3.out
3024[info] - Transform: -- test4.exp, expecting test4.out
3025[info] - Transform: -- test6.exp, expecting test6.out
3026[info] - Transform: -- test1.exp, expecting test1.out
3027[info] - Transform: -- test7.exp, expecting test7.out
3028[info] PrettyPrinterTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/imperative:
3029[info] - pretty-print imperative variable
3030[info] - pretty-print imperative variable - product
3031[info] - pretty-print imperative assignment
3032[info] - pretty-print imperative assignment - product
3033[info] - pretty-print non-trivial imperative program (default width)
3034[info] - pretty-print non-trivial imperative program (narrow)
3035[info] - pretty-print non-trivial imperative program (product)
3036[info] ObrRegressionTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests:
3037[info] - ObrRegression: -a -- or2.obr, expecting or2.risc
3038[info] - ObrRegression: -a -- comp1.obr, expecting comp1.risc
3039[info] - ObrRegression: -a -- equal1.obr, expecting equal1.risc *** FAILED ***
3040[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/equal1.obr:3:14:error: '>' expected but 'T' found
3041[info] IF 1 = 1 THEN
3042[info] ^]
3043[info] " was not equal to "[ ! Prologue
3044[info] movi $27, $0, 0
3045[info] ! StW(Local(8),Read())
3046[info] rd $1
3047[info] stw $1, $27, 8
3048[info] ! Beq(CmpeqW(IntDatum(1),IntDatum(1)),Label(1))
3049[info] movi $1, $0, 1
3050[info] movi $2, $0, 1
3051[info] cmp $1, $2
3052[info] movi $1, $0, 1
3053[info] beq label5
3054[info] movi $1, $0, 0
3055[info] label5:
3056[info] cmpi $1, 0
3057[info] beq label1
3058[info] ! Write(IntDatum(1))
3059[info] movi $1, $0, 1
3060[info] wrd $1
3061[info] wrl
3062[info] ! Ret()
3063[info] br label4
3064[info] ! Jmp(Label(2))
3065[info] br label2
3066[info] ! LabelDef(Label(1))
3067[info] label1:
3068[info] ! Write(IntDatum(0))
3069[info] movi $1, $0, 0
3070[info] wrd $1
3071[info] wrl
3072[info] ! Ret()
3073[info] br label4
3074[info] ! LabelDef(Label(2))
3075[info] label2:
3076[info] ! Write(IntDatum(0))
3077[info] movi $1, $0, 0
3078[info] wrd $1
3079[info] wrl
3080[info] ! Ret()
3081[info] br label4
3082[info] ! LabelDef(Label(3))
3083[info] label3:
3084[info] ! Write(IntDatum(-1))
3085[info] movi $1, $0, -1
3086[info] wrd $1
3087[info] wrl
3088[info] ! Epilogue
3089[info] label4:
3090[info] ret $0]
3091[info] " (CompilerTests.scala:149)
3092[info] - ObrRegression: -a -- array.obr, expecting array.risc
3093[info] - ObrRegression: -a -- const.obr, expecting const.risc
3094[info] - ObrRegression: -a -- while2.obr, expecting while2.risc *** FAILED ***
3095[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/while2.obr:8:17:error: '>' expected but 'D' found
3096[info] WHILE i < 0 DO
3097[info] ^]
3098[info] " was not equal to "[ ! Prologue
3099[info] movi $27, $0, 0
3100[info] ! StW(Local(8),Read())
3101[info] rd $1
3102[info] stw $1, $27, 8
3103[info] ! StW(Local(12),IntDatum(1))
3104[info] movi $1, $0, 1
3105[info] stw $1, $27, 12
3106[info] ! StW(Local(16),IntDatum(42))
3107[info] movi $1, $0, 42
3108[info] stw $1, $27, 16
3109[info] ! Jmp(Label(1))
3110[info] br label1
3111[info] ! LabelDef(Label(2))
3112[info] label2:
3113[info] ! StW(Local(16),AddW(LdW(Local(16)),LdW(Local(12))))
3114[info] ldw $1, $27, 16
3115[info] ldw $2, $27, 12
3116[info] add $1, $1, $2
3117[info] stw $1, $27, 16
3118[info] ! LabelDef(Label(1))
3119[info] label1:
3120[info] ! Bne(CmpltW(LdW(Local(12)),IntDatum(0)),Label(2))
3121[info] ldw $1, $27, 12
3122[info] movi $2, $0, 0
3123[info] cmp $1, $2
3124[info] movi $1, $0, 1
3125[info] blt label5
3126[info] movi $1, $0, 0
3127[info] label5:
3128[info] cmpi $1, 0
3129[info] bne label2
3130[info] ! Write(LdW(Local(16)))
3131[info] ldw $1, $27, 16
3132[info] wrd $1
3133[info] wrl
3134[info] ! Ret()
3135[info] br label4
3136[info] ! Write(IntDatum(0))
3137[info] movi $1, $0, 0
3138[info] wrd $1
3139[info] wrl
3140[info] ! Ret()
3141[info] br label4
3142[info] ! LabelDef(Label(3))
3143[info] label3:
3144[info] ! Write(IntDatum(-1))
3145[info] movi $1, $0, -1
3146[info] wrd $1
3147[info] wrl
3148[info] ! Epilogue
3149[info] label4:
3150[info] ret $0]
3151[info] " (CompilerTests.scala:149)
3152[info] - ObrRegression: -a -- or1.obr, expecting or1.risc
3153[info] - ObrRegression: -a -- minus.obr, expecting minus.risc
3154[info] - ObrRegression: -a -- while1.obr, expecting while1.risc *** FAILED ***
3155[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/while1.obr:8:18:error: '>' expected but 'D' found
3156[info] WHILE i < 10 DO
3157[info] ^]
3158[info] " was not equal to "[ ! Prologue
3159[info] movi $27, $0, 0
3160[info] ! StW(Local(8),Read())
3161[info] rd $1
3162[info] stw $1, $27, 8
3163[info] ! StW(Local(12),IntDatum(1))
3164[info] movi $1, $0, 1
3165[info] stw $1, $27, 12
3166[info] ! StW(Local(16),IntDatum(0))
3167[info] movi $1, $0, 0
3168[info] stw $1, $27, 16
3169[info] ! Jmp(Label(1))
3170[info] br label1
3171[info] ! LabelDef(Label(2))
3172[info] label2:
3173[info] ! StW(Local(16),AddW(LdW(Local(16)),LdW(Local(12))))
3174[info] ldw $1, $27, 16
3175[info] ldw $2, $27, 12
3176[info] add $1, $1, $2
3177[info] stw $1, $27, 16
3178[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3179[info] ldw $1, $27, 12
3180[info] movi $2, $0, 1
3181[info] add $1, $1, $2
3182[info] stw $1, $27, 12
3183[info] ! LabelDef(Label(1))
3184[info] label1:
3185[info] ! Bne(CmpltW(LdW(Local(12)),IntDatum(10)),Label(2))
3186[info] ldw $1, $27, 12
3187[info] movi $2, $0, 10
3188[info] cmp $1, $2
3189[info] movi $1, $0, 1
3190[info] blt label5
3191[info] movi $1, $0, 0
3192[info] label5:
3193[info] cmpi $1, 0
3194[info] bne label2
3195[info] ! Write(LdW(Local(16)))
3196[info] ldw $1, $27, 16
3197[info] wrd $1
3198[info] wrl
3199[info] ! Ret()
3200[info] br label4
3201[info] ! Write(IntDatum(0))
3202[info] movi $1, $0, 0
3203[info] wrd $1
3204[info] wrl
3205[info] ! Ret()
3206[info] br label4
3207[info] ! LabelDef(Label(3))
3208[info] label3:
3209[info] ! Write(IntDatum(-1))
3210[info] movi $1, $0, -1
3211[info] wrd $1
3212[info] wrl
3213[info] ! Epilogue
3214[info] label4:
3215[info] ret $0]
3216[info] " (CompilerTests.scala:149)
3217[info] - ObrRegression: -a -- for1.obr, expecting for1.risc
3218[info] - ObrRegression: -a -- for2.obr, expecting for2.risc
3219[info] - ObrRegression: -a -- loop1.obr, expecting loop1.risc *** FAILED ***
3220[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/loop1.obr:10:18:error: '>' expected but 'T' found
3221[info] IF v = 5 THEN EXIT; END
3222[info] ^]
3223[info] " was not equal to "[ ! Prologue
3224[info] movi $27, $0, 0
3225[info] ! StW(Local(8),Read())
3226[info] rd $1
3227[info] stw $1, $27, 8
3228[info] ! StW(Local(12),IntDatum(0))
3229[info] movi $1, $0, 0
3230[info] stw $1, $27, 12
3231[info] ! LabelDef(Label(1))
3232[info] label1:
3233[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3234[info] ldw $1, $27, 12
3235[info] movi $2, $0, 1
3236[info] add $1, $1, $2
3237[info] stw $1, $27, 12
3238[info] ! Beq(CmpeqW(LdW(Local(12)),IntDatum(5)),Label(2))
3239[info] ldw $1, $27, 12
3240[info] movi $2, $0, 5
3241[info] cmp $1, $2
3242[info] movi $1, $0, 1
3243[info] beq label7
3244[info] movi $1, $0, 0
3245[info] label7:
3246[info] cmpi $1, 0
3247[info] beq label2
3248[info] ! Jmp(Label(4))
3249[info] br label4
3250[info] ! Jmp(Label(3))
3251[info] br label3
3252[info] ! LabelDef(Label(2))
3253[info] label2:
3254[info] ! LabelDef(Label(3))
3255[info] label3:
3256[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3257[info] ldw $1, $27, 12
3258[info] movi $2, $0, 1
3259[info] add $1, $1, $2
3260[info] stw $1, $27, 12
3261[info] ! Jmp(Label(1))
3262[info] br label1
3263[info] ! LabelDef(Label(4))
3264[info] label4:
3265[info] ! Write(LdW(Local(12)))
3266[info] ldw $1, $27, 12
3267[info] wrd $1
3268[info] wrl
3269[info] ! Ret()
3270[info] br label6
3271[info] ! Write(IntDatum(0))
3272[info] movi $1, $0, 0
3273[info] wrd $1
3274[info] wrl
3275[info] ! Ret()
3276[info] br label6
3277[info] ! LabelDef(Label(5))
3278[info] label5:
3279[info] ! Write(IntDatum(-1))
3280[info] movi $1, $0, -1
3281[info] wrd $1
3282[info] wrl
3283[info] ! Epilogue
3284[info] label6:
3285[info] ret $0]
3286[info] " (CompilerTests.scala:149)
3287[info] - ObrRegression: -a -- equal2.obr, expecting equal2.risc *** FAILED ***
3288[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/equal2.obr:3:14:error: '>' expected but 'T' found
3289[info] IF 1 = 2 THEN
3290[info] ^]
3291[info] " was not equal to "[ ! Prologue
3292[info] movi $27, $0, 0
3293[info] ! StW(Local(8),Read())
3294[info] rd $1
3295[info] stw $1, $27, 8
3296[info] ! Beq(CmpeqW(IntDatum(1),IntDatum(2)),Label(1))
3297[info] movi $1, $0, 1
3298[info] movi $2, $0, 2
3299[info] cmp $1, $2
3300[info] movi $1, $0, 1
3301[info] beq label5
3302[info] movi $1, $0, 0
3303[info] label5:
3304[info] cmpi $1, 0
3305[info] beq label1
3306[info] ! Write(IntDatum(0))
3307[info] movi $1, $0, 0
3308[info] wrd $1
3309[info] wrl
3310[info] ! Ret()
3311[info] br label4
3312[info] ! Jmp(Label(2))
3313[info] br label2
3314[info] ! LabelDef(Label(1))
3315[info] label1:
3316[info] ! Write(IntDatum(1))
3317[info] movi $1, $0, 1
3318[info] wrd $1
3319[info] wrl
3320[info] ! Ret()
3321[info] br label4
3322[info] ! LabelDef(Label(2))
3323[info] label2:
3324[info] ! Write(IntDatum(0))
3325[info] movi $1, $0, 0
3326[info] wrd $1
3327[info] wrl
3328[info] ! Ret()
3329[info] br label4
3330[info] ! LabelDef(Label(3))
3331[info] label3:
3332[info] ! Write(IntDatum(-1))
3333[info] movi $1, $0, -1
3334[info] wrd $1
3335[info] wrl
3336[info] ! Epilogue
3337[info] label4:
3338[info] ret $0]
3339[info] " (CompilerTests.scala:149)
3340[info] - ObrRegression: -a -- and1.obr, expecting and1.risc
3341[info] - ObrRegression: -a -- and2.obr, expecting and2.risc
3342[info] - ObrRegression: -a -- record.obr, expecting record.risc
3343[info] - ObrRegression: -a -- inequal2.obr, expecting inequal2.risc *** FAILED ***
3344[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/inequal2.obr:3:14:error: '>' expected but 'T' found
3345[info] IF 1 # 2 THEN
3346[info] ^]
3347[info] " was not equal to "[ ! Prologue
3348[info] movi $27, $0, 0
3349[info] ! StW(Local(8),Read())
3350[info] rd $1
3351[info] stw $1, $27, 8
3352[info] ! Beq(CmpneW(IntDatum(1),IntDatum(2)),Label(1))
3353[info] movi $1, $0, 1
3354[info] movi $2, $0, 2
3355[info] cmp $1, $2
3356[info] movi $1, $0, 1
3357[info] bne label5
3358[info] movi $1, $0, 0
3359[info] label5:
3360[info] cmpi $1, 0
3361[info] beq label1
3362[info] ! Write(IntDatum(1))
3363[info] movi $1, $0, 1
3364[info] wrd $1
3365[info] wrl
3366[info] ! Ret()
3367[info] br label4
3368[info] ! Jmp(Label(2))
3369[info] br label2
3370[info] ! LabelDef(Label(1))
3371[info] label1:
3372[info] ! Write(IntDatum(0))
3373[info] movi $1, $0, 0
3374[info] wrd $1
3375[info] wrl
3376[info] ! Ret()
3377[info] br label4
3378[info] ! LabelDef(Label(2))
3379[info] label2:
3380[info] ! Write(IntDatum(0))
3381[info] movi $1, $0, 0
3382[info] wrd $1
3383[info] wrl
3384[info] ! Ret()
3385[info] br label4
3386[info] ! LabelDef(Label(3))
3387[info] label3:
3388[info] ! Write(IntDatum(-1))
3389[info] movi $1, $0, -1
3390[info] wrd $1
3391[info] wrl
3392[info] ! Epilogue
3393[info] label4:
3394[info] ret $0]
3395[info] " (CompilerTests.scala:149)
3396[info] - ObrRegression: -a -- neg.obr, expecting neg.risc
3397[info] - ObrRegression: -a -- factorial.obr, expecting factorial.risc *** FAILED ***
3398[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/factorial.obr:18:21:error: '>' expected but 'D' found
3399[info] WHILE c < v DO
3400[info] ^]
3401[info] " was not equal to "[ ! Prologue
3402[info] movi $27, $0, 0
3403[info] ! StW(Local(8),Read())
3404[info] rd $1
3405[info] stw $1, $27, 8
3406[info] ! Beq(Cond(CmpltW(LdW(Local(8)),IntDatum(0)),IntDatum(1),CmpgtW(LdW(Local(8)),IntDatum(7))),Label(1))
3407[info] ldw $1, $27, 8
3408[info] movi $2, $0, 0
3409[info] cmp $1, $2
3410[info] movi $1, $0, 1
3411[info] blt label9
3412[info] movi $1, $0, 0
3413[info] label9:
3414[info] cmpi $1, 0
3415[info] beq label7
3416[info] movi $1, $0, 1
3417[info] mov $1, $0, $1
3418[info] br label8
3419[info] label7:
3420[info] ldw $1, $27, 8
3421[info] movi $2, $0, 7
3422[info] cmp $1, $2
3423[info] movi $1, $0, 1
3424[info] bgt label10
3425[info] movi $1, $0, 0
3426[info] label10:
3427[info] mov $1, $0, $1
3428[info] label8:
3429[info] cmpi $1, 0
3430[info] beq label1
3431[info] ! Write(NegW(IntDatum(1)))
3432[info] movi $1, $0, 1
3433[info] sub $1, $0, $1
3434[info] wrd $1
3435[info] wrl
3436[info] ! Ret()
3437[info] br label6
3438[info] ! Jmp(Label(2))
3439[info] br label2
3440[info] ! LabelDef(Label(1))
3441[info] label1:
3442[info] ! StW(Local(12),IntDatum(0))
3443[info] movi $1, $0, 0
3444[info] stw $1, $27, 12
3445[info] ! StW(Local(16),IntDatum(1))
3446[info] movi $1, $0, 1
3447[info] stw $1, $27, 16
3448[info] ! Jmp(Label(3))
3449[info] br label3
3450[info] ! LabelDef(Label(4))
3451[info] label4:
3452[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3453[info] ldw $1, $27, 12
3454[info] movi $2, $0, 1
3455[info] add $1, $1, $2
3456[info] stw $1, $27, 12
3457[info] ! StW(Local(16),MulW(LdW(Local(16)),LdW(Local(12))))
3458[info] ldw $1, $27, 16
3459[info] ldw $2, $27, 12
3460[info] mul $1, $1, $2
3461[info] stw $1, $27, 16
3462[info] ! LabelDef(Label(3))
3463[info] label3:
3464[info] ! Bne(CmpltW(LdW(Local(12)),LdW(Local(8))),Label(4))
3465[info] ldw $1, $27, 12
3466[info] ldw $2, $27, 8
3467[info] cmp $1, $2
3468[info] movi $1, $0, 1
3469[info] blt label11
3470[info] movi $1, $0, 0
3471[info] label11:
3472[info] cmpi $1, 0
3473[info] bne label4
3474[info] ! Write(LdW(Local(16)))
3475[info] ldw $1, $27, 16
3476[info] wrd $1
3477[info] wrl
3478[info] ! Ret()
3479[info] br label6
3480[info] ! LabelDef(Label(2))
3481[info] label2:
3482[info] ! Write(IntDatum(0))
3483[info] movi $1, $0, 0
3484[info] wrd $1
3485[info] wrl
3486[info] ! Ret()
3487[info] br label6
3488[info] ! LabelDef(Label(5))
3489[info] label5:
3490[info] ! Write(IntDatum(-1))
3491[info] movi $1, $0, -1
3492[info] wrd $1
3493[info] wrl
3494[info] ! Epilogue
3495[info] label6:
3496[info] ret $0]
3497[info] " (CompilerTests.scala:149)
3498[info] - ObrRegression: -a -- comp2.obr, expecting comp2.risc
3499[info] - ObrRegression: -a -- times.obr, expecting times.risc
3500[info] - ObrRegression: -a -- divide.obr, expecting divide.risc
3501[info] - ObrRegression: -a -- gcd.obr, expecting gcd.risc *** FAILED ***
3502[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gcd.obr:6:17:error: '>' expected but 'D' found
3503[info] WHILE x # y DO
3504[info] ^]
3505[info] " was not equal to "[ ! Prologue
3506[info] movi $27, $0, 0
3507[info] ! StW(Local(8),Read())
3508[info] rd $1
3509[info] stw $1, $27, 8
3510[info] ! StW(Local(12),Read())
3511[info] rd $1
3512[info] stw $1, $27, 12
3513[info] ! Jmp(Label(1))
3514[info] br label1
3515[info] ! LabelDef(Label(2))
3516[info] label2:
3517[info] ! Beq(CmpgtW(LdW(Local(8)),LdW(Local(12))),Label(3))
3518[info] ldw $1, $27, 8
3519[info] ldw $2, $27, 12
3520[info] cmp $1, $2
3521[info] movi $1, $0, 1
3522[info] bgt label7
3523[info] movi $1, $0, 0
3524[info] label7:
3525[info] cmpi $1, 0
3526[info] beq label3
3527[info] ! StW(Local(8),SubW(LdW(Local(8)),LdW(Local(12))))
3528[info] ldw $1, $27, 8
3529[info] ldw $2, $27, 12
3530[info] sub $1, $1, $2
3531[info] stw $1, $27, 8
3532[info] ! Jmp(Label(4))
3533[info] br label4
3534[info] ! LabelDef(Label(3))
3535[info] label3:
3536[info] ! StW(Local(12),SubW(LdW(Local(12)),LdW(Local(8))))
3537[info] ldw $1, $27, 12
3538[info] ldw $2, $27, 8
3539[info] sub $1, $1, $2
3540[info] stw $1, $27, 12
3541[info] ! LabelDef(Label(4))
3542[info] label4:
3543[info] ! LabelDef(Label(1))
3544[info] label1:
3545[info] ! Bne(CmpneW(LdW(Local(8)),LdW(Local(12))),Label(2))
3546[info] ldw $1, $27, 8
3547[info] ldw $2, $27, 12
3548[info] cmp $1, $2
3549[info] movi $1, $0, 1
3550[info] bne label8
3551[info] movi $1, $0, 0
3552[info] label8:
3553[info] cmpi $1, 0
3554[info] bne label2
3555[info] ! Write(LdW(Local(8)))
3556[info] ldw $1, $27, 8
3557[info] wrd $1
3558[info] wrl
3559[info] ! Ret()
3560[info] br label6
3561[info] ! Write(IntDatum(0))
3562[info] movi $1, $0, 0
3563[info] wrd $1
3564[info] wrl
3565[info] ! Ret()
3566[info] br label6
3567[info] ! LabelDef(Label(5))
3568[info] label5:
3569[info] ! Write(IntDatum(-1))
3570[info] movi $1, $0, -1
3571[info] wrd $1
3572[info] wrl
3573[info] ! Epilogue
3574[info] label6:
3575[info] ret $0]
3576[info] " (CompilerTests.scala:149)
3577[info] - ObrRegression: -a -- and3.obr, expecting and3.risc
3578[info] - ObrRegression: -a -- plus.obr, expecting plus.risc
3579[info] - ObrRegression: -a -- or3.obr, expecting or3.risc
3580[info] - ObrRegression: -a -- loop2.obr, expecting loop2.risc *** FAILED ***
3581[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/loop2.obr:14:22:error: '>' expected but 'T' found
3582[info] IF w = 3 THEN EXIT; END
3583[info] ^]
3584[info] " was not equal to "[ ! Prologue
3585[info] movi $27, $0, 0
3586[info] ! StW(Local(8),Read())
3587[info] rd $1
3588[info] stw $1, $27, 8
3589[info] ! StW(Local(12),IntDatum(0))
3590[info] movi $1, $0, 0
3591[info] stw $1, $27, 12
3592[info] ! LabelDef(Label(1))
3593[info] label1:
3594[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3595[info] ldw $1, $27, 12
3596[info] movi $2, $0, 1
3597[info] add $1, $1, $2
3598[info] stw $1, $27, 12
3599[info] ! StW(Local(16),IntDatum(0))
3600[info] movi $1, $0, 0
3601[info] stw $1, $27, 16
3602[info] ! LabelDef(Label(2))
3603[info] label2:
3604[info] ! StW(Local(16),AddW(LdW(Local(16)),IntDatum(1)))
3605[info] ldw $1, $27, 16
3606[info] movi $2, $0, 1
3607[info] add $1, $1, $2
3608[info] stw $1, $27, 16
3609[info] ! Beq(CmpeqW(LdW(Local(16)),IntDatum(3)),Label(3))
3610[info] ldw $1, $27, 16
3611[info] movi $2, $0, 3
3612[info] cmp $1, $2
3613[info] movi $1, $0, 1
3614[info] beq label11
3615[info] movi $1, $0, 0
3616[info] label11:
3617[info] cmpi $1, 0
3618[info] beq label3
3619[info] ! Jmp(Label(5))
3620[info] br label5
3621[info] ! Jmp(Label(4))
3622[info] br label4
3623[info] ! LabelDef(Label(3))
3624[info] label3:
3625[info] ! LabelDef(Label(4))
3626[info] label4:
3627[info] ! StW(Local(16),AddW(LdW(Local(16)),IntDatum(1)))
3628[info] ldw $1, $27, 16
3629[info] movi $2, $0, 1
3630[info] add $1, $1, $2
3631[info] stw $1, $27, 16
3632[info] ! Jmp(Label(2))
3633[info] br label2
3634[info] ! LabelDef(Label(5))
3635[info] label5:
3636[info] ! Beq(CmpeqW(LdW(Local(12)),IntDatum(5)),Label(6))
3637[info] ldw $1, $27, 12
3638[info] movi $2, $0, 5
3639[info] cmp $1, $2
3640[info] movi $1, $0, 1
3641[info] beq label12
3642[info] movi $1, $0, 0
3643[info] label12:
3644[info] cmpi $1, 0
3645[info] beq label6
3646[info] ! Jmp(Label(8))
3647[info] br label8
3648[info] ! Jmp(Label(7))
3649[info] br label7
3650[info] ! LabelDef(Label(6))
3651[info] label6:
3652[info] ! LabelDef(Label(7))
3653[info] label7:
3654[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3655[info] ldw $1, $27, 12
3656[info] movi $2, $0, 1
3657[info] add $1, $1, $2
3658[info] stw $1, $27, 12
3659[info] ! Jmp(Label(1))
3660[info] br label1
3661[info] ! LabelDef(Label(8))
3662[info] label8:
3663[info] ! Write(AddW(LdW(Local(12)),LdW(Local(16))))
3664[info] ldw $1, $27, 12
3665[info] ldw $2, $27, 16
3666[info] add $1, $1, $2
3667[info] wrd $1
3668[info] wrl
3669[info] ! Ret()
3670[info] br label10
3671[info] ! Write(IntDatum(0))
3672[info] movi $1, $0, 0
3673[info] wrd $1
3674[info] wrl
3675[info] ! Ret()
3676[info] br label10
3677[info] ! LabelDef(Label(9))
3678[info] label9:
3679[info] ! Write(IntDatum(-1))
3680[info] movi $1, $0, -1
3681[info] wrd $1
3682[info] wrl
3683[info] ! Epilogue
3684[info] label10:
3685[info] ret $0]
3686[info] " (CompilerTests.scala:149)
3687[info] - ObrRegression: -a -- mod.obr, expecting mod.risc
3688[info] - ObrRegression: -a -- gthan1.obr, expecting gthan1.risc *** FAILED ***
3689[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gthan1.obr:3:14:error: '>' expected but 'T' found
3690[info] IF 1 > 2 THEN
3691[info] ^]
3692[info] " was not equal to "[ ! Prologue
3693[info] movi $27, $0, 0
3694[info] ! StW(Local(8),Read())
3695[info] rd $1
3696[info] stw $1, $27, 8
3697[info] ! Beq(CmpgtW(IntDatum(1),IntDatum(2)),Label(1))
3698[info] movi $1, $0, 1
3699[info] movi $2, $0, 2
3700[info] cmp $1, $2
3701[info] movi $1, $0, 1
3702[info] bgt label5
3703[info] movi $1, $0, 0
3704[info] label5:
3705[info] cmpi $1, 0
3706[info] beq label1
3707[info] ! Write(IntDatum(0))
3708[info] movi $1, $0, 0
3709[info] wrd $1
3710[info] wrl
3711[info] ! Ret()
3712[info] br label4
3713[info] ! Jmp(Label(2))
3714[info] br label2
3715[info] ! LabelDef(Label(1))
3716[info] label1:
3717[info] ! Write(IntDatum(1))
3718[info] movi $1, $0, 1
3719[info] wrd $1
3720[info] wrl
3721[info] ! Ret()
3722[info] br label4
3723[info] ! LabelDef(Label(2))
3724[info] label2:
3725[info] ! Write(IntDatum(0))
3726[info] movi $1, $0, 0
3727[info] wrd $1
3728[info] wrl
3729[info] ! Ret()
3730[info] br label4
3731[info] ! LabelDef(Label(3))
3732[info] label3:
3733[info] ! Write(IntDatum(-1))
3734[info] movi $1, $0, -1
3735[info] wrd $1
3736[info] wrl
3737[info] ! Epilogue
3738[info] label4:
3739[info] ret $0]
3740[info] " (CompilerTests.scala:149)
3741[info] - ObrRegression: -a -- gthan2.obr, expecting gthan2.risc *** FAILED ***
3742[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gthan2.obr:3:14:error: '>' expected but 'T' found
3743[info] IF 2 > 1 THEN
3744[info] ^]
3745[info] " was not equal to "[ ! Prologue
3746[info] movi $27, $0, 0
3747[info] ! StW(Local(8),Read())
3748[info] rd $1
3749[info] stw $1, $27, 8
3750[info] ! Beq(CmpgtW(IntDatum(2),IntDatum(1)),Label(1))
3751[info] movi $1, $0, 2
3752[info] movi $2, $0, 1
3753[info] cmp $1, $2
3754[info] movi $1, $0, 1
3755[info] bgt label5
3756[info] movi $1, $0, 0
3757[info] label5:
3758[info] cmpi $1, 0
3759[info] beq label1
3760[info] ! Write(IntDatum(1))
3761[info] movi $1, $0, 1
3762[info] wrd $1
3763[info] wrl
3764[info] ! Ret()
3765[info] br label4
3766[info] ! Jmp(Label(2))
3767[info] br label2
3768[info] ! LabelDef(Label(1))
3769[info] label1:
3770[info] ! Write(IntDatum(0))
3771[info] movi $1, $0, 0
3772[info] wrd $1
3773[info] wrl
3774[info] ! Ret()
3775[info] br label4
3776[info] ! LabelDef(Label(2))
3777[info] label2:
3778[info] ! Write(IntDatum(0))
3779[info] movi $1, $0, 0
3780[info] wrd $1
3781[info] wrl
3782[info] ! Ret()
3783[info] br label4
3784[info] ! LabelDef(Label(3))
3785[info] label3:
3786[info] ! Write(IntDatum(-1))
3787[info] movi $1, $0, -1
3788[info] wrd $1
3789[info] wrl
3790[info] ! Epilogue
3791[info] label4:
3792[info] ret $0]
3793[info] " (CompilerTests.scala:149)
3794[info] - ObrRegression: -a -- inequal1.obr, expecting inequal1.risc *** FAILED ***
3795[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/inequal1.obr:3:14:error: '>' expected but 'T' found
3796[info] IF 1 # 1 THEN
3797[info] ^]
3798[info] " was not equal to "[ ! Prologue
3799[info] movi $27, $0, 0
3800[info] ! StW(Local(8),Read())
3801[info] rd $1
3802[info] stw $1, $27, 8
3803[info] ! Beq(CmpneW(IntDatum(1),IntDatum(1)),Label(1))
3804[info] movi $1, $0, 1
3805[info] movi $2, $0, 1
3806[info] cmp $1, $2
3807[info] movi $1, $0, 1
3808[info] bne label5
3809[info] movi $1, $0, 0
3810[info] label5:
3811[info] cmpi $1, 0
3812[info] beq label1
3813[info] ! Write(IntDatum(0))
3814[info] movi $1, $0, 0
3815[info] wrd $1
3816[info] wrl
3817[info] ! Ret()
3818[info] br label4
3819[info] ! Jmp(Label(2))
3820[info] br label2
3821[info] ! LabelDef(Label(1))
3822[info] label1:
3823[info] ! Write(IntDatum(1))
3824[info] movi $1, $0, 1
3825[info] wrd $1
3826[info] wrl
3827[info] ! Ret()
3828[info] br label4
3829[info] ! LabelDef(Label(2))
3830[info] label2:
3831[info] ! Write(IntDatum(0))
3832[info] movi $1, $0, 0
3833[info] wrd $1
3834[info] wrl
3835[info] ! Ret()
3836[info] br label4
3837[info] ! LabelDef(Label(3))
3838[info] label3:
3839[info] ! Write(IntDatum(-1))
3840[info] movi $1, $0, -1
3841[info] wrd $1
3842[info] wrl
3843[info] ! Epilogue
3844[info] label4:
3845[info] ret $0]
3846[info] " (CompilerTests.scala:149)
3847[info] - ObrRegression: -a -- lthan1.obr, expecting lthan1.risc *** FAILED ***
3848[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/lthan1.obr:3:14:error: '>' expected but 'T' found
3849[info] IF 1 < 2 THEN
3850[info] ^]
3851[info] " was not equal to "[ ! Prologue
3852[info] movi $27, $0, 0
3853[info] ! StW(Local(8),Read())
3854[info] rd $1
3855[info] stw $1, $27, 8
3856[info] ! Beq(CmpltW(IntDatum(1),IntDatum(2)),Label(1))
3857[info] movi $1, $0, 1
3858[info] movi $2, $0, 2
3859[info] cmp $1, $2
3860[info] movi $1, $0, 1
3861[info] blt label5
3862[info] movi $1, $0, 0
3863[info] label5:
3864[info] cmpi $1, 0
3865[info] beq label1
3866[info] ! Write(IntDatum(1))
3867[info] movi $1, $0, 1
3868[info] wrd $1
3869[info] wrl
3870[info] ! Ret()
3871[info] br label4
3872[info] ! Jmp(Label(2))
3873[info] br label2
3874[info] ! LabelDef(Label(1))
3875[info] label1:
3876[info] ! Write(IntDatum(0))
3877[info] movi $1, $0, 0
3878[info] wrd $1
3879[info] wrl
3880[info] ! Ret()
3881[info] br label4
3882[info] ! LabelDef(Label(2))
3883[info] label2:
3884[info] ! Write(IntDatum(0))
3885[info] movi $1, $0, 0
3886[info] wrd $1
3887[info] wrl
3888[info] ! Ret()
3889[info] br label4
3890[info] ! LabelDef(Label(3))
3891[info] label3:
3892[info] ! Write(IntDatum(-1))
3893[info] movi $1, $0, -1
3894[info] wrd $1
3895[info] wrl
3896[info] ! Epilogue
3897[info] label4:
3898[info] ret $0]
3899[info] " (CompilerTests.scala:149)
3900[info] - ObrRegression: -a -- lthan2.obr, expecting lthan2.risc *** FAILED ***
3901[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/lthan2.obr:3:14:error: '>' expected but 'T' found
3902[info] IF 2 < 1 THEN
3903[info] ^]
3904[info] " was not equal to "[ ! Prologue
3905[info] movi $27, $0, 0
3906[info] ! StW(Local(8),Read())
3907[info] rd $1
3908[info] stw $1, $27, 8
3909[info] ! Beq(CmpltW(IntDatum(2),IntDatum(1)),Label(1))
3910[info] movi $1, $0, 2
3911[info] movi $2, $0, 1
3912[info] cmp $1, $2
3913[info] movi $1, $0, 1
3914[info] blt label5
3915[info] movi $1, $0, 0
3916[info] label5:
3917[info] cmpi $1, 0
3918[info] beq label1
3919[info] ! Write(IntDatum(0))
3920[info] movi $1, $0, 0
3921[info] wrd $1
3922[info] wrl
3923[info] ! Ret()
3924[info] br label4
3925[info] ! Jmp(Label(2))
3926[info] br label2
3927[info] ! LabelDef(Label(1))
3928[info] label1:
3929[info] ! Write(IntDatum(1))
3930[info] movi $1, $0, 1
3931[info] wrd $1
3932[info] wrl
3933[info] ! Ret()
3934[info] br label4
3935[info] ! LabelDef(Label(2))
3936[info] label2:
3937[info] ! Write(IntDatum(0))
3938[info] movi $1, $0, 0
3939[info] wrd $1
3940[info] wrl
3941[info] ! Ret()
3942[info] br label4
3943[info] ! LabelDef(Label(3))
3944[info] label3:
3945[info] ! Write(IntDatum(-1))
3946[info] movi $1, $0, -1
3947[info] wrd $1
3948[info] wrl
3949[info] ! Epilogue
3950[info] label4:
3951[info] ret $0]
3952[info] " (CompilerTests.scala:149)
3953[info] RewriterTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/json:
3954[info] - total salary is correct
3955[info] - halving salaries in company works
3956[info] PrettyPrinterTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/output:
3957[info] - pretty-print empty document
3958[info] - pretty-print empty string
3959[info] - pretty-print empty string via combinator
3960[info] - pretty-print string starting with newline
3961[info] - pretty-print string including newlines
3962[info] - prtty-print string with a large number of newlines
3963[info] - pretty-print string starting with and including newlines
3964[info] - pretty-print string starting with newline - grouped
3965[info] - pretty-print string including newlines - grouped
3966[info] - pretty-print string starting with and including newlines - grouped
3967[info] - pretty-print newline char
3968[info] - pretty-print newline char - grouped
3969[info] - pretty-print potential space line break
3970[info] - pretty-print potential space line break - grouped
3971[info] - pretty-print potential empty line break
3972[info] - pretty-print potential empty line break - grouped
3973[info] - pretty-print space line break separators
3974[info] - pretty-print space line break separators - grouped
3975[info] - pretty-print space line break separators - grouped, wrap
3976[info] - pretty-print empty line break separators
3977[info] - pretty-print empty line break separators - grouped
3978[info] - pretty-print empty line break separators - grouped, wrap
3979[info] - pretty-print semi line break separators
3980[info] - pretty-print semi line break separators - grouped
3981[info] - pretty-print semi line break separators - grouped, wrap
3982[info] - pretty-print no spaces
3983[info] - pretty-print non-zero spaces
3984[info] - pretty any-print empty string
3985[info] - pretty any-print empty list
3986[info] - pretty any-print null
3987[info] - pretty any-print None
3988[info] - pretty any-print Some
3989[info] - pretty-print identifier
3990[info] - pretty any-print identifier
3991[info] - pretty any-print integer
3992[info] - pretty-print angles
3993[info] - pretty-print brackets
3994[info] - pretty-print squotes
3995[info] - pretty-print empty sep sequence
3996[info] - pretty-print non-empty sep sequence - non-wrap
3997[info] - pretty-print non-empty sep sequence - wrap
3998[info] - pretty-print empty hsep sequence
3999[info] - pretty-print non-empty hsep sequence - non-wrap
4000[info] - pretty-print non-empty hsep sequence - wrap
4001[info] - pretty-print empty fillsep sequence
4002[info] - pretty-print non-empty fillsep sequence - non-wrap
4003[info] - pretty-print non-empty fillsep sequence - wrap
4004[info] - pretty-print empty fillsep sequence with sep
4005[info] - pretty-print non-empty fillsep sequence with sep - non-wrap
4006[info] - pretty-print non-empty fillsep sequence with sep - wrap
4007[info] - pretty-print empty lsep sequence
4008[info] - pretty-print non-empty lsep sequence - non-wrap
4009[info] - pretty-print empty lsep2 sequence
4010[info] - pretty-print non-empty lsep2 sequence - non-wrap
4011[info] - pretty-print non-empty lsep sequence - wrap
4012[info] - pretty-print empty cat sequence
4013[info] - pretty-print non-empty cat sequence - non-wrap
4014[info] - pretty-print non-empty cat sequence - wrap
4015[info] - pretty-print empty hcat sequence
4016[info] - pretty-print non-empty hcat sequence - non-wrap
4017[info] - pretty-print non-empty hcat sequence - wrap
4018[info] - pretty-print empty vcat sequence
4019[info] - pretty-print non-empty vcat sequence - non-wrap
4020[info] - pretty-print non-empty vcat sequence - wrap
4021[info] - pretty-print empty fillcat sequence
4022[info] - pretty-print non-empty fillcat sequence - non-wrap
4023[info] - pretty-print non-empty fillcat sequence - wrap
4024[info] - pretty-print empty sterm sequence
4025[info] - pretty-print non-empty sterm sequence - non-wrap
4026[info] - pretty-print non-empty sterm sequence - wrap
4027[info] - pretty-print hanging text
4028[info] - pretty-print indented text
4029[info] - pretty-print aligned text
4030[info] - pretty-print padded text
4031[info] - pretty-print padded text - with linebreak
4032[info] - pretty-print lists of simple values - non-wrap
4033[info] - pretty-print simple value arguments - non-wrap
4034[info] - pretty-print lists of simple values - wrap
4035[info] - pretty-print simple value arguments - wrap
4036[info] - pretty-print lists of simple values - wrap, non-default
4037[info] - pretty-print simple value arguments - wrap, non-default
4038[info] - pretty-print sequences of simple values - non-wrap
4039[info] - pretty-print sequences of simple values - wrap
4040[info] - pretty-print lists of structured values - non-wrap
4041[info] - pretty-print lists of structured values - wrap
4042[info] - pretty-print sequences of structured values - non-wrap
4043[info] - pretty-print sequences of structured values - wrap
4044[info] - pretty any-print empty array
4045[info] - pretty any-print singleton array
4046[info] - pretty any-print multiple-element array
4047[info] - pretty any-print empty vector
4048[info] - pretty any-print singleton vector
4049[info] - pretty any-print multiple-element vector
4050[info] - pretty any-print empty map
4051[info] - pretty any-print singleton map
4052[info] - pretty any-print multiple-element map
4053[info] - pretty any-print a product including a bridge omits the bridge
4054[info] - pretty-printing with no linked nodes yields an empty position map
4055[info] - pretty-printing linked values yields the correct position map
4056[info] - pretty-printing linked ranges yields the correct position map
4057
4058************************
4059Build summary:
4060[{
4061 "module": "kiama",
4062 "compile": {"status": "ok", "tookMs": 16323, "warnings": 11, "errors": 0, "sourceVersion": "3.8"},
4063 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
4064 "test-compile": {"status": "ok", "tookMs": 221, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
4065 "test": {"status": "ok", "tookMs": 149, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
4066 "publish": {"status": "skipped", "tookMs": 0},
4067 "metadata": {
4068 "crossScalaVersions": ["3.1.3", "3.0.2", "2.13.7", "2.12.18", "2.11.12"]
4069}
4070},{
4071 "module": "kiama-extras",
4072 "compile": {"status": "ok", "tookMs": 2254, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
4073 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
4074 "test-compile": {"status": "ok", "tookMs": 45786, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
4075 "test": {"status": "failed", "tookMs": 10348, "passed": 1659, "failed": 113, "ignored": 0, "skipped": 0, "total": 1772, "byFramework": [{"framework": "unknown", "stats": {"passed": 1659, "failed": 113, "ignored": 0, "skipped": 0, "total": 1772}}]},
4076 "publish": {"status": "skipped", "tookMs": 0},
4077 "metadata": {
4078 "crossScalaVersions": ["3.1.3", "3.0.2", "2.13.7", "2.12.18", "2.11.12"]
4079}
4080}]
4081************************
4082[error] Scala3CommunityBuild$ProjectBuildFailureException: 1 module(s) finished with failures: kiama-extras
4083[error] (Global / runBuild) Scala3CommunityBuild$ProjectBuildFailureException: 1 module(s) finished with failures: kiama-extras
4084[error] Total time: 94 s (0:01:34.0), completed Dec 4, 2025, 3:16:07 PM
4085[0JBuild failed, not retrying.