Build Logs
inkytonik/kiama • 3.8.0-RC4:2025-12-22
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-RC4
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-RC4
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-RC4
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-RC4
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-RC4"
72"++3.8.0-RC4 -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-RC4 """{"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.539s.
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-RC4
99OpenCB::Changing crossVersion 3.1.3 -> 3.8.0-RC4 in core/crossScalaVersions
100OpenCB::Changing crossVersion 3.0.2 -> 3.8.0-RC4 in core/crossScalaVersions
101OpenCB::Changing crossVersion 3.1.3 -> 3.8.0-RC4 in extras/crossScalaVersions
102OpenCB::Changing crossVersion 3.0.2 -> 3.8.0-RC4 in extras/crossScalaVersions
103OpenCB::Changing crossVersion 3.1.3 -> 3.8.0-RC4 in root/crossScalaVersions
104OpenCB::Changing crossVersion 3.0.2 -> 3.8.0-RC4 in root/crossScalaVersions
105[info] set current project to root (in build file:/build/repo/)
106[info] Setting Scala version to 3.8.0-RC4 on 3 projects.
107[info] Switching Scala version on:
108[info] * root (2.13.7, 3.8.0-RC4, 2.12.18, 2.11.12)
109[info] core (2.13.7, 3.8.0-RC4, 2.12.18, 2.11.12)
110[info] extras (2.13.7, 3.8.0-RC4, 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 22, 2025, 6:04:44 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-RC4/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-RC4/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-RC4/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: -- keywordasname.ob, expecting keywordasname.out
260[info] - Oberon0 testing A3 on base tests: -- emptybody.ob, expecting emptybody.out
261[info] - Oberon0 testing A3 on base tests: -- comment.ob, expecting comment.out
262[info] - Oberon0 testing A3 on base tests: -- emptymodule.ob, expecting emptymodule.out
263[info] - Oberon0 testing A3 on base tests: -- commentnoend.ob, expecting commentnoend.out
264[info] - Oberon0 testing A3 on L0 tests: -- selfref.ob, expecting selfref.out
265[info] - Oberon0 testing A3 on L0 tests: -- repeatsection.ob, expecting repeatsection.out
266[info] - Oberon0 testing A3 on L0 tests: -- keywordasname.ob, expecting keywordasname.out
267[info] - Oberon0 testing A3 on L0 tests: -- badassign.ob, expecting badassign.out
268[info] - Oberon0 testing A3 on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
269[info] - Oberon0 testing A3 on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
270[info] - Oberon0 testing A3 on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
271[info] - Oberon0 testing A3 on L0 tests: -- const.ob, expecting const.out
272[info] - Oberon0 testing A3 on L0 tests: -- type.ob, expecting type.out
273[info] - Oberon0 testing A3 on L0 tests: -- redefinteger.ob, expecting redefinteger.out
274[info] - Oberon0 testing A3 on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
275[info] - Oberon0 testing A3 on L0 tests: -- var.ob, expecting var.out
276[info] - Oberon0 testing A3 on L0 tests: -- redeftrue.ob, expecting redeftrue.out
277[info] - Oberon0 testing A3 on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
278[info] - Oberon0 testing A3 on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
279[info] "* [errors
280[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
281[info] ivar1 := 2 + 3 * 4;
282[info] ^]" was not equal to "* [_pp.ob
283[info] MODULE simpleexps;
284[info]
285[info] VAR
286[info] ivar1, ivar2 : INTEGER;
287[info] bvar1, bvar2 : BOOLEAN;
288[info]
289[info] BEGIN
290[info] ivar1 := 0;
291[info] ivar1 := 12;
292[info] ivar1 := 345;
293[info] ivar1 := 67890123;
294[info] ivar1 := -0;
295[info] ivar1 := -1;
296[info] ivar2 := -782374;
297[info] ivar2 := --10;
298[info] ivar1 := ivar2 + 1;
299[info] ivar1 := 2 + ivar2;
300[info] ivar1 := ivar2 - ivar1;
301[info] ivar1 := 3 - ivar2;
302[info] ivar1 := ivar2 * 4;
303[info] ivar1 := 5 * ivar2;
304[info] ivar1 := ivar2 DIV 6;
305[info] ivar1 := (-7) DIV (ivar2 + 1);
306[info] ivar1 := ivar2 MOD ivar1;
307[info] ivar1 := 8 MOD (ivar2 + 1);
308[info] ivar1 := 2 + 3 * 4;
309[info] ivar1 := (2 + 3) * 4;
310[info] ivar1 := 2 - 3 DIV 4;
311[info] ivar1 := (2 - 3) DIV 4;
312[info] ivar1 := 2 + 3 MOD 4;
313[info] ivar1 := (2 + 3) MOD 4;
314[info] ivar1 := 2 + 3 + 4;
315[info] ivar1 := 2 + (3 + 4);
316[info] ivar1 := 2 - 3 - 4;
317[info] ivar1 := 2 - (3 - 4);
318[info] ivar1 := 2 * 3 * 4;
319[info] ivar1 := 2 * (3 * 4);
320[info] ivar1 := 2 MOD 3 MOD 4;
321[info] ivar1 := 2 MOD (3 MOD 4);
322[info] ivar1 := 2 DIV 3 DIV 4;
323[info] ivar1 := 2 DIV (4 DIV 4);
324[info] bvar1 := FALSE;
325[info] bvar1 := TRUE;
326[info] bvar1 := bvar1 OR bvar2;
327[info] bvar1 := bvar1 & bvar2;
328[info] bvar1 := FALSE OR FALSE & TRUE;
329[info] bvar1 := bvar1 & ~bvar2;
330[info] bvar1 := bvar1 OR bvar2 OR FALSE;
331[info] bvar1 := bvar1 OR bvar2 & FALSE;
332[info] bvar1 := bvar1 & (TRUE & bvar2);
333[info] bvar1 := ~TRUE;
334[info] bvar1 := ~bvar1 & bvar2;
335[info] bvar1 := ~~bvar1;
336[info] bvar1 := ivar1 = ivar2;
337[info] bvar1 := ivar1 # ivar2;
338[info] bvar1 := ivar1 < ivar2;
339[info] bvar1 := ivar1 <= ivar2;
340[info] bvar1 := ivar1 > ivar2;
341[info] bvar1 := ivar1 >= ivar2;
342[info] bvar1 := (ivar1 = ivar2) OR bvar2;
343[info] bvar1 := bvar2 & (ivar1 # ivar2)
344[info] END simpleexps.]" (CompilerTests.scala:149)
345[info] - Oberon0 testing A3 on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
346[info] "* [errors
347[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
348[info] avar := answer - avar MOD 4;
349[info] ^]" was not equal to "* [_pp.ob
350[info] MODULE assign;
351[info]
352[info] CONST
353[info] answer = 42;
354[info] aconst1 = 1 + 42;
355[info] aconst2 = aconst1 * 2;
356[info]
357[info] VAR
358[info] avar, xvar : INTEGER;
359[info] bvar : BOOLEAN;
360[info]
361[info] BEGIN
362[info] avar := 10;
363[info] avar := answer - avar MOD 4;
364[info] avar := (answer + avar) * 4;
365[info] bvar := TRUE;
366[info] bvar := bvar OR bvar & FALSE
367[info] END assign.]" (CompilerTests.scala:149)
368[info] - Oberon0 testing A3 on L0 tests: -- badeq.ob, expecting badeq.out
369[info] - Oberon0 testing A3 on L0 tests: -- typenodecl.ob, expecting typenodecl.out
370[info] - Oberon0 testing A3 on L0 tests: -- intoverflow.ob, expecting intoverflow.out
371[info] - Oberon0 testing A3 on L1 tests: -- cond.ob, expecting cond.out
372[info] - Oberon0 testing A3 on L1 tests: -- badwhile.ob, expecting badwhile.out
373[info] - Oberon0 testing A3 on L1 tests: -- while.ob, expecting while.out
374[info] - Oberon0 testing A3 on L1 tests: -- badcond.ob, expecting badcond.out
375[info] - Oberon0 testing A3 on L1 tests: -- condname.ob, expecting condname.out
376[info] - Oberon0 testing A3 on L1 tests: -- whilename.ob, expecting whilename.out
377[info] - Oberon0 testing A3 on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
378[info] - Oberon0 testing A3 on L2 tests: -- case.ob, expecting case.out
379[info] - Oberon0 testing A3 on L2 tests: -- casename.ob, expecting casename.out
380[info] - Oberon0 testing A3 on L2 tests: -- lift.ob, expecting lift.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: -- casenoclause.ob, expecting casenoclause.out
384[info] - Oberon0 testing A3 on L2 tests: -- badcase.ob, expecting badcase.out
385[info] - Oberon0 testing A3 on L2 tests: -- forname.ob, expecting forname.out
386[info] - Oberon0 testing A3 on L3 tests: -- factorial.ob, expecting factorial.out
387[info] - Oberon0 testing A3 on L3 tests: -- recurse.ob, expecting recurse.out
388[info] - Oberon0 testing A3 on L3 tests: -- gcd.ob, expecting gcd.out
389[info] - Oberon0 testing A3 on L3 tests: -- wrongprocedurename.ob, expecting wrongprocedurename.out
390[info] - Oberon0 testing A3 on L3 tests: -- badproc.ob, expecting badproc.out
391[info] - Oberon0 testing A3 on L3 tests: -- proc.ob, expecting proc.out
392[info] - Oberon0 testing A3 on L3 tests: -- nonlocalvar.ob, expecting nonlocalvar.out
393[info] ObrExecTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests:
394[info] - ObrExec: --Kconsole string 0 -e -- comp2.obr, expecting comp2.obr.out from string '0'
395[info] - ObrExec: --Kconsole string 0 -e -- plus.obr, expecting plus.obr.out from string '0'
396[info] - ObrExec: --Kconsole string 0 -e -- and2.obr, expecting and2.obr.out from string '0'
397[info] - ObrExec: --Kconsole string 0 -e -- loop2.obr, expecting loop2.obr.out from string '0' *** FAILED ***
398[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/loop2.obr:14:22:error: '>' expected but 'T' found
399[info] IF w = 3 THEN EXIT; END
400[info] ^]
401[info] " was not equal to "[8]
402[info] " (CompilerTests.scala:149)
403[info] - ObrExec: --Kconsole string 0 -e -- const.obr, expecting const.obr.out from string '0'
404[info] - ObrExec: --Kconsole string 0 -e -- gthan2.obr, expecting gthan2.obr.out from string '0' *** FAILED ***
405[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gthan2.obr:3:14:error: '>' expected but 'T' found
406[info] IF 2 > 1 THEN
407[info] ^]
408[info] " was not equal to "[1]
409[info] " (CompilerTests.scala:149)
410[info] - ObrExec: --Kconsole string 0 -e -- lthan1.obr, expecting lthan1.obr.out from string '0' *** FAILED ***
411[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/lthan1.obr:3:14:error: '>' expected but 'T' found
412[info] IF 1 < 2 THEN
413[info] ^]
414[info] " was not equal to "[1]
415[info] " (CompilerTests.scala:149)
416[info] - ObrExec: --Kconsole string 0 -e -- and3.obr, expecting and3.obr.out from string '0'
417[info] - ObrExec: --Kconsole string 0 -e -- while2.obr, expecting while2.obr.out from string '0' *** FAILED ***
418[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/while2.obr:8:17:error: '>' expected but 'D' found
419[info] WHILE i < 0 DO
420[info] ^]
421[info] " was not equal to "[42]
422[info] " (CompilerTests.scala:149)
423[info] - ObrExec: --Kconsole string 0 -e -- for2.obr, expecting for2.obr.out from string '0'
424[info] - ObrExec: --Kconsole file gcd.obr.in -e -- gcd.obr, expecting gcd.obr.out from input gcd.obr.in *** FAILED ***
425[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gcd.obr:6:17:error: '>' expected but 'D' found
426[info] WHILE x # y DO
427[info] ^]
428[info] " was not equal to "[3]
429[info] " (CompilerTests.scala:149)
430[info] - ObrExec: --Kconsole string 0 -e -- equal2.obr, expecting equal2.obr.out from string '0' *** FAILED ***
431[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/equal2.obr:3:14:error: '>' expected but 'T' found
432[info] IF 1 = 2 THEN
433[info] ^]
434[info] " was not equal to "[1]
435[info] " (CompilerTests.scala:149)
436[info] - ObrExec: --Kconsole string 0 -e -- while1.obr, expecting while1.obr.out from string '0' *** FAILED ***
437[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/while1.obr:8:18:error: '>' expected but 'D' found
438[info] WHILE i < 10 DO
439[info] ^]
440[info] " was not equal to "[45]
441[info] " (CompilerTests.scala:149)
442[info] - ObrExec: --Kconsole string 0 -e -- for1.obr, expecting for1.obr.out from string '0'
443[info] - ObrExec: --Kconsole string 0 -e -- divide.obr, expecting divide.obr.out from string '0'
444[info] - ObrExec: --Kconsole string 0 -e -- or3.obr, expecting or3.obr.out from string '0'
445[info] - ObrExec: --Kconsole string 0 -e -- gthan1.obr, expecting gthan1.obr.out from string '0' *** FAILED ***
446[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gthan1.obr:3:14:error: '>' expected but 'T' found
447[info] IF 1 > 2 THEN
448[info] ^]
449[info] " was not equal to "[1]
450[info] " (CompilerTests.scala:149)
451[info] - ObrExec: --Kconsole string 0 -e -- record.obr, expecting record.obr.out from string '0'
452[info] - ObrExec: --Kconsole string 0 -e -- comp1.obr, expecting comp1.obr.out from string '0'
453[info] - ObrExec: --Kconsole string 0 -e -- neg.obr, expecting neg.obr.out from string '0'
454[info] - ObrExec: --Kconsole string 0 -e -- equal1.obr, expecting equal1.obr.out from string '0' *** FAILED ***
455[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/equal1.obr:3:14:error: '>' expected but 'T' found
456[info] IF 1 = 1 THEN
457[info] ^]
458[info] " was not equal to "[1]
459[info] " (CompilerTests.scala:149)
460[info] - ObrExec: --Kconsole string 0 -e -- minus.obr, expecting minus.obr.out from string '0'
461[info] - ObrExec: --Kconsole string 0 -e -- mod.obr, expecting mod.obr.out from string '0'
462[info] - ObrExec: --Kconsole string 0 -e -- times.obr, expecting times.obr.out from string '0'
463[info] - ObrExec: --Kconsole string 0 -e -- inequal2.obr, expecting inequal2.obr.out from string '0' *** FAILED ***
464[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/inequal2.obr:3:14:error: '>' expected but 'T' found
465[info] IF 1 # 2 THEN
466[info] ^]
467[info] " was not equal to "[1]
468[info] " (CompilerTests.scala:149)
469[info] - ObrExec: --Kconsole file factorial.obr.in -e -- factorial.obr, expecting factorial.obr.out from input factorial.obr.in *** FAILED ***
470[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/factorial.obr:18:21:error: '>' expected but 'D' found
471[info] WHILE c < v DO
472[info] ^]
473[info] " was not equal to "[120]
474[info] " (CompilerTests.scala:149)
475[info] - ObrExec: --Kconsole string 0 -e -- array.obr, expecting array.obr.out from string '0'
476[info] - ObrExec: --Kconsole string 0 -e -- or1.obr, expecting or1.obr.out from string '0'
477[info] - ObrExec: --Kconsole string 0 -e -- and1.obr, expecting and1.obr.out from string '0'
478[info] - ObrExec: --Kconsole string 0 -e -- lthan2.obr, expecting lthan2.obr.out from string '0' *** FAILED ***
479[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/lthan2.obr:3:14:error: '>' expected but 'T' found
480[info] IF 2 < 1 THEN
481[info] ^]
482[info] " was not equal to "[1]
483[info] " (CompilerTests.scala:149)
484[info] - ObrExec: --Kconsole string 0 -e -- inequal1.obr, expecting inequal1.obr.out from string '0' *** FAILED ***
485[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/inequal1.obr:3:14:error: '>' expected but 'T' found
486[info] IF 1 # 1 THEN
487[info] ^]
488[info] " was not equal to "[1]
489[info] " (CompilerTests.scala:149)
490[info] - ObrExec: --Kconsole string 0 -e -- or2.obr, expecting or2.obr.out from string '0'
491[info] - ObrExec: --Kconsole string 0 -e -- loop1.obr, expecting loop1.obr.out from string '0' *** FAILED ***
492[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/loop1.obr:10:18:error: '>' expected but 'T' found
493[info] IF v = 5 THEN EXIT; END
494[info] ^]
495[info] " was not equal to "[5]
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: -- keywordasname.ob, expecting keywordasname.out
859[info] - Oberon0 testing A2a on base tests: -- emptybody.ob, expecting emptybody.out
860[info] - Oberon0 testing A2a on base tests: -- comment.ob, expecting comment.out
861[info] - Oberon0 testing A2a on base tests: -- emptymodule.ob, expecting emptymodule.out
862[info] - Oberon0 testing A2a on base tests: -- commentnoend.ob, expecting commentnoend.out
863[info] - Oberon0 testing A2a on L0 tests: -- selfref.ob, expecting selfref.out
864[info] - Oberon0 testing A2a on L0 tests: -- repeatsection.ob, expecting repeatsection.out
865[info] - Oberon0 testing A2a on L0 tests: -- keywordasname.ob, expecting keywordasname.out
866[info] - Oberon0 testing A2a on L0 tests: -- badassign.ob, expecting badassign.out
867[info] - Oberon0 testing A2a on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
868[info] - Oberon0 testing A2a on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
869[info] - Oberon0 testing A2a on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
870[info] - Oberon0 testing A2a on L0 tests: -- const.ob, expecting const.out
871[info] - Oberon0 testing A2a on L0 tests: -- type.ob, expecting type.out
872[info] - Oberon0 testing A2a on L0 tests: -- redefinteger.ob, expecting redefinteger.out
873[info] - Oberon0 testing A2a on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
874[info] - Oberon0 testing A2a on L0 tests: -- var.ob, expecting var.out
875[info] - Oberon0 testing A2a on L0 tests: -- redeftrue.ob, expecting redeftrue.out
876[info] - Oberon0 testing A2a on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
877[info] - Oberon0 testing A2a on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
878[info] "* [errors
879[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
880[info] ivar1 := 2 + 3 * 4;
881[info] ^]" was not equal to "* [_pp.ob
882[info] MODULE simpleexps;
883[info]
884[info] VAR
885[info] ivar1, ivar2 : INTEGER;
886[info] bvar1, bvar2 : BOOLEAN;
887[info]
888[info] BEGIN
889[info] ivar1 := 0;
890[info] ivar1 := 12;
891[info] ivar1 := 345;
892[info] ivar1 := 67890123;
893[info] ivar1 := -0;
894[info] ivar1 := -1;
895[info] ivar2 := -782374;
896[info] ivar2 := --10;
897[info] ivar1 := ivar2 + 1;
898[info] ivar1 := 2 + ivar2;
899[info] ivar1 := ivar2 - ivar1;
900[info] ivar1 := 3 - ivar2;
901[info] ivar1 := ivar2 * 4;
902[info] ivar1 := 5 * ivar2;
903[info] ivar1 := ivar2 DIV 6;
904[info] ivar1 := (-7) DIV (ivar2 + 1);
905[info] ivar1 := ivar2 MOD ivar1;
906[info] ivar1 := 8 MOD (ivar2 + 1);
907[info] ivar1 := 2 + 3 * 4;
908[info] ivar1 := (2 + 3) * 4;
909[info] ivar1 := 2 - 3 DIV 4;
910[info] ivar1 := (2 - 3) DIV 4;
911[info] ivar1 := 2 + 3 MOD 4;
912[info] ivar1 := (2 + 3) MOD 4;
913[info] ivar1 := 2 + 3 + 4;
914[info] ivar1 := 2 + (3 + 4);
915[info] ivar1 := 2 - 3 - 4;
916[info] ivar1 := 2 - (3 - 4);
917[info] ivar1 := 2 * 3 * 4;
918[info] ivar1 := 2 * (3 * 4);
919[info] ivar1 := 2 MOD 3 MOD 4;
920[info] ivar1 := 2 MOD (3 MOD 4);
921[info] ivar1 := 2 DIV 3 DIV 4;
922[info] ivar1 := 2 DIV (4 DIV 4);
923[info] bvar1 := FALSE;
924[info] bvar1 := TRUE;
925[info] bvar1 := bvar1 OR bvar2;
926[info] bvar1 := bvar1 & bvar2;
927[info] bvar1 := FALSE OR FALSE & TRUE;
928[info] bvar1 := bvar1 & ~bvar2;
929[info] bvar1 := bvar1 OR bvar2 OR FALSE;
930[info] bvar1 := bvar1 OR bvar2 & FALSE;
931[info] bvar1 := bvar1 & (TRUE & bvar2);
932[info] bvar1 := ~TRUE;
933[info] bvar1 := ~bvar1 & bvar2;
934[info] bvar1 := ~~bvar1;
935[info] bvar1 := ivar1 = ivar2;
936[info] bvar1 := ivar1 # ivar2;
937[info] bvar1 := ivar1 < ivar2;
938[info] bvar1 := ivar1 <= ivar2;
939[info] bvar1 := ivar1 > ivar2;
940[info] bvar1 := ivar1 >= ivar2;
941[info] bvar1 := (ivar1 = ivar2) OR bvar2;
942[info] bvar1 := bvar2 & (ivar1 # ivar2)
943[info] END simpleexps.]" (CompilerTests.scala:149)
944[info] - Oberon0 testing A2a on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
945[info] "* [errors
946[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
947[info] avar := answer - avar MOD 4;
948[info] ^]" was not equal to "* [_pp.ob
949[info] MODULE assign;
950[info]
951[info] CONST
952[info] answer = 42;
953[info] aconst1 = 1 + 42;
954[info] aconst2 = aconst1 * 2;
955[info]
956[info] VAR
957[info] avar, xvar : INTEGER;
958[info] bvar : BOOLEAN;
959[info]
960[info] BEGIN
961[info] avar := 10;
962[info] avar := answer - avar MOD 4;
963[info] avar := (answer + avar) * 4;
964[info] bvar := TRUE;
965[info] bvar := bvar OR bvar & FALSE
966[info] END assign.]" (CompilerTests.scala:149)
967[info] - Oberon0 testing A2a on L0 tests: -- badeq.ob, expecting badeq.out
968[info] - Oberon0 testing A2a on L0 tests: -- typenodecl.ob, expecting typenodecl.out
969[info] - Oberon0 testing A2a on L0 tests: -- intoverflow.ob, expecting intoverflow.out
970[info] - Oberon0 testing A2a on L1 tests: -- cond.ob, expecting cond.out
971[info] - Oberon0 testing A2a on L1 tests: -- badwhile.ob, expecting badwhile.out
972[info] - Oberon0 testing A2a on L1 tests: -- while.ob, expecting while.out
973[info] - Oberon0 testing A2a on L1 tests: -- badcond.ob, expecting badcond.out
974[info] - Oberon0 testing A2a on L1 tests: -- condname.ob, expecting condname.out
975[info] - Oberon0 testing A2a on L1 tests: -- whilename.ob, expecting whilename.out
976[info] - Oberon0 testing A2a on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
977[info] - Oberon0 testing A2a on L2 tests: -- case.ob, expecting case.out
978[info] - Oberon0 testing A2a on L2 tests: -- casename.ob, expecting casename.out
979[info] - Oberon0 testing A2a on L2 tests: -- lift.ob, expecting lift.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: -- casenoclause.ob, expecting casenoclause.out
983[info] - Oberon0 testing A2a on L2 tests: -- badcase.ob, expecting badcase.out
984[info] - Oberon0 testing A2a on L2 tests: -- forname.ob, expecting forname.out
985[info] - Oberon0 testing A2a on L3 tests: -- factorial.ob, expecting factorial.out
986[info] - Oberon0 testing A2a on L3 tests: -- recurse.ob, expecting recurse.out
987[info] - Oberon0 testing A2a on L3 tests: -- gcd.ob, expecting gcd.out
988[info] - Oberon0 testing A2a on L3 tests: -- wrongprocedurename.ob, expecting wrongprocedurename.out
989[info] - Oberon0 testing A2a on L3 tests: -- badproc.ob, expecting badproc.out
990[info] - Oberon0 testing A2a on L3 tests: -- proc.ob, expecting proc.out
991[info] - Oberon0 testing A2a on L3 tests: -- nonlocalvar.ob, expecting nonlocalvar.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: -- typetests.pl, expecting typetests.sem
1185[info] - Prolog: -- likes.pl, expecting likes.sem
1186[info] - Prolog: -- family.pl, expecting family.sem
1187[info] - Prolog: -- nameerror.pl, expecting nameerror.sem
1188[info] - Prolog: -- nametests.pl, expecting nametests.sem
1189[info] - Prolog: -- typeerror.pl, expecting typeerror.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: -- illegal.pj, expecting illegal.out
1409[info] - PicoJava: -- CombinedTests.pj, expecting CombinedTests.out
1410[info] - PicoJava: -- DotNameResolutionTests.pj, expecting DotNameResolutionTests.out
1411[info] - PicoJava: -- ObfuscationTest.pj, expecting ObfuscationTest.out
1412[info] - PicoJava: -- BasicNameResolutionTests.pj, expecting BasicNameResolutionTests.out
1413[info] - PicoJava: --obfuscate -- InheritanceNameResolutionTests.pj, expecting InheritanceNameResolutionTests.obsout
1414[info] - PicoJava: --obfuscate -- illegal.pj, expecting illegal.obsout
1415[info] - PicoJava: --obfuscate -- CombinedTests.pj, expecting CombinedTests.obsout
1416[info] - PicoJava: --obfuscate -- DotNameResolutionTests.pj, expecting DotNameResolutionTests.obsout
1417[info] - PicoJava: --obfuscate -- ObfuscationTest.pj, expecting ObfuscationTest.obsout
1418[info] - PicoJava: --obfuscate -- BasicNameResolutionTests.pj, expecting BasicNameResolutionTests.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: -- keywordasname.ob, expecting keywordasname.out
1526[info] - Oberon0 testing A4 on base tests: -- emptybody.ob, expecting emptybody.out
1527[info] - Oberon0 testing A4 on base tests: -- comment.ob, expecting comment.out
1528[info] - Oberon0 testing A4 on base tests: -- emptymodule.ob, expecting emptymodule.out
1529[info] - Oberon0 testing A4 on base tests: -- commentnoend.ob, expecting commentnoend.out
1530[info] - Oberon0 testing A4 on L0 tests: -- selfref.ob, expecting selfref.out
1531[info] - Oberon0 testing A4 on L0 tests: -- repeatsection.ob, expecting repeatsection.out
1532[info] - Oberon0 testing A4 on L0 tests: -- keywordasname.ob, expecting keywordasname.out
1533[info] - Oberon0 testing A4 on L0 tests: -- badassign.ob, expecting badassign.out
1534[info] - Oberon0 testing A4 on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
1535[info] - Oberon0 testing A4 on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
1536[info] - Oberon0 testing A4 on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
1537[info] - Oberon0 testing A4 on L0 tests: -- const.ob, expecting const.out
1538[info] - Oberon0 testing A4 on L0 tests: -- type.ob, expecting type.out
1539[info] - Oberon0 testing A4 on L0 tests: -- redefinteger.ob, expecting redefinteger.out
1540[info] - Oberon0 testing A4 on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
1541[info] - Oberon0 testing A4 on L0 tests: -- var.ob, expecting var.out
1542[info] - Oberon0 testing A4 on L0 tests: -- redeftrue.ob, expecting redeftrue.out
1543[info] - Oberon0 testing A4 on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
1544[info] - Oberon0 testing A4 on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
1545[info] "* [errors
1546[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
1547[info] ivar1 := 2 + 3 * 4;
1548[info] ^]" was not equal to "* [_pp.ob
1549[info] MODULE simpleexps;
1550[info]
1551[info] VAR
1552[info] ivar1, ivar2 : INTEGER;
1553[info] bvar1, bvar2 : BOOLEAN;
1554[info]
1555[info] BEGIN
1556[info] ivar1 := 0;
1557[info] ivar1 := 12;
1558[info] ivar1 := 345;
1559[info] ivar1 := 67890123;
1560[info] ivar1 := -0;
1561[info] ivar1 := -1;
1562[info] ivar2 := -782374;
1563[info] ivar2 := --10;
1564[info] ivar1 := ivar2 + 1;
1565[info] ivar1 := 2 + ivar2;
1566[info] ivar1 := ivar2 - ivar1;
1567[info] ivar1 := 3 - ivar2;
1568[info] ivar1 := ivar2 * 4;
1569[info] ivar1 := 5 * ivar2;
1570[info] ivar1 := ivar2 DIV 6;
1571[info] ivar1 := (-7) DIV (ivar2 + 1);
1572[info] ivar1 := ivar2 MOD ivar1;
1573[info] ivar1 := 8 MOD (ivar2 + 1);
1574[info] ivar1 := 2 + 3 * 4;
1575[info] ivar1 := (2 + 3) * 4;
1576[info] ivar1 := 2 - 3 DIV 4;
1577[info] ivar1 := (2 - 3) DIV 4;
1578[info] ivar1 := 2 + 3 MOD 4;
1579[info] ivar1 := (2 + 3) MOD 4;
1580[info] ivar1 := 2 + 3 + 4;
1581[info] ivar1 := 2 + (3 + 4);
1582[info] ivar1 := 2 - 3 - 4;
1583[info] ivar1 := 2 - (3 - 4);
1584[info] ivar1 := 2 * 3 * 4;
1585[info] ivar1 := 2 * (3 * 4);
1586[info] ivar1 := 2 MOD 3 MOD 4;
1587[info] ivar1 := 2 MOD (3 MOD 4);
1588[info] ivar1 := 2 DIV 3 DIV 4;
1589[info] ivar1 := 2 DIV (4 DIV 4);
1590[info] bvar1 := FALSE;
1591[info] bvar1 := TRUE;
1592[info] bvar1 := bvar1 OR bvar2;
1593[info] bvar1 := bvar1 & bvar2;
1594[info] bvar1 := FALSE OR FALSE & TRUE;
1595[info] bvar1 := bvar1 & ~bvar2;
1596[info] bvar1 := bvar1 OR bvar2 OR FALSE;
1597[info] bvar1 := bvar1 OR bvar2 & FALSE;
1598[info] bvar1 := bvar1 & (TRUE & bvar2);
1599[info] bvar1 := ~TRUE;
1600[info] bvar1 := ~bvar1 & bvar2;
1601[info] bvar1 := ~~bvar1;
1602[info] bvar1 := ivar1 = ivar2;
1603[info] bvar1 := ivar1 # ivar2;
1604[info] bvar1 := ivar1 < ivar2;
1605[info] bvar1 := ivar1 <= ivar2;
1606[info] bvar1 := ivar1 > ivar2;
1607[info] bvar1 := ivar1 >= ivar2;
1608[info] bvar1 := (ivar1 = ivar2) OR bvar2;
1609[info] bvar1 := bvar2 & (ivar1 # ivar2)
1610[info] END simpleexps.
1611[info] * c
1612[info] #include <stdio.h>
1613[info] int ob_ivar12;
1614[info] int ob_ivar23;
1615[info] int ob_bvar14;
1616[info] int ob_bvar25;
1617[info] int main (int argc, char *argv[0]) {
1618[info] ob_ivar12 = 0;
1619[info] ob_ivar12 = 12;
1620[info] ob_ivar12 = 345;
1621[info] ob_ivar12 = 67890123;
1622[info] ob_ivar12 = -0;
1623[info] ob_ivar12 = -1;
1624[info] ob_ivar23 = -782374;
1625[info] ob_ivar23 = -(-10);
1626[info] ob_ivar12 = ob_ivar23 + 1;
1627[info] ob_ivar12 = 2 + ob_ivar23;
1628[info] ob_ivar12 = ob_ivar23 - ob_ivar12;
1629[info] ob_ivar12 = 3 - ob_ivar23;
1630[info] ob_ivar12 = ob_ivar23 * 4;
1631[info] ob_ivar12 = 5 * ob_ivar23;
1632[info] ob_ivar12 = ob_ivar23 / 6;
1633[info] ob_ivar12 = -7 / (ob_ivar23 + 1);
1634[info] ob_ivar12 = ob_ivar23 % ob_ivar12;
1635[info] ob_ivar12 = 8 % (ob_ivar23 + 1);
1636[info] ob_ivar12 = 2 + 3 * 4;
1637[info] ob_ivar12 = (2 + 3) * 4;
1638[info] ob_ivar12 = 2 - 3 / 4;
1639[info] ob_ivar12 = (2 - 3) / 4;
1640[info] ob_ivar12 = 2 + 3 % 4;
1641[info] ob_ivar12 = (2 + 3) % 4;
1642[info] ob_ivar12 = 2 + 3 + 4;
1643[info] ob_ivar12 = 2 + (3 + 4);
1644[info] ob_ivar12 = 2 - 3 - 4;
1645[info] ob_ivar12 = 2 - (3 - 4);
1646[info] ob_ivar12 = 2 * 3 * 4;
1647[info] ob_ivar12 = 2 * (3 * 4);
1648[info] ob_ivar12 = 2 % 3 % 4;
1649[info] ob_ivar12 = 2 % (3 % 4);
1650[info] ob_ivar12 = 2 / 3 / 4;
1651[info] ob_ivar12 = 2 / (4 / 4);
1652[info] ob_bvar14 = 0;
1653[info] ob_bvar14 = 1;
1654[info] ob_bvar14 = ob_bvar14 || ob_bvar25;
1655[info] ob_bvar14 = ob_bvar14 && ob_bvar25;
1656[info] ob_bvar14 = 0 || 0 && 1;
1657[info] ob_bvar14 = ob_bvar14 && !ob_bvar25;
1658[info] ob_bvar14 = ob_bvar14 || ob_bvar25 || 0;
1659[info] ob_bvar14 = ob_bvar14 || ob_bvar25 && 0;
1660[info] ob_bvar14 = ob_bvar14 && (1 && ob_bvar25);
1661[info] ob_bvar14 = !1;
1662[info] ob_bvar14 = !ob_bvar14 && ob_bvar25;
1663[info] ob_bvar14 = !!ob_bvar14;
1664[info] ob_bvar14 = ob_ivar12 == ob_ivar23;
1665[info] ob_bvar14 = ob_ivar12 != ob_ivar23;
1666[info] ob_bvar14 = ob_ivar12 < ob_ivar23;
1667[info] ob_bvar14 = ob_ivar12 <= ob_ivar23;
1668[info] ob_bvar14 = ob_ivar12 > ob_ivar23;
1669[info] ob_bvar14 = ob_ivar12 >= ob_ivar23;
1670[info] ob_bvar14 = ob_ivar12 == ob_ivar23 || ob_bvar25;
1671[info] ob_bvar14 = ob_bvar25 && ob_ivar12 != ob_ivar23;
1672[info] return 0;
1673[info] }]" (CompilerTests.scala:149)
1674[info] - Oberon0 testing A4 on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
1675[info] "* [errors
1676[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
1677[info] avar := answer - avar MOD 4;
1678[info] ^]" was not equal to "* [_pp.ob
1679[info] MODULE assign;
1680[info]
1681[info] CONST
1682[info] answer = 42;
1683[info] aconst1 = 1 + 42;
1684[info] aconst2 = aconst1 * 2;
1685[info]
1686[info] VAR
1687[info] avar, xvar : INTEGER;
1688[info] bvar : BOOLEAN;
1689[info]
1690[info] BEGIN
1691[info] avar := 10;
1692[info] avar := answer - avar MOD 4;
1693[info] avar := (answer + avar) * 4;
1694[info] bvar := TRUE;
1695[info] bvar := bvar OR bvar & FALSE
1696[info] END assign.
1697[info] * c
1698[info] #include <stdio.h>
1699[info] int ob_answer2 = 42;
1700[info] int ob_aconst13 = 43;
1701[info] int ob_aconst24 = 86;
1702[info] int ob_avar5;
1703[info] int ob_xvar6;
1704[info] int ob_bvar7;
1705[info] int main (int argc, char *argv[0]) {
1706[info] ob_avar5 = 10;
1707[info] ob_avar5 = ob_answer2 - ob_avar5 % 4;
1708[info] ob_avar5 = (ob_answer2 + ob_avar5) * 4;
1709[info] ob_bvar7 = 1;
1710[info] ob_bvar7 = ob_bvar7 || ob_bvar7 && 0;
1711[info] return 0;
1712[info] }]" (CompilerTests.scala:149)
1713[info] - Oberon0 testing A4 on L0 tests: -- badeq.ob, expecting badeq.out
1714[info] - Oberon0 testing A4 on L0 tests: -- typenodecl.ob, expecting typenodecl.out
1715[info] - Oberon0 testing A4 on L0 tests: -- intoverflow.ob, expecting intoverflow.out
1716[info] - Oberon0 testing A4 on L1 tests: -- cond.ob, expecting cond.out
1717[info] - Oberon0 testing A4 on L1 tests: -- badwhile.ob, expecting badwhile.out
1718[info] - Oberon0 testing A4 on L1 tests: -- while.ob, expecting while.out
1719[info] - Oberon0 testing A4 on L1 tests: -- badcond.ob, expecting badcond.out
1720[info] - Oberon0 testing A4 on L1 tests: -- condname.ob, expecting condname.out
1721[info] - Oberon0 testing A4 on L1 tests: -- whilename.ob, expecting whilename.out
1722[info] - Oberon0 testing A4 on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
1723[info] - Oberon0 testing A4 on L2 tests: -- case.ob, expecting case.out
1724[info] - Oberon0 testing A4 on L2 tests: -- casename.ob, expecting casename.out
1725[info] - Oberon0 testing A4 on L2 tests: -- lift.ob, expecting lift.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: -- casenoclause.ob, expecting casenoclause.out
1729[info] - Oberon0 testing A4 on L2 tests: -- badcase.ob, expecting badcase.out
1730[info] - Oberon0 testing A4 on L2 tests: -- forname.ob, expecting forname.out
1731[info] - Oberon0 testing A4 on L3 tests: -- factorial.ob, expecting factorial.out
1732[info] - Oberon0 testing A4 on L3 tests: -- recurse.ob, expecting recurse.out
1733[info] - Oberon0 testing A4 on L3 tests: -- gcd.ob, expecting gcd.out
1734[info] - Oberon0 testing A4 on L3 tests: -- wrongprocedurename.ob, expecting wrongprocedurename.out
1735[info] - Oberon0 testing A4 on L3 tests: -- badproc.ob, expecting badproc.out
1736[info] - Oberon0 testing A4 on L3 tests: -- proc.ob, expecting proc.out
1737[info] - Oberon0 testing A4 on L3 tests: -- nonlocalvar.ob, expecting nonlocalvar.out
1738[info] - Oberon0 testing A4 on L4 tests: -- array.ob, expecting array.out
1739[info] - Oberon0 testing A4 on L4 tests: -- nominalarg.ob, expecting nominalarg.out
1740[info] - Oberon0 testing A4 on L4 tests: -- badarray.ob, expecting badarray.out
1741[info] - Oberon0 testing A4 on L4 tests: -- record.ob, expecting record.out
1742[info] - Oberon0 testing A4 on L4 tests: -- badrecord.ob, expecting badrecord.out
1743[info] - Oberon0 testing A4 on L4 tests: -- recordname.ob, expecting recordname.out
1744[info] - Oberon0 testing A4 on L4 tests: -- arrayname.ob, expecting arrayname.out
1745[info] - Oberon0 testing A4 on L4 tests: -- badarg.ob, expecting badarg.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: -- quicksort.mj, expecting quicksort.out
1852[info] - minijava code generation: -- arraylength.mj, expecting arraylength.out
1853[info] - minijava code generation: -- whilezero.mj, expecting whilezero.out
1854[info] - minijava code generation: -- nottrue.mj, expecting nottrue.out
1855[info] - minijava code generation: -- whileone.mj, expecting whileone.out
1856[info] - minijava code generation: -- andtruetrue.mj, expecting andtruetrue.out
1857[info] - minijava code generation: -- linearsearch.mj, expecting linearsearch.out
1858[info] - minijava code generation: -- binarysearch.mj, expecting binarysearch.out
1859[info] - minijava code generation: -- bubblesort.mj, expecting bubblesort.out
1860[info] - minijava code generation: -- sub.mj, expecting sub.out
1861[info] - minijava code generation: -- andtruefalse.mj, expecting andtruefalse.out
1862[info] - minijava code generation: -- array.mj, expecting array.out
1863[info] - minijava code generation: -- mul.mj, expecting mul.out
1864[info] - minijava code generation: -- factorial.mj, expecting factorial.out
1865[info] - minijava code generation: -- iffalse.mj, expecting iffalse.out
1866[info] - minijava code generation: -- whilemany.mj, expecting whilemany.out
1867[info] - minijava code generation: -- notfalse.mj, expecting notfalse.out
1868[info] - minijava code generation: -- binarytree.mj, expecting binarytree.out
1869[info] - minijava code generation: -- andfalseloop.mj, expecting andfalseloop.out
1870[info] - minijava code generation: -- linkedlist.mj, expecting linkedlist.out
1871[info] - minijava code generation: -- iftrue.mj, expecting iftrue.out
1872[info] ObrSemanticTests in extras/src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests:
1873[info] - ObrSemanticEnum: -- enumok1.obr, expecting enumok1.out *** FAILED ***
1874[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumok1.obr:20:24:error: '>' expected but 'T' found
1875[info] IF CarColour = Red THEN
1876[info] ^
1877[info] ]" was not equal to "[]" (CompilerTests.scala:149)
1878[info] - ObrSemanticEnum: -- enumerr2.obr, expecting enumerr2.out *** FAILED ***
1879[info] "...antic/enumerr2.obr:1[9:23:error: '>' expected but 'T' found
1880[info] IF Blue < Tuesday THEN
1881[info] ] ^
1882[info] " was not equal to "...antic/enumerr2.obr:1[2:18:error: expected enumeration CarColour type got enumeration WeekDays
1883[info] CarColour := Wednesday;
1884[info] ^
1885[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:15:5:error: illegal assignment
1886[info] Red := Blue;
1887[info] ^
1888[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
1889[info] IF Blue < Tuesday THEN
1890[info] ^
1891[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
1892[info] IF FALSE < TRUE THEN
1893[info] ^
1894[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:29:18:error: expected enumeration CarColour type got integer
1895[info] CarColour := 0;
1896[info] ^
1897[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:32:10:error: expected integer type got enumeration CarColour
1898[info] i := Red;
1899[info] ^
1900[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:35:18:error: expected integer type got enumeration CarColour
1901[info] CarColour := Red + Green;
1902[info] ^
1903[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:35:22:error: expected enumeration CarColour type got integer
1904[info] CarColour := Red + Green;
1905[info] ^
1906[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:35:24:error: expected integer type got enumeration CarColour
1907[info] CarColour := Red + Green;
1908[info] ^
1909[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:38:18:error: expected integer type got enumeration CarColour
1910[info] CarColour := Red + Monday;
1911[info] ^
1912[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:38:22:error: expected enumeration CarColour type got integer
1913[info] CarColour := Red + Monday;
1914[info] ^
1915[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:38:24:error: expected integer type got enumeration WeekDays
1916[info] CarColour := Red + Monday;
1917[info] ^
1918[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/enum/semantic/enumerr2.obr:41:10:error: expected integer type got enumeration CarColour
1919[info] i := Red + 1;
1920[info] ] ^
1921[info] " (CompilerTests.scala:149)
1922[info] - ObrSemanticEnum: -- enumerr1.obr, expecting enumerr1.out
1923[info] - ObrSemanticException: -- excok3.obr, expecting excok3.out
1924[info] - ObrSemanticException: -- excok1.obr, expecting excok1.out
1925[info] - ObrSemanticException: -- excerr1.obr, expecting excerr1.out
1926[info] - ObrSemanticException: -- excerr2.obr, expecting excerr2.out *** FAILED ***
1927[info] "...mantic/excerr2.obr:1[8:26:error: '>' expected but 'T' found
1928[info] IF FallOverALot > 10 THEN
1929[info] ] ^
1930[info] " was not equal to "...mantic/excerr2.obr:1[4:5:error: illegal assignment
1931[info] FallOverALot := 1;
1932[info] ^
1933[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:14:21:error: expected exception type got integer
1934[info] FallOverALot := 1;
1935[info] ^
1936[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:15:5:error: illegal assignment
1937[info] DivideByZero := 10;
1938[info] ^
1939[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:15:21:error: expected exception type got integer
1940[info] DivideByZero := 10;
1941[info] ^
1942[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
1943[info] IF FallOverALot > 10 THEN
1944[info] ^
1945[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:19:14:error: expected integer type got exception
1946[info] i := DivideByZero + 1;
1947[info] ^
1948[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
1949[info] RAISE i;
1950[info] ^
1951[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
1952[info] CATCH j DO
1953[info] ^
1954[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
1955[info] CATCH i DO
1956[info] ^
1957[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:36:14:error: true is not declared
1958[info] i := true;
1959[info] ^
1960[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:38:9:error: illegal assignment
1961[info] FallOverALot := 1;
1962[info] ^
1963[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:38:25:error: expected exception type got integer
1964[info] FallOverALot := 1;
1965[info] ^
1966[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excerr2.obr:40:18:error: expected integer type got exception
1967[info] i := j + DivideByZero;
1968[info] ] ^
1969[info] " (CompilerTests.scala:149)
1970[info] - ObrSemanticException: -- excok2.obr, expecting excok2.out *** FAILED ***
1971[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/semantic/excok2.obr:17:16:error: '>' expected but 'T' found
1972[info] IF A < 0 THEN
1973[info] ^
1974[info] ]" was not equal to "[]" (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: -- enumok2.obr, expecting enumok2.out
2582[info] - ObrParserEnum: -- enumok1.obr, expecting enumok1.out
2583[info] - ObrParserEnum: -- enumerr2.obr, expecting enumerr2.out
2584[info] - ObrParserEnum: -- enumerr1a.obr, expecting enumerr1a.out
2585[info] - ObrParserEnum: -- enumok4.obr, expecting enumok4.out
2586[info] - ObrParserEnum: -- enumerr3b.obr, expecting enumerr3b.out
2587[info] - ObrParserEnum: -- enumerr1b.obr, expecting enumerr1b.out
2588[info] - ObrParserEnum: -- enumerr3a.obr, expecting enumerr3a.out
2589[info] - ObrParserEnum: -- enumok3.obr, expecting enumok3.out
2590[info] - ObrParserException: -- excok3.obr, expecting excok3.out
2591[info] - ObrParserException: -- exerr4a.obr, expecting exerr4a.out
2592[info] - ObrParserException: -- excok1.obr, expecting excok1.out
2593[info] - ObrParserException: -- exerr2.obr, expecting exerr2.out
2594[info] - ObrParserException: -- excok6.obr, expecting excok6.out
2595[info] - ObrParserException: -- exerr4b.obr, expecting exerr4b.out *** FAILED ***
2596[info] ".../parser/exerr4b.obr:[9:16:error: '>' expected but 'T' found
2597[info] IF A < 0 THEN
2598[info] ] ^
2599[info] " was not equal to ".../parser/exerr4b.obr:[16:17:error: ':=' expected but 'D' found
2600[info] DivideByZero DO
2601[info] ] ^
2602[info] " (CompilerTests.scala:149)
2603[info] - ObrParserException: -- excok5.obr, expecting excok5.out
2604[info] - ObrParserException: -- exerr3.obr, expecting exerr3.out
2605[info] - ObrParserException: -- excok4.obr, expecting excok4.out *** FAILED ***
2606[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/exceptions/parser/excok4.obr:9:16:error: '>' expected but 'T' found
2607[info] IF A < 0 THEN
2608[info] ^]
2609[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)]
2610[info] " (CompilerTests.scala:149)
2611[info] - ObrParserException: -- exerr1.obr, expecting exerr1.out
2612[info] - ObrParserException: -- excok2.obr, expecting excok2.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: -- skating.json, expecting skating.out
2651[info] - JSON: -- small.json, expecting small.out
2652[info] - JSON: -- test.json, expecting test.out
2653[info] - JSON: -- array.json, expecting array.out
2654[info] - JSON: -- 101comp.json, expecting 101comp.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: -- keywordasname.ob, expecting keywordasname.out
2680[info] - Oberon0 testing A2b on base tests: -- emptybody.ob, expecting emptybody.out
2681[info] - Oberon0 testing A2b on base tests: -- comment.ob, expecting comment.out
2682[info] - Oberon0 testing A2b on base tests: -- emptymodule.ob, expecting emptymodule.out
2683[info] - Oberon0 testing A2b on base tests: -- commentnoend.ob, expecting commentnoend.out
2684[info] - Oberon0 testing A2b on L0 tests: -- selfref.ob, expecting selfref.out
2685[info] - Oberon0 testing A2b on L0 tests: -- repeatsection.ob, expecting repeatsection.out
2686[info] - Oberon0 testing A2b on L0 tests: -- keywordasname.ob, expecting keywordasname.out
2687[info] - Oberon0 testing A2b on L0 tests: -- badassign.ob, expecting badassign.out
2688[info] - Oberon0 testing A2b on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
2689[info] - Oberon0 testing A2b on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
2690[info] - Oberon0 testing A2b on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
2691[info] - Oberon0 testing A2b on L0 tests: -- const.ob, expecting const.out
2692[info] - Oberon0 testing A2b on L0 tests: -- type.ob, expecting type.out
2693[info] - Oberon0 testing A2b on L0 tests: -- redefinteger.ob, expecting redefinteger.out
2694[info] - Oberon0 testing A2b on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
2695[info] - Oberon0 testing A2b on L0 tests: -- var.ob, expecting var.out
2696[info] - Oberon0 testing A2b on L0 tests: -- redeftrue.ob, expecting redeftrue.out
2697[info] - Oberon0 testing A2b on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
2698[info] - Oberon0 testing A2b on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
2699[info] "* [errors
2700[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
2701[info] ivar1 := 2 + 3 * 4;
2702[info] ^]" was not equal to "* [_pp.ob
2703[info] MODULE simpleexps;
2704[info]
2705[info] VAR
2706[info] ivar1, ivar2 : INTEGER;
2707[info] bvar1, bvar2 : BOOLEAN;
2708[info]
2709[info] BEGIN
2710[info] ivar1 := 0;
2711[info] ivar1 := 12;
2712[info] ivar1 := 345;
2713[info] ivar1 := 67890123;
2714[info] ivar1 := -0;
2715[info] ivar1 := -1;
2716[info] ivar2 := -782374;
2717[info] ivar2 := --10;
2718[info] ivar1 := ivar2 + 1;
2719[info] ivar1 := 2 + ivar2;
2720[info] ivar1 := ivar2 - ivar1;
2721[info] ivar1 := 3 - ivar2;
2722[info] ivar1 := ivar2 * 4;
2723[info] ivar1 := 5 * ivar2;
2724[info] ivar1 := ivar2 DIV 6;
2725[info] ivar1 := (-7) DIV (ivar2 + 1);
2726[info] ivar1 := ivar2 MOD ivar1;
2727[info] ivar1 := 8 MOD (ivar2 + 1);
2728[info] ivar1 := 2 + 3 * 4;
2729[info] ivar1 := (2 + 3) * 4;
2730[info] ivar1 := 2 - 3 DIV 4;
2731[info] ivar1 := (2 - 3) DIV 4;
2732[info] ivar1 := 2 + 3 MOD 4;
2733[info] ivar1 := (2 + 3) MOD 4;
2734[info] ivar1 := 2 + 3 + 4;
2735[info] ivar1 := 2 + (3 + 4);
2736[info] ivar1 := 2 - 3 - 4;
2737[info] ivar1 := 2 - (3 - 4);
2738[info] ivar1 := 2 * 3 * 4;
2739[info] ivar1 := 2 * (3 * 4);
2740[info] ivar1 := 2 MOD 3 MOD 4;
2741[info] ivar1 := 2 MOD (3 MOD 4);
2742[info] ivar1 := 2 DIV 3 DIV 4;
2743[info] ivar1 := 2 DIV (4 DIV 4);
2744[info] bvar1 := FALSE;
2745[info] bvar1 := TRUE;
2746[info] bvar1 := bvar1 OR bvar2;
2747[info] bvar1 := bvar1 & bvar2;
2748[info] bvar1 := FALSE OR FALSE & TRUE;
2749[info] bvar1 := bvar1 & ~bvar2;
2750[info] bvar1 := bvar1 OR bvar2 OR FALSE;
2751[info] bvar1 := bvar1 OR bvar2 & FALSE;
2752[info] bvar1 := bvar1 & (TRUE & bvar2);
2753[info] bvar1 := ~TRUE;
2754[info] bvar1 := ~bvar1 & bvar2;
2755[info] bvar1 := ~~bvar1;
2756[info] bvar1 := ivar1 = ivar2;
2757[info] bvar1 := ivar1 # ivar2;
2758[info] bvar1 := ivar1 < ivar2;
2759[info] bvar1 := ivar1 <= ivar2;
2760[info] bvar1 := ivar1 > ivar2;
2761[info] bvar1 := ivar1 >= ivar2;
2762[info] bvar1 := (ivar1 = ivar2) OR bvar2;
2763[info] bvar1 := bvar2 & (ivar1 # ivar2)
2764[info] END simpleexps.]" (CompilerTests.scala:149)
2765[info] - Oberon0 testing A2b on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
2766[info] "* [errors
2767[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
2768[info] avar := answer - avar MOD 4;
2769[info] ^]" was not equal to "* [_pp.ob
2770[info] MODULE assign;
2771[info]
2772[info] CONST
2773[info] answer = 42;
2774[info] aconst1 = 1 + 42;
2775[info] aconst2 = aconst1 * 2;
2776[info]
2777[info] VAR
2778[info] avar, xvar : INTEGER;
2779[info] bvar : BOOLEAN;
2780[info]
2781[info] BEGIN
2782[info] avar := 10;
2783[info] avar := answer - avar MOD 4;
2784[info] avar := (answer + avar) * 4;
2785[info] bvar := TRUE;
2786[info] bvar := bvar OR bvar & FALSE
2787[info] END assign.]" (CompilerTests.scala:149)
2788[info] - Oberon0 testing A2b on L0 tests: -- badeq.ob, expecting badeq.out
2789[info] - Oberon0 testing A2b on L0 tests: -- typenodecl.ob, expecting typenodecl.out
2790[info] - Oberon0 testing A2b on L0 tests: -- intoverflow.ob, expecting intoverflow.out
2791[info] - Oberon0 testing A2b on L1 tests: -- cond.ob, expecting cond.out
2792[info] - Oberon0 testing A2b on L1 tests: -- badwhile.ob, expecting badwhile.out
2793[info] - Oberon0 testing A2b on L1 tests: -- while.ob, expecting while.out
2794[info] - Oberon0 testing A2b on L1 tests: -- badcond.ob, expecting badcond.out
2795[info] - Oberon0 testing A2b on L1 tests: -- condname.ob, expecting condname.out
2796[info] - Oberon0 testing A2b on L1 tests: -- whilename.ob, expecting whilename.out
2797[info] - Oberon0 testing A2b on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
2798[info] - Oberon0 testing A2b on L2 tests: -- case.ob, expecting case.out
2799[info] - Oberon0 testing A2b on L2 tests: -- casename.ob, expecting casename.out
2800[info] - Oberon0 testing A2b on L2 tests: -- lift.ob, expecting lift.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: -- casenoclause.ob, expecting casenoclause.out
2804[info] - Oberon0 testing A2b on L2 tests: -- badcase.ob, expecting badcase.out
2805[info] - Oberon0 testing A2b on L2 tests: -- forname.ob, expecting forname.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: -- keywordasname.ob, expecting keywordasname.out
2844[info] - Oberon0 testing A1 on base tests: -- emptybody.ob, expecting emptybody.out
2845[info] - Oberon0 testing A1 on base tests: -- comment.ob, expecting comment.out
2846[info] - Oberon0 testing A1 on base tests: -- emptymodule.ob, expecting emptymodule.out
2847[info] - Oberon0 testing A1 on base tests: -- commentnoend.ob, expecting commentnoend.out
2848[info] - Oberon0 testing A1 on L0 tests: -- selfref.ob, expecting selfref.out
2849[info] - Oberon0 testing A1 on L0 tests: -- repeatsection.ob, expecting repeatsection.out
2850[info] - Oberon0 testing A1 on L0 tests: -- keywordasname.ob, expecting keywordasname.out
2851[info] - Oberon0 testing A1 on L0 tests: -- badassign.ob, expecting badassign.out
2852[info] - Oberon0 testing A1 on L0 tests: -- keywordprefix.ob, expecting keywordprefix.out
2853[info] - Oberon0 testing A1 on L0 tests: -- nonmoduleasmodulename.ob, expecting nonmoduleasmodulename.out
2854[info] - Oberon0 testing A1 on L0 tests: -- nonintconstant.ob, expecting nonintconstant.out
2855[info] - Oberon0 testing A1 on L0 tests: -- const.ob, expecting const.out
2856[info] - Oberon0 testing A1 on L0 tests: -- type.ob, expecting type.out
2857[info] - Oberon0 testing A1 on L0 tests: -- redefinteger.ob, expecting redefinteger.out
2858[info] - Oberon0 testing A1 on L0 tests: -- emptydeclsections.ob, expecting emptydeclsections.out
2859[info] - Oberon0 testing A1 on L0 tests: -- var.ob, expecting var.out
2860[info] - Oberon0 testing A1 on L0 tests: -- redeftrue.ob, expecting redeftrue.out
2861[info] - Oberon0 testing A1 on L0 tests: -- wrongmodulename.ob, expecting wrongmodulename.out
2862[info] - Oberon0 testing A1 on L0 tests: -- simpleexps.ob, expecting simpleexps.out *** FAILED ***
2863[info] "* [errors
2864[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/simpleexps.ob:29:23:error: '&' expected but ';' found
2865[info] ivar1 := 2 + 3 * 4;
2866[info] ^]" was not equal to "* [_pp.ob
2867[info] MODULE simpleexps;
2868[info]
2869[info] VAR
2870[info] ivar1, ivar2 : INTEGER;
2871[info] bvar1, bvar2 : BOOLEAN;
2872[info]
2873[info] BEGIN
2874[info] ivar1 := 0;
2875[info] ivar1 := 12;
2876[info] ivar1 := 345;
2877[info] ivar1 := 67890123;
2878[info] ivar1 := -0;
2879[info] ivar1 := -1;
2880[info] ivar2 := -782374;
2881[info] ivar2 := --10;
2882[info] ivar1 := ivar2 + 1;
2883[info] ivar1 := 2 + ivar2;
2884[info] ivar1 := ivar2 - ivar1;
2885[info] ivar1 := 3 - ivar2;
2886[info] ivar1 := ivar2 * 4;
2887[info] ivar1 := 5 * ivar2;
2888[info] ivar1 := ivar2 DIV 6;
2889[info] ivar1 := (-7) DIV (ivar2 + 1);
2890[info] ivar1 := ivar2 MOD ivar1;
2891[info] ivar1 := 8 MOD (ivar2 + 1);
2892[info] ivar1 := 2 + 3 * 4;
2893[info] ivar1 := (2 + 3) * 4;
2894[info] ivar1 := 2 - 3 DIV 4;
2895[info] ivar1 := (2 - 3) DIV 4;
2896[info] ivar1 := 2 + 3 MOD 4;
2897[info] ivar1 := (2 + 3) MOD 4;
2898[info] ivar1 := 2 + 3 + 4;
2899[info] ivar1 := 2 + (3 + 4);
2900[info] ivar1 := 2 - 3 - 4;
2901[info] ivar1 := 2 - (3 - 4);
2902[info] ivar1 := 2 * 3 * 4;
2903[info] ivar1 := 2 * (3 * 4);
2904[info] ivar1 := 2 MOD 3 MOD 4;
2905[info] ivar1 := 2 MOD (3 MOD 4);
2906[info] ivar1 := 2 DIV 3 DIV 4;
2907[info] ivar1 := 2 DIV (4 DIV 4);
2908[info] bvar1 := FALSE;
2909[info] bvar1 := TRUE;
2910[info] bvar1 := bvar1 OR bvar2;
2911[info] bvar1 := bvar1 & bvar2;
2912[info] bvar1 := FALSE OR FALSE & TRUE;
2913[info] bvar1 := bvar1 & ~bvar2;
2914[info] bvar1 := bvar1 OR bvar2 OR FALSE;
2915[info] bvar1 := bvar1 OR bvar2 & FALSE;
2916[info] bvar1 := bvar1 & (TRUE & bvar2);
2917[info] bvar1 := ~TRUE;
2918[info] bvar1 := ~bvar1 & bvar2;
2919[info] bvar1 := ~~bvar1;
2920[info] bvar1 := ivar1 = ivar2;
2921[info] bvar1 := ivar1 # ivar2;
2922[info] bvar1 := ivar1 < ivar2;
2923[info] bvar1 := ivar1 <= ivar2;
2924[info] bvar1 := ivar1 > ivar2;
2925[info] bvar1 := ivar1 >= ivar2;
2926[info] bvar1 := (ivar1 = ivar2) OR bvar2;
2927[info] bvar1 := bvar2 & (ivar1 # ivar2)
2928[info] END simpleexps.]" (CompilerTests.scala:149)
2929[info] - Oberon0 testing A1 on L0 tests: -- assign.ob, expecting assign.out *** FAILED ***
2930[info] "* [errors
2931[info] src/test/scala/org/bitbucket/inkytonik/kiama/example/oberon0/L0/tests/assign.ob:14:32:error: '&' expected but ';' found
2932[info] avar := answer - avar MOD 4;
2933[info] ^]" was not equal to "* [_pp.ob
2934[info] MODULE assign;
2935[info]
2936[info] CONST
2937[info] answer = 42;
2938[info] aconst1 = 1 + 42;
2939[info] aconst2 = aconst1 * 2;
2940[info]
2941[info] VAR
2942[info] avar, xvar : INTEGER;
2943[info] bvar : BOOLEAN;
2944[info]
2945[info] BEGIN
2946[info] avar := 10;
2947[info] avar := answer - avar MOD 4;
2948[info] avar := (answer + avar) * 4;
2949[info] bvar := TRUE;
2950[info] bvar := bvar OR bvar & FALSE
2951[info] END assign.]" (CompilerTests.scala:149)
2952[info] - Oberon0 testing A1 on L0 tests: -- badeq.ob, expecting badeq.out
2953[info] - Oberon0 testing A1 on L0 tests: -- typenodecl.ob, expecting typenodecl.out
2954[info] - Oberon0 testing A1 on L0 tests: -- intoverflow.ob, expecting intoverflow.out
2955[info] - Oberon0 testing A1 on L1 tests: -- cond.ob, expecting cond.out
2956[info] - Oberon0 testing A1 on L1 tests: -- badwhile.ob, expecting badwhile.out
2957[info] - Oberon0 testing A1 on L1 tests: -- while.ob, expecting while.out
2958[info] - Oberon0 testing A1 on L1 tests: -- badcond.ob, expecting badcond.out
2959[info] - Oberon0 testing A1 on L1 tests: -- condname.ob, expecting condname.out
2960[info] - Oberon0 testing A1 on L1 tests: -- whilename.ob, expecting whilename.out
2961[info] - Oberon0 testing A1 on L2 tests: -- keywordnowsfollowing.ob, expecting keywordnowsfollowing.out
2962[info] - Oberon0 testing A1 on L2 tests: -- case.ob, expecting case.out
2963[info] - Oberon0 testing A1 on L2 tests: -- casename.ob, expecting casename.out
2964[info] - Oberon0 testing A1 on L2 tests: -- lift.ob, expecting lift.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: -- casenoclause.ob, expecting casenoclause.out
2968[info] - Oberon0 testing A1 on L2 tests: -- badcase.ob, expecting badcase.out
2969[info] - Oberon0 testing A1 on L2 tests: -- forname.ob, expecting forname.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: -- test4.exp, expecting test4.out
3022[info] - Transform: -- test6.exp, expecting test6.out
3023[info] - Transform: -- test7.exp, expecting test7.out
3024[info] - Transform: -- test5.exp, expecting test5.out
3025[info] - Transform: -- test1.exp, expecting test1.out
3026[info] - Transform: -- test3.exp, expecting test3.out
3027[info] - Transform: -- test8.exp, expecting test8.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 -- comp2.obr, expecting comp2.risc
3038[info] - ObrRegression: -a -- plus.obr, expecting plus.risc
3039[info] - ObrRegression: -a -- and2.obr, expecting and2.risc
3040[info] - ObrRegression: -a -- loop2.obr, expecting loop2.risc *** FAILED ***
3041[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/loop2.obr:14:22:error: '>' expected but 'T' found
3042[info] IF w = 3 THEN EXIT; END
3043[info] ^]
3044[info] " was not equal to "[ ! Prologue
3045[info] movi $27, $0, 0
3046[info] ! StW(Local(8),Read())
3047[info] rd $1
3048[info] stw $1, $27, 8
3049[info] ! StW(Local(12),IntDatum(0))
3050[info] movi $1, $0, 0
3051[info] stw $1, $27, 12
3052[info] ! LabelDef(Label(1))
3053[info] label1:
3054[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3055[info] ldw $1, $27, 12
3056[info] movi $2, $0, 1
3057[info] add $1, $1, $2
3058[info] stw $1, $27, 12
3059[info] ! StW(Local(16),IntDatum(0))
3060[info] movi $1, $0, 0
3061[info] stw $1, $27, 16
3062[info] ! LabelDef(Label(2))
3063[info] label2:
3064[info] ! StW(Local(16),AddW(LdW(Local(16)),IntDatum(1)))
3065[info] ldw $1, $27, 16
3066[info] movi $2, $0, 1
3067[info] add $1, $1, $2
3068[info] stw $1, $27, 16
3069[info] ! Beq(CmpeqW(LdW(Local(16)),IntDatum(3)),Label(3))
3070[info] ldw $1, $27, 16
3071[info] movi $2, $0, 3
3072[info] cmp $1, $2
3073[info] movi $1, $0, 1
3074[info] beq label11
3075[info] movi $1, $0, 0
3076[info] label11:
3077[info] cmpi $1, 0
3078[info] beq label3
3079[info] ! Jmp(Label(5))
3080[info] br label5
3081[info] ! Jmp(Label(4))
3082[info] br label4
3083[info] ! LabelDef(Label(3))
3084[info] label3:
3085[info] ! LabelDef(Label(4))
3086[info] label4:
3087[info] ! StW(Local(16),AddW(LdW(Local(16)),IntDatum(1)))
3088[info] ldw $1, $27, 16
3089[info] movi $2, $0, 1
3090[info] add $1, $1, $2
3091[info] stw $1, $27, 16
3092[info] ! Jmp(Label(2))
3093[info] br label2
3094[info] ! LabelDef(Label(5))
3095[info] label5:
3096[info] ! Beq(CmpeqW(LdW(Local(12)),IntDatum(5)),Label(6))
3097[info] ldw $1, $27, 12
3098[info] movi $2, $0, 5
3099[info] cmp $1, $2
3100[info] movi $1, $0, 1
3101[info] beq label12
3102[info] movi $1, $0, 0
3103[info] label12:
3104[info] cmpi $1, 0
3105[info] beq label6
3106[info] ! Jmp(Label(8))
3107[info] br label8
3108[info] ! Jmp(Label(7))
3109[info] br label7
3110[info] ! LabelDef(Label(6))
3111[info] label6:
3112[info] ! LabelDef(Label(7))
3113[info] label7:
3114[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3115[info] ldw $1, $27, 12
3116[info] movi $2, $0, 1
3117[info] add $1, $1, $2
3118[info] stw $1, $27, 12
3119[info] ! Jmp(Label(1))
3120[info] br label1
3121[info] ! LabelDef(Label(8))
3122[info] label8:
3123[info] ! Write(AddW(LdW(Local(12)),LdW(Local(16))))
3124[info] ldw $1, $27, 12
3125[info] ldw $2, $27, 16
3126[info] add $1, $1, $2
3127[info] wrd $1
3128[info] wrl
3129[info] ! Ret()
3130[info] br label10
3131[info] ! Write(IntDatum(0))
3132[info] movi $1, $0, 0
3133[info] wrd $1
3134[info] wrl
3135[info] ! Ret()
3136[info] br label10
3137[info] ! LabelDef(Label(9))
3138[info] label9:
3139[info] ! Write(IntDatum(-1))
3140[info] movi $1, $0, -1
3141[info] wrd $1
3142[info] wrl
3143[info] ! Epilogue
3144[info] label10:
3145[info] ret $0]
3146[info] " (CompilerTests.scala:149)
3147[info] - ObrRegression: -a -- const.obr, expecting const.risc
3148[info] - ObrRegression: -a -- gthan2.obr, expecting gthan2.risc *** FAILED ***
3149[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gthan2.obr:3:14:error: '>' expected but 'T' found
3150[info] IF 2 > 1 THEN
3151[info] ^]
3152[info] " was not equal to "[ ! Prologue
3153[info] movi $27, $0, 0
3154[info] ! StW(Local(8),Read())
3155[info] rd $1
3156[info] stw $1, $27, 8
3157[info] ! Beq(CmpgtW(IntDatum(2),IntDatum(1)),Label(1))
3158[info] movi $1, $0, 2
3159[info] movi $2, $0, 1
3160[info] cmp $1, $2
3161[info] movi $1, $0, 1
3162[info] bgt label5
3163[info] movi $1, $0, 0
3164[info] label5:
3165[info] cmpi $1, 0
3166[info] beq label1
3167[info] ! Write(IntDatum(1))
3168[info] movi $1, $0, 1
3169[info] wrd $1
3170[info] wrl
3171[info] ! Ret()
3172[info] br label4
3173[info] ! Jmp(Label(2))
3174[info] br label2
3175[info] ! LabelDef(Label(1))
3176[info] label1:
3177[info] ! Write(IntDatum(0))
3178[info] movi $1, $0, 0
3179[info] wrd $1
3180[info] wrl
3181[info] ! Ret()
3182[info] br label4
3183[info] ! LabelDef(Label(2))
3184[info] label2:
3185[info] ! Write(IntDatum(0))
3186[info] movi $1, $0, 0
3187[info] wrd $1
3188[info] wrl
3189[info] ! Ret()
3190[info] br label4
3191[info] ! LabelDef(Label(3))
3192[info] label3:
3193[info] ! Write(IntDatum(-1))
3194[info] movi $1, $0, -1
3195[info] wrd $1
3196[info] wrl
3197[info] ! Epilogue
3198[info] label4:
3199[info] ret $0]
3200[info] " (CompilerTests.scala:149)
3201[info] - ObrRegression: -a -- lthan1.obr, expecting lthan1.risc *** FAILED ***
3202[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/lthan1.obr:3:14:error: '>' expected but 'T' found
3203[info] IF 1 < 2 THEN
3204[info] ^]
3205[info] " was not equal to "[ ! Prologue
3206[info] movi $27, $0, 0
3207[info] ! StW(Local(8),Read())
3208[info] rd $1
3209[info] stw $1, $27, 8
3210[info] ! Beq(CmpltW(IntDatum(1),IntDatum(2)),Label(1))
3211[info] movi $1, $0, 1
3212[info] movi $2, $0, 2
3213[info] cmp $1, $2
3214[info] movi $1, $0, 1
3215[info] blt label5
3216[info] movi $1, $0, 0
3217[info] label5:
3218[info] cmpi $1, 0
3219[info] beq label1
3220[info] ! Write(IntDatum(1))
3221[info] movi $1, $0, 1
3222[info] wrd $1
3223[info] wrl
3224[info] ! Ret()
3225[info] br label4
3226[info] ! Jmp(Label(2))
3227[info] br label2
3228[info] ! LabelDef(Label(1))
3229[info] label1:
3230[info] ! Write(IntDatum(0))
3231[info] movi $1, $0, 0
3232[info] wrd $1
3233[info] wrl
3234[info] ! Ret()
3235[info] br label4
3236[info] ! LabelDef(Label(2))
3237[info] label2:
3238[info] ! Write(IntDatum(0))
3239[info] movi $1, $0, 0
3240[info] wrd $1
3241[info] wrl
3242[info] ! Ret()
3243[info] br label4
3244[info] ! LabelDef(Label(3))
3245[info] label3:
3246[info] ! Write(IntDatum(-1))
3247[info] movi $1, $0, -1
3248[info] wrd $1
3249[info] wrl
3250[info] ! Epilogue
3251[info] label4:
3252[info] ret $0]
3253[info] " (CompilerTests.scala:149)
3254[info] - ObrRegression: -a -- and3.obr, expecting and3.risc
3255[info] - ObrRegression: -a -- while2.obr, expecting while2.risc *** FAILED ***
3256[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/while2.obr:8:17:error: '>' expected but 'D' found
3257[info] WHILE i < 0 DO
3258[info] ^]
3259[info] " was not equal to "[ ! Prologue
3260[info] movi $27, $0, 0
3261[info] ! StW(Local(8),Read())
3262[info] rd $1
3263[info] stw $1, $27, 8
3264[info] ! StW(Local(12),IntDatum(1))
3265[info] movi $1, $0, 1
3266[info] stw $1, $27, 12
3267[info] ! StW(Local(16),IntDatum(42))
3268[info] movi $1, $0, 42
3269[info] stw $1, $27, 16
3270[info] ! Jmp(Label(1))
3271[info] br label1
3272[info] ! LabelDef(Label(2))
3273[info] label2:
3274[info] ! StW(Local(16),AddW(LdW(Local(16)),LdW(Local(12))))
3275[info] ldw $1, $27, 16
3276[info] ldw $2, $27, 12
3277[info] add $1, $1, $2
3278[info] stw $1, $27, 16
3279[info] ! LabelDef(Label(1))
3280[info] label1:
3281[info] ! Bne(CmpltW(LdW(Local(12)),IntDatum(0)),Label(2))
3282[info] ldw $1, $27, 12
3283[info] movi $2, $0, 0
3284[info] cmp $1, $2
3285[info] movi $1, $0, 1
3286[info] blt label5
3287[info] movi $1, $0, 0
3288[info] label5:
3289[info] cmpi $1, 0
3290[info] bne label2
3291[info] ! Write(LdW(Local(16)))
3292[info] ldw $1, $27, 16
3293[info] wrd $1
3294[info] wrl
3295[info] ! Ret()
3296[info] br label4
3297[info] ! Write(IntDatum(0))
3298[info] movi $1, $0, 0
3299[info] wrd $1
3300[info] wrl
3301[info] ! Ret()
3302[info] br label4
3303[info] ! LabelDef(Label(3))
3304[info] label3:
3305[info] ! Write(IntDatum(-1))
3306[info] movi $1, $0, -1
3307[info] wrd $1
3308[info] wrl
3309[info] ! Epilogue
3310[info] label4:
3311[info] ret $0]
3312[info] " (CompilerTests.scala:149)
3313[info] - ObrRegression: -a -- for2.obr, expecting for2.risc
3314[info] - ObrRegression: -a -- gcd.obr, expecting gcd.risc *** FAILED ***
3315[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gcd.obr:6:17:error: '>' expected but 'D' found
3316[info] WHILE x # y DO
3317[info] ^]
3318[info] " was not equal to "[ ! Prologue
3319[info] movi $27, $0, 0
3320[info] ! StW(Local(8),Read())
3321[info] rd $1
3322[info] stw $1, $27, 8
3323[info] ! StW(Local(12),Read())
3324[info] rd $1
3325[info] stw $1, $27, 12
3326[info] ! Jmp(Label(1))
3327[info] br label1
3328[info] ! LabelDef(Label(2))
3329[info] label2:
3330[info] ! Beq(CmpgtW(LdW(Local(8)),LdW(Local(12))),Label(3))
3331[info] ldw $1, $27, 8
3332[info] ldw $2, $27, 12
3333[info] cmp $1, $2
3334[info] movi $1, $0, 1
3335[info] bgt label7
3336[info] movi $1, $0, 0
3337[info] label7:
3338[info] cmpi $1, 0
3339[info] beq label3
3340[info] ! StW(Local(8),SubW(LdW(Local(8)),LdW(Local(12))))
3341[info] ldw $1, $27, 8
3342[info] ldw $2, $27, 12
3343[info] sub $1, $1, $2
3344[info] stw $1, $27, 8
3345[info] ! Jmp(Label(4))
3346[info] br label4
3347[info] ! LabelDef(Label(3))
3348[info] label3:
3349[info] ! StW(Local(12),SubW(LdW(Local(12)),LdW(Local(8))))
3350[info] ldw $1, $27, 12
3351[info] ldw $2, $27, 8
3352[info] sub $1, $1, $2
3353[info] stw $1, $27, 12
3354[info] ! LabelDef(Label(4))
3355[info] label4:
3356[info] ! LabelDef(Label(1))
3357[info] label1:
3358[info] ! Bne(CmpneW(LdW(Local(8)),LdW(Local(12))),Label(2))
3359[info] ldw $1, $27, 8
3360[info] ldw $2, $27, 12
3361[info] cmp $1, $2
3362[info] movi $1, $0, 1
3363[info] bne label8
3364[info] movi $1, $0, 0
3365[info] label8:
3366[info] cmpi $1, 0
3367[info] bne label2
3368[info] ! Write(LdW(Local(8)))
3369[info] ldw $1, $27, 8
3370[info] wrd $1
3371[info] wrl
3372[info] ! Ret()
3373[info] br label6
3374[info] ! Write(IntDatum(0))
3375[info] movi $1, $0, 0
3376[info] wrd $1
3377[info] wrl
3378[info] ! Ret()
3379[info] br label6
3380[info] ! LabelDef(Label(5))
3381[info] label5:
3382[info] ! Write(IntDatum(-1))
3383[info] movi $1, $0, -1
3384[info] wrd $1
3385[info] wrl
3386[info] ! Epilogue
3387[info] label6:
3388[info] ret $0]
3389[info] " (CompilerTests.scala:149)
3390[info] - ObrRegression: -a -- equal2.obr, expecting equal2.risc *** FAILED ***
3391[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/equal2.obr:3:14:error: '>' expected but 'T' found
3392[info] IF 1 = 2 THEN
3393[info] ^]
3394[info] " was not equal to "[ ! Prologue
3395[info] movi $27, $0, 0
3396[info] ! StW(Local(8),Read())
3397[info] rd $1
3398[info] stw $1, $27, 8
3399[info] ! Beq(CmpeqW(IntDatum(1),IntDatum(2)),Label(1))
3400[info] movi $1, $0, 1
3401[info] movi $2, $0, 2
3402[info] cmp $1, $2
3403[info] movi $1, $0, 1
3404[info] beq label5
3405[info] movi $1, $0, 0
3406[info] label5:
3407[info] cmpi $1, 0
3408[info] beq label1
3409[info] ! Write(IntDatum(0))
3410[info] movi $1, $0, 0
3411[info] wrd $1
3412[info] wrl
3413[info] ! Ret()
3414[info] br label4
3415[info] ! Jmp(Label(2))
3416[info] br label2
3417[info] ! LabelDef(Label(1))
3418[info] label1:
3419[info] ! Write(IntDatum(1))
3420[info] movi $1, $0, 1
3421[info] wrd $1
3422[info] wrl
3423[info] ! Ret()
3424[info] br label4
3425[info] ! LabelDef(Label(2))
3426[info] label2:
3427[info] ! Write(IntDatum(0))
3428[info] movi $1, $0, 0
3429[info] wrd $1
3430[info] wrl
3431[info] ! Ret()
3432[info] br label4
3433[info] ! LabelDef(Label(3))
3434[info] label3:
3435[info] ! Write(IntDatum(-1))
3436[info] movi $1, $0, -1
3437[info] wrd $1
3438[info] wrl
3439[info] ! Epilogue
3440[info] label4:
3441[info] ret $0]
3442[info] " (CompilerTests.scala:149)
3443[info] - ObrRegression: -a -- while1.obr, expecting while1.risc *** FAILED ***
3444[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/while1.obr:8:18:error: '>' expected but 'D' found
3445[info] WHILE i < 10 DO
3446[info] ^]
3447[info] " was not equal to "[ ! Prologue
3448[info] movi $27, $0, 0
3449[info] ! StW(Local(8),Read())
3450[info] rd $1
3451[info] stw $1, $27, 8
3452[info] ! StW(Local(12),IntDatum(1))
3453[info] movi $1, $0, 1
3454[info] stw $1, $27, 12
3455[info] ! StW(Local(16),IntDatum(0))
3456[info] movi $1, $0, 0
3457[info] stw $1, $27, 16
3458[info] ! Jmp(Label(1))
3459[info] br label1
3460[info] ! LabelDef(Label(2))
3461[info] label2:
3462[info] ! StW(Local(16),AddW(LdW(Local(16)),LdW(Local(12))))
3463[info] ldw $1, $27, 16
3464[info] ldw $2, $27, 12
3465[info] add $1, $1, $2
3466[info] stw $1, $27, 16
3467[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3468[info] ldw $1, $27, 12
3469[info] movi $2, $0, 1
3470[info] add $1, $1, $2
3471[info] stw $1, $27, 12
3472[info] ! LabelDef(Label(1))
3473[info] label1:
3474[info] ! Bne(CmpltW(LdW(Local(12)),IntDatum(10)),Label(2))
3475[info] ldw $1, $27, 12
3476[info] movi $2, $0, 10
3477[info] cmp $1, $2
3478[info] movi $1, $0, 1
3479[info] blt label5
3480[info] movi $1, $0, 0
3481[info] label5:
3482[info] cmpi $1, 0
3483[info] bne label2
3484[info] ! Write(LdW(Local(16)))
3485[info] ldw $1, $27, 16
3486[info] wrd $1
3487[info] wrl
3488[info] ! Ret()
3489[info] br label4
3490[info] ! Write(IntDatum(0))
3491[info] movi $1, $0, 0
3492[info] wrd $1
3493[info] wrl
3494[info] ! Ret()
3495[info] br label4
3496[info] ! LabelDef(Label(3))
3497[info] label3:
3498[info] ! Write(IntDatum(-1))
3499[info] movi $1, $0, -1
3500[info] wrd $1
3501[info] wrl
3502[info] ! Epilogue
3503[info] label4:
3504[info] ret $0]
3505[info] " (CompilerTests.scala:149)
3506[info] - ObrRegression: -a -- for1.obr, expecting for1.risc
3507[info] - ObrRegression: -a -- divide.obr, expecting divide.risc
3508[info] - ObrRegression: -a -- or3.obr, expecting or3.risc
3509[info] - ObrRegression: -a -- gthan1.obr, expecting gthan1.risc *** FAILED ***
3510[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/gthan1.obr:3:14:error: '>' expected but 'T' found
3511[info] IF 1 > 2 THEN
3512[info] ^]
3513[info] " was not equal to "[ ! Prologue
3514[info] movi $27, $0, 0
3515[info] ! StW(Local(8),Read())
3516[info] rd $1
3517[info] stw $1, $27, 8
3518[info] ! Beq(CmpgtW(IntDatum(1),IntDatum(2)),Label(1))
3519[info] movi $1, $0, 1
3520[info] movi $2, $0, 2
3521[info] cmp $1, $2
3522[info] movi $1, $0, 1
3523[info] bgt label5
3524[info] movi $1, $0, 0
3525[info] label5:
3526[info] cmpi $1, 0
3527[info] beq label1
3528[info] ! Write(IntDatum(0))
3529[info] movi $1, $0, 0
3530[info] wrd $1
3531[info] wrl
3532[info] ! Ret()
3533[info] br label4
3534[info] ! Jmp(Label(2))
3535[info] br label2
3536[info] ! LabelDef(Label(1))
3537[info] label1:
3538[info] ! Write(IntDatum(1))
3539[info] movi $1, $0, 1
3540[info] wrd $1
3541[info] wrl
3542[info] ! Ret()
3543[info] br label4
3544[info] ! LabelDef(Label(2))
3545[info] label2:
3546[info] ! Write(IntDatum(0))
3547[info] movi $1, $0, 0
3548[info] wrd $1
3549[info] wrl
3550[info] ! Ret()
3551[info] br label4
3552[info] ! LabelDef(Label(3))
3553[info] label3:
3554[info] ! Write(IntDatum(-1))
3555[info] movi $1, $0, -1
3556[info] wrd $1
3557[info] wrl
3558[info] ! Epilogue
3559[info] label4:
3560[info] ret $0]
3561[info] " (CompilerTests.scala:149)
3562[info] - ObrRegression: -a -- record.obr, expecting record.risc
3563[info] - ObrRegression: -a -- comp1.obr, expecting comp1.risc
3564[info] - ObrRegression: -a -- neg.obr, expecting neg.risc
3565[info] - ObrRegression: -a -- equal1.obr, expecting equal1.risc *** FAILED ***
3566[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/equal1.obr:3:14:error: '>' expected but 'T' found
3567[info] IF 1 = 1 THEN
3568[info] ^]
3569[info] " was not equal to "[ ! Prologue
3570[info] movi $27, $0, 0
3571[info] ! StW(Local(8),Read())
3572[info] rd $1
3573[info] stw $1, $27, 8
3574[info] ! Beq(CmpeqW(IntDatum(1),IntDatum(1)),Label(1))
3575[info] movi $1, $0, 1
3576[info] movi $2, $0, 1
3577[info] cmp $1, $2
3578[info] movi $1, $0, 1
3579[info] beq label5
3580[info] movi $1, $0, 0
3581[info] label5:
3582[info] cmpi $1, 0
3583[info] beq label1
3584[info] ! Write(IntDatum(1))
3585[info] movi $1, $0, 1
3586[info] wrd $1
3587[info] wrl
3588[info] ! Ret()
3589[info] br label4
3590[info] ! Jmp(Label(2))
3591[info] br label2
3592[info] ! LabelDef(Label(1))
3593[info] label1:
3594[info] ! Write(IntDatum(0))
3595[info] movi $1, $0, 0
3596[info] wrd $1
3597[info] wrl
3598[info] ! Ret()
3599[info] br label4
3600[info] ! LabelDef(Label(2))
3601[info] label2:
3602[info] ! Write(IntDatum(0))
3603[info] movi $1, $0, 0
3604[info] wrd $1
3605[info] wrl
3606[info] ! Ret()
3607[info] br label4
3608[info] ! LabelDef(Label(3))
3609[info] label3:
3610[info] ! Write(IntDatum(-1))
3611[info] movi $1, $0, -1
3612[info] wrd $1
3613[info] wrl
3614[info] ! Epilogue
3615[info] label4:
3616[info] ret $0]
3617[info] " (CompilerTests.scala:149)
3618[info] - ObrRegression: -a -- minus.obr, expecting minus.risc
3619[info] - ObrRegression: -a -- mod.obr, expecting mod.risc
3620[info] - ObrRegression: -a -- times.obr, expecting times.risc
3621[info] - ObrRegression: -a -- inequal2.obr, expecting inequal2.risc *** FAILED ***
3622[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/inequal2.obr:3:14:error: '>' expected but 'T' found
3623[info] IF 1 # 2 THEN
3624[info] ^]
3625[info] " was not equal to "[ ! Prologue
3626[info] movi $27, $0, 0
3627[info] ! StW(Local(8),Read())
3628[info] rd $1
3629[info] stw $1, $27, 8
3630[info] ! Beq(CmpneW(IntDatum(1),IntDatum(2)),Label(1))
3631[info] movi $1, $0, 1
3632[info] movi $2, $0, 2
3633[info] cmp $1, $2
3634[info] movi $1, $0, 1
3635[info] bne label5
3636[info] movi $1, $0, 0
3637[info] label5:
3638[info] cmpi $1, 0
3639[info] beq label1
3640[info] ! Write(IntDatum(1))
3641[info] movi $1, $0, 1
3642[info] wrd $1
3643[info] wrl
3644[info] ! Ret()
3645[info] br label4
3646[info] ! Jmp(Label(2))
3647[info] br label2
3648[info] ! LabelDef(Label(1))
3649[info] label1:
3650[info] ! Write(IntDatum(0))
3651[info] movi $1, $0, 0
3652[info] wrd $1
3653[info] wrl
3654[info] ! Ret()
3655[info] br label4
3656[info] ! LabelDef(Label(2))
3657[info] label2:
3658[info] ! Write(IntDatum(0))
3659[info] movi $1, $0, 0
3660[info] wrd $1
3661[info] wrl
3662[info] ! Ret()
3663[info] br label4
3664[info] ! LabelDef(Label(3))
3665[info] label3:
3666[info] ! Write(IntDatum(-1))
3667[info] movi $1, $0, -1
3668[info] wrd $1
3669[info] wrl
3670[info] ! Epilogue
3671[info] label4:
3672[info] ret $0]
3673[info] " (CompilerTests.scala:149)
3674[info] - ObrRegression: -a -- factorial.obr, expecting factorial.risc *** FAILED ***
3675[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/factorial.obr:18:21:error: '>' expected but 'D' found
3676[info] WHILE c < v DO
3677[info] ^]
3678[info] " was not equal to "[ ! Prologue
3679[info] movi $27, $0, 0
3680[info] ! StW(Local(8),Read())
3681[info] rd $1
3682[info] stw $1, $27, 8
3683[info] ! Beq(Cond(CmpltW(LdW(Local(8)),IntDatum(0)),IntDatum(1),CmpgtW(LdW(Local(8)),IntDatum(7))),Label(1))
3684[info] ldw $1, $27, 8
3685[info] movi $2, $0, 0
3686[info] cmp $1, $2
3687[info] movi $1, $0, 1
3688[info] blt label9
3689[info] movi $1, $0, 0
3690[info] label9:
3691[info] cmpi $1, 0
3692[info] beq label7
3693[info] movi $1, $0, 1
3694[info] mov $1, $0, $1
3695[info] br label8
3696[info] label7:
3697[info] ldw $1, $27, 8
3698[info] movi $2, $0, 7
3699[info] cmp $1, $2
3700[info] movi $1, $0, 1
3701[info] bgt label10
3702[info] movi $1, $0, 0
3703[info] label10:
3704[info] mov $1, $0, $1
3705[info] label8:
3706[info] cmpi $1, 0
3707[info] beq label1
3708[info] ! Write(NegW(IntDatum(1)))
3709[info] movi $1, $0, 1
3710[info] sub $1, $0, $1
3711[info] wrd $1
3712[info] wrl
3713[info] ! Ret()
3714[info] br label6
3715[info] ! Jmp(Label(2))
3716[info] br label2
3717[info] ! LabelDef(Label(1))
3718[info] label1:
3719[info] ! StW(Local(12),IntDatum(0))
3720[info] movi $1, $0, 0
3721[info] stw $1, $27, 12
3722[info] ! StW(Local(16),IntDatum(1))
3723[info] movi $1, $0, 1
3724[info] stw $1, $27, 16
3725[info] ! Jmp(Label(3))
3726[info] br label3
3727[info] ! LabelDef(Label(4))
3728[info] label4:
3729[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3730[info] ldw $1, $27, 12
3731[info] movi $2, $0, 1
3732[info] add $1, $1, $2
3733[info] stw $1, $27, 12
3734[info] ! StW(Local(16),MulW(LdW(Local(16)),LdW(Local(12))))
3735[info] ldw $1, $27, 16
3736[info] ldw $2, $27, 12
3737[info] mul $1, $1, $2
3738[info] stw $1, $27, 16
3739[info] ! LabelDef(Label(3))
3740[info] label3:
3741[info] ! Bne(CmpltW(LdW(Local(12)),LdW(Local(8))),Label(4))
3742[info] ldw $1, $27, 12
3743[info] ldw $2, $27, 8
3744[info] cmp $1, $2
3745[info] movi $1, $0, 1
3746[info] blt label11
3747[info] movi $1, $0, 0
3748[info] label11:
3749[info] cmpi $1, 0
3750[info] bne label4
3751[info] ! Write(LdW(Local(16)))
3752[info] ldw $1, $27, 16
3753[info] wrd $1
3754[info] wrl
3755[info] ! Ret()
3756[info] br label6
3757[info] ! LabelDef(Label(2))
3758[info] label2:
3759[info] ! Write(IntDatum(0))
3760[info] movi $1, $0, 0
3761[info] wrd $1
3762[info] wrl
3763[info] ! Ret()
3764[info] br label6
3765[info] ! LabelDef(Label(5))
3766[info] label5:
3767[info] ! Write(IntDatum(-1))
3768[info] movi $1, $0, -1
3769[info] wrd $1
3770[info] wrl
3771[info] ! Epilogue
3772[info] label6:
3773[info] ret $0]
3774[info] " (CompilerTests.scala:149)
3775[info] - ObrRegression: -a -- array.obr, expecting array.risc
3776[info] - ObrRegression: -a -- or1.obr, expecting or1.risc
3777[info] - ObrRegression: -a -- and1.obr, expecting and1.risc
3778[info] - ObrRegression: -a -- lthan2.obr, expecting lthan2.risc *** FAILED ***
3779[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/lthan2.obr:3:14:error: '>' expected but 'T' found
3780[info] IF 2 < 1 THEN
3781[info] ^]
3782[info] " was not equal to "[ ! Prologue
3783[info] movi $27, $0, 0
3784[info] ! StW(Local(8),Read())
3785[info] rd $1
3786[info] stw $1, $27, 8
3787[info] ! Beq(CmpltW(IntDatum(2),IntDatum(1)),Label(1))
3788[info] movi $1, $0, 2
3789[info] movi $2, $0, 1
3790[info] cmp $1, $2
3791[info] movi $1, $0, 1
3792[info] blt label5
3793[info] movi $1, $0, 0
3794[info] label5:
3795[info] cmpi $1, 0
3796[info] beq label1
3797[info] ! Write(IntDatum(0))
3798[info] movi $1, $0, 0
3799[info] wrd $1
3800[info] wrl
3801[info] ! Ret()
3802[info] br label4
3803[info] ! Jmp(Label(2))
3804[info] br label2
3805[info] ! LabelDef(Label(1))
3806[info] label1:
3807[info] ! Write(IntDatum(1))
3808[info] movi $1, $0, 1
3809[info] wrd $1
3810[info] wrl
3811[info] ! Ret()
3812[info] br label4
3813[info] ! LabelDef(Label(2))
3814[info] label2:
3815[info] ! Write(IntDatum(0))
3816[info] movi $1, $0, 0
3817[info] wrd $1
3818[info] wrl
3819[info] ! Ret()
3820[info] br label4
3821[info] ! LabelDef(Label(3))
3822[info] label3:
3823[info] ! Write(IntDatum(-1))
3824[info] movi $1, $0, -1
3825[info] wrd $1
3826[info] wrl
3827[info] ! Epilogue
3828[info] label4:
3829[info] ret $0]
3830[info] " (CompilerTests.scala:149)
3831[info] - ObrRegression: -a -- inequal1.obr, expecting inequal1.risc *** FAILED ***
3832[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/inequal1.obr:3:14:error: '>' expected but 'T' found
3833[info] IF 1 # 1 THEN
3834[info] ^]
3835[info] " was not equal to "[ ! Prologue
3836[info] movi $27, $0, 0
3837[info] ! StW(Local(8),Read())
3838[info] rd $1
3839[info] stw $1, $27, 8
3840[info] ! Beq(CmpneW(IntDatum(1),IntDatum(1)),Label(1))
3841[info] movi $1, $0, 1
3842[info] movi $2, $0, 1
3843[info] cmp $1, $2
3844[info] movi $1, $0, 1
3845[info] bne label5
3846[info] movi $1, $0, 0
3847[info] label5:
3848[info] cmpi $1, 0
3849[info] beq label1
3850[info] ! Write(IntDatum(0))
3851[info] movi $1, $0, 0
3852[info] wrd $1
3853[info] wrl
3854[info] ! Ret()
3855[info] br label4
3856[info] ! Jmp(Label(2))
3857[info] br label2
3858[info] ! LabelDef(Label(1))
3859[info] label1:
3860[info] ! Write(IntDatum(1))
3861[info] movi $1, $0, 1
3862[info] wrd $1
3863[info] wrl
3864[info] ! Ret()
3865[info] br label4
3866[info] ! LabelDef(Label(2))
3867[info] label2:
3868[info] ! Write(IntDatum(0))
3869[info] movi $1, $0, 0
3870[info] wrd $1
3871[info] wrl
3872[info] ! Ret()
3873[info] br label4
3874[info] ! LabelDef(Label(3))
3875[info] label3:
3876[info] ! Write(IntDatum(-1))
3877[info] movi $1, $0, -1
3878[info] wrd $1
3879[info] wrl
3880[info] ! Epilogue
3881[info] label4:
3882[info] ret $0]
3883[info] " (CompilerTests.scala:149)
3884[info] - ObrRegression: -a -- or2.obr, expecting or2.risc
3885[info] - ObrRegression: -a -- loop1.obr, expecting loop1.risc *** FAILED ***
3886[info] "[src/test/scala/org/bitbucket/inkytonik/kiama/example/obr/tests/generic/loop1.obr:10:18:error: '>' expected but 'T' found
3887[info] IF v = 5 THEN EXIT; END
3888[info] ^]
3889[info] " was not equal to "[ ! Prologue
3890[info] movi $27, $0, 0
3891[info] ! StW(Local(8),Read())
3892[info] rd $1
3893[info] stw $1, $27, 8
3894[info] ! StW(Local(12),IntDatum(0))
3895[info] movi $1, $0, 0
3896[info] stw $1, $27, 12
3897[info] ! LabelDef(Label(1))
3898[info] label1:
3899[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3900[info] ldw $1, $27, 12
3901[info] movi $2, $0, 1
3902[info] add $1, $1, $2
3903[info] stw $1, $27, 12
3904[info] ! Beq(CmpeqW(LdW(Local(12)),IntDatum(5)),Label(2))
3905[info] ldw $1, $27, 12
3906[info] movi $2, $0, 5
3907[info] cmp $1, $2
3908[info] movi $1, $0, 1
3909[info] beq label7
3910[info] movi $1, $0, 0
3911[info] label7:
3912[info] cmpi $1, 0
3913[info] beq label2
3914[info] ! Jmp(Label(4))
3915[info] br label4
3916[info] ! Jmp(Label(3))
3917[info] br label3
3918[info] ! LabelDef(Label(2))
3919[info] label2:
3920[info] ! LabelDef(Label(3))
3921[info] label3:
3922[info] ! StW(Local(12),AddW(LdW(Local(12)),IntDatum(1)))
3923[info] ldw $1, $27, 12
3924[info] movi $2, $0, 1
3925[info] add $1, $1, $2
3926[info] stw $1, $27, 12
3927[info] ! Jmp(Label(1))
3928[info] br label1
3929[info] ! LabelDef(Label(4))
3930[info] label4:
3931[info] ! Write(LdW(Local(12)))
3932[info] ldw $1, $27, 12
3933[info] wrd $1
3934[info] wrl
3935[info] ! Ret()
3936[info] br label6
3937[info] ! Write(IntDatum(0))
3938[info] movi $1, $0, 0
3939[info] wrd $1
3940[info] wrl
3941[info] ! Ret()
3942[info] br label6
3943[info] ! LabelDef(Label(5))
3944[info] label5:
3945[info] ! Write(IntDatum(-1))
3946[info] movi $1, $0, -1
3947[info] wrd $1
3948[info] wrl
3949[info] ! Epilogue
3950[info] label6:
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": 17052, "warnings": 11, "errors": 0, "sourceVersion": "3.8"},
4063 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
4064 "test-compile": {"status": "ok", "tookMs": 214, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
4065 "test": {"status": "ok", "tookMs": 133, "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": 2244, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
4073 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
4074 "test-compile": {"status": "ok", "tookMs": 46008, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
4075 "test": {"status": "failed", "tookMs": 9744, "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: 97 s (0:01:37.0), completed Dec 22, 2025, 6:06:21 PM
4085[0JBuild failed, not retrying.