From f6171150f9e60240b256808fc31613530b21db6c Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Wed, 5 May 2010 20:45:27 +0200 Subject: [PATCH] doc: paulchen beispiele {code{a,b},gesamt} entpackt (jedes mal entpacken nervt langsam...) --- .../ublu/ss08/abgabe/codea/.svn/all-wcprops | 65 + .../ublu/ss08/abgabe/codea/.svn/entries | 153 ++ .../ublu/ss08/abgabe/codea/.svn/format | 1 + .../codea/.svn/prop-base/code.bfe.svn-base | 5 + .../.svn/prop-base/symbol_table.c.svn-base | 5 + .../.svn/prop-base/symbol_table.h.svn-base | 5 + .../codea/.svn/prop-base/tree.c.svn-base | 5 + .../codea/.svn/prop-base/tree.h.svn-base | 5 + .../codea/.svn/text-base/Makefile.svn-base | 38 + .../codea/.svn/text-base/code.bfe.svn-base | 70 + .../codea/.svn/text-base/code_gen.c.svn-base | 43 + .../codea/.svn/text-base/code_gen.h.svn-base | 11 + .../codea/.svn/text-base/parser.y.svn-base | 345 +++ .../codea/.svn/text-base/scanner.lex.svn-base | 67 + .../.svn/text-base/symbol_table.c.svn-base | 154 ++ .../.svn/text-base/symbol_table.h.svn-base | 25 + .../codea/.svn/text-base/tree.c.svn-base | 155 ++ .../codea/.svn/text-base/tree.h.svn-base | 81 + .../paulchen/ublu/ss08/abgabe/codea/Makefile | 38 + .../paulchen/ublu/ss08/abgabe/codea/code.bfe | 67 + .../ublu/ss08/abgabe/codea/code_gen.c | 43 + .../ublu/ss08/abgabe/codea/code_gen.h | 11 + .../paulchen/ublu/ss08/abgabe/codea/parser.y | 345 +++ .../ublu/ss08/abgabe/codea/scanner.lex | 67 + .../ublu/ss08/abgabe/codea/symbol_table.c | 187 ++ .../ublu/ss08/abgabe/codea/symbol_table.h | 27 + .../paulchen/ublu/ss08/abgabe/codea/tree.c | 157 ++ .../paulchen/ublu/ss08/abgabe/codea/tree.h | 82 + .../ublu/ss08/abgabe/codeb/.svn/all-wcprops | 77 + .../ublu/ss08/abgabe/codeb/.svn/entries | 180 ++ .../ublu/ss08/abgabe/codeb/.svn/format | 1 + .../codeb/.svn/prop-base/code.bfe.svn-base | 5 + .../.svn/prop-base/symbol_table.c.svn-base | 5 + .../.svn/prop-base/symbol_table.h.svn-base | 5 + .../codeb/.svn/prop-base/tree.c.svn-base | 5 + .../codeb/.svn/prop-base/tree.h.svn-base | 5 + .../codeb/.svn/text-base/Makefile.svn-base | 38 + .../codeb/.svn/text-base/code.bfe.svn-base | 91 + .../codeb/.svn/text-base/code_gen.c.svn-base | 52 + .../codeb/.svn/text-base/code_gen.h.svn-base | 11 + .../codeb/.svn/text-base/parser.y.svn-base | 541 ++++ .../codeb/.svn/text-base/scanner.lex.svn-base | 67 + .../.svn/text-base/symbol_table.c.svn-base | 192 ++ .../.svn/text-base/symbol_table.h.svn-base | 27 + .../codeb/.svn/text-base/test.c.svn-base | 187 ++ .../codeb/.svn/text-base/test.input.svn-base | 49 + .../codeb/.svn/text-base/tree.c.svn-base | 157 ++ .../codeb/.svn/text-base/tree.h.svn-base | 94 + .../paulchen/ublu/ss08/abgabe/codeb/Makefile | 38 + .../paulchen/ublu/ss08/abgabe/codeb/code.bfe | 91 + .../ublu/ss08/abgabe/codeb/code_gen.c | 52 + .../ublu/ss08/abgabe/codeb/code_gen.h | 11 + .../paulchen/ublu/ss08/abgabe/codeb/parser.y | 541 ++++ .../ublu/ss08/abgabe/codeb/scanner.lex | 67 + .../ublu/ss08/abgabe/codeb/symbol_table.c | 192 ++ .../ublu/ss08/abgabe/codeb/symbol_table.h | 27 + .../paulchen/ublu/ss08/abgabe/codeb/test.c | 187 ++ .../ublu/ss08/abgabe/codeb/test.input | 49 + .../abgabe/codeb/testcases/.svn/all-wcprops | 1157 ++++++++ .../ss08/abgabe/codeb/testcases/.svn/entries | 2320 ++++++++++++++++ .../ss08/abgabe/codeb/testcases/.svn/format | 1 + .../testcases/.svn/text-base/ag_b.3.svn-base | 6 + .../testcases/.svn/text-base/ag_e.3.svn-base | 9 + .../testcases/.svn/text-base/ag_g.3.svn-base | 9 + .../testcases/.svn/text-base/ag_h.3.svn-base | 5 + .../testcases/.svn/text-base/ag_i.3.svn-base | 13 + .../testcases/.svn/text-base/ag_j.3.svn-base | 12 + .../testcases/.svn/text-base/ag_k.3.svn-base | 6 + .../.svn/text-base/algebra.0.svn-base | 3 + .../.svn/text-base/algebra.call.svn-base | 2 + .../.svn/text-base/algebra1.0.svn-base | 3 + .../.svn/text-base/algebra1.call.svn-base | 2 + .../.svn/text-base/algebran1.0.svn-base | 3 + .../.svn/text-base/algebran1.call.svn-base | 2 + .../.svn/text-base/algebran2.0.svn-base | 3 + .../.svn/text-base/algebran2.call.svn-base | 2 + .../.svn/text-base/algebran3.0.svn-base | 3 + .../.svn/text-base/algebran3.call.svn-base | 2 + .../.svn/text-base/algebran4.0.svn-base | 3 + .../.svn/text-base/algebran4.call.svn-base | 2 + .../testcases/.svn/text-base/f1.0.svn-base | 1 + .../testcases/.svn/text-base/f1.call.svn-base | 4 + .../testcases/.svn/text-base/f10.0.svn-base | 1 + .../.svn/text-base/f10.call.svn-base | 4 + .../testcases/.svn/text-base/f2.0.svn-base | 1 + .../testcases/.svn/text-base/f2.call.svn-base | 4 + .../testcases/.svn/text-base/f3.0.svn-base | 1 + .../testcases/.svn/text-base/f3.call.svn-base | 4 + .../testcases/.svn/text-base/f4.0.svn-base | 1 + .../testcases/.svn/text-base/f4.call.svn-base | 4 + .../testcases/.svn/text-base/f5.0.svn-base | 1 + .../testcases/.svn/text-base/f5.call.svn-base | 4 + .../testcases/.svn/text-base/f6.0.svn-base | 1 + .../testcases/.svn/text-base/f6.call.svn-base | 4 + .../testcases/.svn/text-base/f7.0.svn-base | 1 + .../testcases/.svn/text-base/f7.call.svn-base | 4 + .../testcases/.svn/text-base/f8.0.svn-base | 1 + .../testcases/.svn/text-base/f8.call.svn-base | 4 + .../testcases/.svn/text-base/f9.0.svn-base | 1 + .../testcases/.svn/text-base/f9.call.svn-base | 4 + .../testcases/.svn/text-base/fib.0.svn-base | 17 + .../.svn/text-base/fib.call.svn-base | 4 + .../.svn/text-base/forum_04.3.svn-base | 2 + .../.svn/text-base/forum_05.3.svn-base | 3 + .../.svn/text-base/forum_06.3.svn-base | 4 + .../.svn/text-base/forum_07.2.svn-base | 1 + .../.svn/text-base/forum_08.3.svn-base | 9 + .../.svn/text-base/forumx_04.3.svn-base | 5 + .../.svn/text-base/forumx_05.3.svn-base | 5 + .../.svn/text-base/forumx_06.3.svn-base | 4 + .../.svn/text-base/forumx_07.2.svn-base | 1 + .../.svn/text-base/forumx_08.3.svn-base | 11 + .../testcases/.svn/text-base/g1.0.svn-base | 1 + .../testcases/.svn/text-base/g1.call.svn-base | 18 + .../testcases/.svn/text-base/g10.0.svn-base | 1 + .../.svn/text-base/g10.call.svn-base | 18 + .../testcases/.svn/text-base/g11.0.svn-base | 1 + .../.svn/text-base/g11.call.svn-base | 18 + .../testcases/.svn/text-base/g12.0.svn-base | 1 + .../.svn/text-base/g12.call.svn-base | 18 + .../testcases/.svn/text-base/g2.0.svn-base | 1 + .../testcases/.svn/text-base/g2.call.svn-base | 18 + .../testcases/.svn/text-base/g3.0.svn-base | 1 + .../testcases/.svn/text-base/g3.call.svn-base | 18 + .../testcases/.svn/text-base/g4.0.svn-base | 1 + .../testcases/.svn/text-base/g4.call.svn-base | 18 + .../testcases/.svn/text-base/g5.0.svn-base | 1 + .../testcases/.svn/text-base/g5.call.svn-base | 18 + .../testcases/.svn/text-base/g6.0.svn-base | 1 + .../testcases/.svn/text-base/g6.call.svn-base | 18 + .../testcases/.svn/text-base/g7.0.svn-base | 1 + .../testcases/.svn/text-base/g7.call.svn-base | 18 + .../testcases/.svn/text-base/g8.0.svn-base | 1 + .../testcases/.svn/text-base/g8.call.svn-base | 18 + .../testcases/.svn/text-base/g9.0.svn-base | 1 + .../testcases/.svn/text-base/g9.call.svn-base | 18 + .../testcases/.svn/text-base/h1.0.svn-base | 1 + .../testcases/.svn/text-base/h1.call.svn-base | 21 + .../testcases/.svn/text-base/h10.0.svn-base | 1 + .../.svn/text-base/h10.call.svn-base | 21 + .../testcases/.svn/text-base/h11.0.svn-base | 1 + .../.svn/text-base/h11.call.svn-base | 21 + .../testcases/.svn/text-base/h12.0.svn-base | 1 + .../.svn/text-base/h12.call.svn-base | 21 + .../testcases/.svn/text-base/h13.0.svn-base | 1 + .../.svn/text-base/h13.call.svn-base | 21 + .../testcases/.svn/text-base/h14.0.svn-base | 1 + .../.svn/text-base/h14.call.svn-base | 21 + .../testcases/.svn/text-base/h15.0.svn-base | 1 + .../.svn/text-base/h15.call.svn-base | 21 + .../testcases/.svn/text-base/h16.0.svn-base | 1 + .../.svn/text-base/h16.call.svn-base | 21 + .../testcases/.svn/text-base/h17.0.svn-base | 1 + .../.svn/text-base/h17.call.svn-base | 21 + .../testcases/.svn/text-base/h18.0.svn-base | 1 + .../.svn/text-base/h18.call.svn-base | 21 + .../testcases/.svn/text-base/h19.0.svn-base | 1 + .../.svn/text-base/h19.call.svn-base | 21 + .../testcases/.svn/text-base/h2.0.svn-base | 1 + .../testcases/.svn/text-base/h2.call.svn-base | 21 + .../testcases/.svn/text-base/h20.0.svn-base | 1 + .../.svn/text-base/h20.call.svn-base | 21 + .../testcases/.svn/text-base/h21.0.svn-base | 1 + .../.svn/text-base/h21.call.svn-base | 21 + .../testcases/.svn/text-base/h22.0.svn-base | 1 + .../.svn/text-base/h22.call.svn-base | 21 + .../testcases/.svn/text-base/h23.0.svn-base | 1 + .../.svn/text-base/h23.call.svn-base | 21 + .../testcases/.svn/text-base/h24.0.svn-base | 1 + .../.svn/text-base/h24.call.svn-base | 21 + .../testcases/.svn/text-base/h3.0.svn-base | 1 + .../testcases/.svn/text-base/h3.call.svn-base | 21 + .../testcases/.svn/text-base/h4.0.svn-base | 1 + .../testcases/.svn/text-base/h4.call.svn-base | 21 + .../testcases/.svn/text-base/h5.0.svn-base | 1 + .../testcases/.svn/text-base/h5.call.svn-base | 21 + .../testcases/.svn/text-base/h6.0.svn-base | 1 + .../testcases/.svn/text-base/h6.call.svn-base | 21 + .../testcases/.svn/text-base/h7.0.svn-base | 1 + .../testcases/.svn/text-base/h7.call.svn-base | 21 + .../testcases/.svn/text-base/h8.0.svn-base | 1 + .../testcases/.svn/text-base/h8.call.svn-base | 21 + .../testcases/.svn/text-base/h9.0.svn-base | 1 + .../testcases/.svn/text-base/h9.call.svn-base | 21 + .../.svn/text-base/local01.3.svn-base | 7 + .../.svn/text-base/localx01.3.svn-base | 7 + .../.svn/text-base/malandro.3.svn-base | 14 + .../.svn/text-base/malandro01.3.svn-base | 5 + .../.svn/text-base/malandro02.3.svn-base | 6 + .../.svn/text-base/malandro03.3.svn-base | 21 + .../.svn/text-base/malandro04.3.svn-base | 24 + .../.svn/text-base/malandro05.3.svn-base | 28 + .../.svn/text-base/malandro06.3.svn-base | 27 + .../.svn/text-base/malandro07.3.svn-base | 26 + .../.svn/text-base/malandro09.3.svn-base | 27 + .../.svn/text-base/malandro10.3.svn-base | 13 + .../.svn/text-base/malandro11.3.svn-base | 24 + .../.svn/text-base/malandro12.3.svn-base | 55 + .../.svn/text-base/malandro13.3.svn-base | 56 + .../.svn/text-base/malandro14.3.svn-base | 62 + .../.svn/text-base/malandro15.3.svn-base | 23 + .../.svn/text-base/malandro16.3.svn-base | 19 + .../testcases/.svn/text-base/my_a.0.svn-base | 3 + .../.svn/text-base/my_a.call.svn-base | 3 + .../testcases/.svn/text-base/my_b.0.svn-base | 5 + .../.svn/text-base/my_b.call.svn-base | 3 + .../testcases/.svn/text-base/my_c.0.svn-base | 5 + .../.svn/text-base/my_c.call.svn-base | 3 + .../testcases/.svn/text-base/my_d.0.svn-base | 5 + .../.svn/text-base/my_d.call.svn-base | 3 + .../testcases/.svn/text-base/my_e.0.svn-base | 4 + .../.svn/text-base/my_e.call.svn-base | 3 + .../testcases/.svn/text-base/my_f.0.svn-base | 4 + .../.svn/text-base/my_f.call.svn-base | 3 + .../testcases/.svn/text-base/my_g.0.svn-base | 4 + .../.svn/text-base/my_g.call.svn-base | 3 + .../testcases/.svn/text-base/my_h.0.svn-base | 8 + .../.svn/text-base/my_h.call.svn-base | 4 + .../testcases/.svn/text-base/my_i.3.svn-base | 8 + .../testcases/.svn/text-base/my_j.0.svn-base | 6 + .../.svn/text-base/my_j.call.svn-base | 5 + .../testcases/.svn/text-base/my_k.0.svn-base | 6 + .../.svn/text-base/my_k.call.svn-base | 9 + .../testcases/.svn/text-base/my_l.0.svn-base | 6 + .../.svn/text-base/my_l.call.svn-base | 7 + .../.svn/text-base/negterm.0.svn-base | 3 + .../.svn/text-base/negterm.call.svn-base | 2 + .../.svn/text-base/negterm1.0.svn-base | 3 + .../.svn/text-base/negterm1.call.svn-base | 2 + .../.svn/text-base/parameter1.0.svn-base | 3 + .../.svn/text-base/parameter1.call.svn-base | 2 + .../.svn/text-base/parameter2.0.svn-base | 3 + .../.svn/text-base/parameter2.call.svn-base | 2 + .../.svn/text-base/parameter3.0.svn-base | 5 + .../.svn/text-base/parameter3.call.svn-base | 12 + .../.svn/text-base/parameter4.0.svn-base | 5 + .../.svn/text-base/parameter4.call.svn-base | 12 + .../.svn/text-base/parameter5.0.svn-base | 5 + .../.svn/text-base/parameter5.call.svn-base | 7 + .../.svn/text-base/parameter6.0.svn-base | 5 + .../.svn/text-base/parameter6.call.svn-base | 12 + .../.svn/text-base/regfehler.4.svn-base | 4 + .../testcases/.svn/text-base/test1.3.svn-base | 19 + .../testcases/.svn/text-base/test2.3.svn-base | 10 + .../testcases/.svn/text-base/test3.3.svn-base | 6 + .../testcases/.svn/text-base/test4.2.svn-base | 8 + .../.svn/text-base/testscriptx03.3.svn-base | 19 + .../.svn/text-base/tiefemax.0.svn-base | 4 + .../.svn/text-base/tiefemax.call.svn-base | 2 + .../.svn/text-base/tiefen.0.svn-base | 4 + .../.svn/text-base/tiefen.call.svn-base | 4 + .../.svn/text-base/tiefen1.0.svn-base | 4 + .../.svn/text-base/tiefen1.call.svn-base | 4 + .../ublu/ss08/abgabe/codeb/testcases/ag_b.3 | 6 + .../ublu/ss08/abgabe/codeb/testcases/ag_e.3 | 9 + .../ublu/ss08/abgabe/codeb/testcases/ag_g.3 | 9 + .../ublu/ss08/abgabe/codeb/testcases/ag_h.3 | 5 + .../ublu/ss08/abgabe/codeb/testcases/ag_i.3 | 13 + .../ublu/ss08/abgabe/codeb/testcases/ag_j.3 | 12 + .../ublu/ss08/abgabe/codeb/testcases/ag_k.3 | 6 + .../ss08/abgabe/codeb/testcases/algebra.0 | 3 + .../ss08/abgabe/codeb/testcases/algebra.call | 2 + .../ss08/abgabe/codeb/testcases/algebra1.0 | 3 + .../ss08/abgabe/codeb/testcases/algebra1.call | 2 + .../ss08/abgabe/codeb/testcases/algebran1.0 | 3 + .../abgabe/codeb/testcases/algebran1.call | 2 + .../ss08/abgabe/codeb/testcases/algebran2.0 | 3 + .../abgabe/codeb/testcases/algebran2.call | 2 + .../ss08/abgabe/codeb/testcases/algebran3.0 | 3 + .../abgabe/codeb/testcases/algebran3.call | 2 + .../ss08/abgabe/codeb/testcases/algebran4.0 | 3 + .../abgabe/codeb/testcases/algebran4.call | 2 + .../ublu/ss08/abgabe/codeb/testcases/f1.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f1.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/f10.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f10.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/f2.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f2.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/f3.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f3.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/f4.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f4.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/f5.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f5.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/f6.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f6.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/f7.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f7.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/f8.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f8.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/f9.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/f9.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/fib.0 | 17 + .../ublu/ss08/abgabe/codeb/testcases/fib.call | 4 + .../ss08/abgabe/codeb/testcases/forum_04.3 | 2 + .../ss08/abgabe/codeb/testcases/forum_05.3 | 3 + .../ss08/abgabe/codeb/testcases/forum_06.3 | 4 + .../ss08/abgabe/codeb/testcases/forum_07.2 | 1 + .../ss08/abgabe/codeb/testcases/forum_08.3 | 9 + .../ss08/abgabe/codeb/testcases/forumx_04.3 | 5 + .../ss08/abgabe/codeb/testcases/forumx_05.3 | 5 + .../ss08/abgabe/codeb/testcases/forumx_06.3 | 4 + .../ss08/abgabe/codeb/testcases/forumx_07.2 | 1 + .../ss08/abgabe/codeb/testcases/forumx_08.3 | 11 + .../ublu/ss08/abgabe/codeb/testcases/g1.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g1.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g10.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g10.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g11.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g11.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g12.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g12.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g2.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g2.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g3.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g3.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g4.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g4.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g5.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g5.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g6.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g6.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g7.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g7.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g8.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g8.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/g9.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/g9.call | 18 + .../ublu/ss08/abgabe/codeb/testcases/h1.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h1.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h10.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h10.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h11.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h11.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h12.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h12.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h13.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h13.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h14.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h14.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h15.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h15.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h16.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h16.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h17.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h17.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h18.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h18.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h19.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h19.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h2.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h2.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h20.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h20.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h21.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h21.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h22.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h22.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h23.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h23.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h24.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h24.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h3.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h3.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h4.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h4.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h5.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h5.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h6.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h6.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h7.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h7.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h8.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h8.call | 21 + .../ublu/ss08/abgabe/codeb/testcases/h9.0 | 1 + .../ublu/ss08/abgabe/codeb/testcases/h9.call | 21 + .../ss08/abgabe/codeb/testcases/local01.3 | 7 + .../ss08/abgabe/codeb/testcases/localx01.3 | 7 + .../ss08/abgabe/codeb/testcases/malandro.3 | 14 + .../ss08/abgabe/codeb/testcases/malandro01.3 | 5 + .../ss08/abgabe/codeb/testcases/malandro02.3 | 6 + .../ss08/abgabe/codeb/testcases/malandro03.3 | 21 + .../ss08/abgabe/codeb/testcases/malandro04.3 | 24 + .../ss08/abgabe/codeb/testcases/malandro05.3 | 28 + .../ss08/abgabe/codeb/testcases/malandro06.3 | 27 + .../ss08/abgabe/codeb/testcases/malandro07.3 | 26 + .../ss08/abgabe/codeb/testcases/malandro09.3 | 27 + .../ss08/abgabe/codeb/testcases/malandro10.3 | 13 + .../ss08/abgabe/codeb/testcases/malandro11.3 | 24 + .../ss08/abgabe/codeb/testcases/malandro12.3 | 55 + .../ss08/abgabe/codeb/testcases/malandro13.3 | 56 + .../ss08/abgabe/codeb/testcases/malandro14.3 | 62 + .../ss08/abgabe/codeb/testcases/malandro15.3 | 23 + .../ss08/abgabe/codeb/testcases/malandro16.3 | 19 + .../ublu/ss08/abgabe/codeb/testcases/my_a.0 | 3 + .../ss08/abgabe/codeb/testcases/my_a.call | 3 + .../ublu/ss08/abgabe/codeb/testcases/my_b.0 | 5 + .../ss08/abgabe/codeb/testcases/my_b.call | 3 + .../ublu/ss08/abgabe/codeb/testcases/my_c.0 | 5 + .../ss08/abgabe/codeb/testcases/my_c.call | 3 + .../ublu/ss08/abgabe/codeb/testcases/my_d.0 | 5 + .../ss08/abgabe/codeb/testcases/my_d.call | 3 + .../ublu/ss08/abgabe/codeb/testcases/my_e.0 | 4 + .../ss08/abgabe/codeb/testcases/my_e.call | 3 + .../ublu/ss08/abgabe/codeb/testcases/my_f.0 | 4 + .../ss08/abgabe/codeb/testcases/my_f.call | 3 + .../ublu/ss08/abgabe/codeb/testcases/my_g.0 | 4 + .../ss08/abgabe/codeb/testcases/my_g.call | 3 + .../ublu/ss08/abgabe/codeb/testcases/my_h.0 | 8 + .../ss08/abgabe/codeb/testcases/my_h.call | 4 + .../ublu/ss08/abgabe/codeb/testcases/my_i.3 | 8 + .../ublu/ss08/abgabe/codeb/testcases/my_j.0 | 6 + .../ss08/abgabe/codeb/testcases/my_j.call | 5 + .../ublu/ss08/abgabe/codeb/testcases/my_k.0 | 6 + .../ss08/abgabe/codeb/testcases/my_k.call | 9 + .../ublu/ss08/abgabe/codeb/testcases/my_l.0 | 6 + .../ss08/abgabe/codeb/testcases/my_l.call | 7 + .../ss08/abgabe/codeb/testcases/negterm.0 | 3 + .../ss08/abgabe/codeb/testcases/negterm.call | 2 + .../ss08/abgabe/codeb/testcases/negterm1.0 | 3 + .../ss08/abgabe/codeb/testcases/negterm1.call | 2 + .../ss08/abgabe/codeb/testcases/parameter1.0 | 3 + .../abgabe/codeb/testcases/parameter1.call | 2 + .../ss08/abgabe/codeb/testcases/parameter2.0 | 3 + .../abgabe/codeb/testcases/parameter2.call | 2 + .../ss08/abgabe/codeb/testcases/parameter3.0 | 5 + .../abgabe/codeb/testcases/parameter3.call | 12 + .../ss08/abgabe/codeb/testcases/parameter4.0 | 5 + .../abgabe/codeb/testcases/parameter4.call | 12 + .../ss08/abgabe/codeb/testcases/parameter5.0 | 5 + .../abgabe/codeb/testcases/parameter5.call | 7 + .../ss08/abgabe/codeb/testcases/parameter6.0 | 5 + .../abgabe/codeb/testcases/parameter6.call | 12 + .../ss08/abgabe/codeb/testcases/regfehler.4 | 4 + .../ublu/ss08/abgabe/codeb/testcases/test1.3 | 19 + .../ublu/ss08/abgabe/codeb/testcases/test2.3 | 10 + .../ublu/ss08/abgabe/codeb/testcases/test3.3 | 6 + .../ublu/ss08/abgabe/codeb/testcases/test4.2 | 8 + .../abgabe/codeb/testcases/testscriptx03.3 | 19 + .../ss08/abgabe/codeb/testcases/tiefemax.0 | 4 + .../ss08/abgabe/codeb/testcases/tiefemax.call | 2 + .../ublu/ss08/abgabe/codeb/testcases/tiefen.0 | 4 + .../ss08/abgabe/codeb/testcases/tiefen.call | 4 + .../ss08/abgabe/codeb/testcases/tiefen1.0 | 4 + .../ss08/abgabe/codeb/testcases/tiefen1.call | 4 + .../paulchen/ublu/ss08/abgabe/codeb/tree.c | 157 ++ .../paulchen/ublu/ss08/abgabe/codeb/tree.h | 94 + .../ublu/ss08/abgabe/gesamt/.svn/all-wcprops | 77 + .../ublu/ss08/abgabe/gesamt/.svn/entries | 192 ++ .../ublu/ss08/abgabe/gesamt/.svn/format | 1 + .../gesamt/.svn/prop-base/code.bfe.svn-base | 5 + .../.svn/prop-base/symbol_table.c.svn-base | 5 + .../.svn/prop-base/symbol_table.h.svn-base | 5 + .../gesamt/.svn/prop-base/tree.c.svn-base | 5 + .../gesamt/.svn/prop-base/tree.h.svn-base | 5 + .../gesamt/.svn/text-base/Makefile.svn-base | 38 + .../gesamt/.svn/text-base/code.bfe.svn-base | 88 + .../gesamt/.svn/text-base/code_gen.c.svn-base | 104 + .../gesamt/.svn/text-base/code_gen.h.svn-base | 18 + .../gesamt/.svn/text-base/parser.y.svn-base | 595 +++++ .../.svn/text-base/scanner.lex.svn-base | 67 + .../.svn/text-base/symbol_table.c.svn-base | 192 ++ .../.svn/text-base/symbol_table.h.svn-base | 27 + .../gesamt/.svn/text-base/test.c.svn-base | 187 ++ .../gesamt/.svn/text-base/test.input.svn-base | 55 + .../gesamt/.svn/text-base/tree.c.svn-base | 157 ++ .../gesamt/.svn/text-base/tree.h.svn-base | 98 + .../paulchen/ublu/ss08/abgabe/gesamt/Makefile | 38 + .../paulchen/ublu/ss08/abgabe/gesamt/code.bfe | 88 + .../ublu/ss08/abgabe/gesamt/code_gen.c | 104 + .../ublu/ss08/abgabe/gesamt/code_gen.h | 18 + .../paulchen/ublu/ss08/abgabe/gesamt/optfib.s | 351 +++ .../paulchen/ublu/ss08/abgabe/gesamt/parser.y | 595 +++++ .../ublu/ss08/abgabe/gesamt/scanner.lex | 67 + .../ublu/ss08/abgabe/gesamt/symbol_table.c | 192 ++ .../ublu/ss08/abgabe/gesamt/symbol_table.h | 27 + .../paulchen/ublu/ss08/abgabe/gesamt/test.c | 187 ++ .../ublu/ss08/abgabe/gesamt/test.input | 55 + .../abgabe/gesamt/testcases/.svn/all-wcprops | 1181 ++++++++ .../ss08/abgabe/gesamt/testcases/.svn/entries | 2368 +++++++++++++++++ .../ss08/abgabe/gesamt/testcases/.svn/format | 1 + .../testcases/.svn/text-base/ag_b.3.svn-base | 6 + .../testcases/.svn/text-base/ag_e.3.svn-base | 9 + .../testcases/.svn/text-base/ag_g.3.svn-base | 9 + .../testcases/.svn/text-base/ag_h.3.svn-base | 5 + .../testcases/.svn/text-base/ag_i.3.svn-base | 13 + .../testcases/.svn/text-base/ag_j.3.svn-base | 12 + .../testcases/.svn/text-base/ag_k.3.svn-base | 6 + .../.svn/text-base/algebra.0.svn-base | 3 + .../.svn/text-base/algebra.call.svn-base | 2 + .../.svn/text-base/algebra1.0.svn-base | 3 + .../.svn/text-base/algebra1.call.svn-base | 2 + .../.svn/text-base/algebran1.0.svn-base | 3 + .../.svn/text-base/algebran1.call.svn-base | 2 + .../.svn/text-base/algebran2.0.svn-base | 3 + .../.svn/text-base/algebran2.call.svn-base | 2 + .../.svn/text-base/algebran3.0.svn-base | 3 + .../.svn/text-base/algebran3.call.svn-base | 2 + .../.svn/text-base/algebran4.0.svn-base | 3 + .../.svn/text-base/algebran4.call.svn-base | 2 + .../testcases/.svn/text-base/blubb1.svn-base | 17 + .../testcases/.svn/text-base/blubb2.svn-base | 17 + .../testcases/.svn/text-base/f1.0.svn-base | 1 + .../testcases/.svn/text-base/f1.call.svn-base | 4 + .../testcases/.svn/text-base/f10.0.svn-base | 1 + .../.svn/text-base/f10.call.svn-base | 4 + .../testcases/.svn/text-base/f2.0.svn-base | 1 + .../testcases/.svn/text-base/f2.call.svn-base | 4 + .../testcases/.svn/text-base/f3.0.svn-base | 1 + .../testcases/.svn/text-base/f3.call.svn-base | 4 + .../testcases/.svn/text-base/f4.0.svn-base | 1 + .../testcases/.svn/text-base/f4.call.svn-base | 4 + .../testcases/.svn/text-base/f5.0.svn-base | 1 + .../testcases/.svn/text-base/f5.call.svn-base | 4 + .../testcases/.svn/text-base/f6.0.svn-base | 1 + .../testcases/.svn/text-base/f6.call.svn-base | 4 + .../testcases/.svn/text-base/f7.0.svn-base | 1 + .../testcases/.svn/text-base/f7.call.svn-base | 4 + .../testcases/.svn/text-base/f8.0.svn-base | 1 + .../testcases/.svn/text-base/f8.call.svn-base | 4 + .../testcases/.svn/text-base/f9.0.svn-base | 1 + .../testcases/.svn/text-base/f9.call.svn-base | 4 + .../testcases/.svn/text-base/fib.0.svn-base | 17 + .../.svn/text-base/fib.call.svn-base | 4 + .../testcases/.svn/text-base/fib2.0.svn-base | 16 + .../.svn/text-base/fib2.call.svn-base | 4 + .../.svn/text-base/forum_04.3.svn-base | 2 + .../.svn/text-base/forum_05.3.svn-base | 3 + .../.svn/text-base/forum_06.3.svn-base | 4 + .../.svn/text-base/forum_07.2.svn-base | 1 + .../.svn/text-base/forum_08.3.svn-base | 9 + .../.svn/text-base/forumx_04.3.svn-base | 5 + .../.svn/text-base/forumx_05.3.svn-base | 5 + .../.svn/text-base/forumx_06.3.svn-base | 4 + .../.svn/text-base/forumx_07.2.svn-base | 1 + .../.svn/text-base/forumx_08.3.svn-base | 11 + .../testcases/.svn/text-base/g1.0.svn-base | 1 + .../testcases/.svn/text-base/g1.call.svn-base | 18 + .../testcases/.svn/text-base/g10.0.svn-base | 1 + .../.svn/text-base/g10.call.svn-base | 18 + .../testcases/.svn/text-base/g11.0.svn-base | 1 + .../.svn/text-base/g11.call.svn-base | 18 + .../testcases/.svn/text-base/g12.0.svn-base | 1 + .../.svn/text-base/g12.call.svn-base | 18 + .../testcases/.svn/text-base/g2.0.svn-base | 1 + .../testcases/.svn/text-base/g2.call.svn-base | 18 + .../testcases/.svn/text-base/g3.0.svn-base | 1 + .../testcases/.svn/text-base/g3.call.svn-base | 18 + .../testcases/.svn/text-base/g4.0.svn-base | 1 + .../testcases/.svn/text-base/g4.call.svn-base | 18 + .../testcases/.svn/text-base/g5.0.svn-base | 1 + .../testcases/.svn/text-base/g5.call.svn-base | 18 + .../testcases/.svn/text-base/g6.0.svn-base | 1 + .../testcases/.svn/text-base/g6.call.svn-base | 18 + .../testcases/.svn/text-base/g7.0.svn-base | 1 + .../testcases/.svn/text-base/g7.call.svn-base | 18 + .../testcases/.svn/text-base/g8.0.svn-base | 1 + .../testcases/.svn/text-base/g8.call.svn-base | 18 + .../testcases/.svn/text-base/g9.0.svn-base | 1 + .../testcases/.svn/text-base/g9.call.svn-base | 18 + .../testcases/.svn/text-base/h1.0.svn-base | 1 + .../testcases/.svn/text-base/h1.call.svn-base | 21 + .../testcases/.svn/text-base/h10.0.svn-base | 1 + .../.svn/text-base/h10.call.svn-base | 21 + .../testcases/.svn/text-base/h11.0.svn-base | 1 + .../.svn/text-base/h11.call.svn-base | 21 + .../testcases/.svn/text-base/h12.0.svn-base | 1 + .../.svn/text-base/h12.call.svn-base | 21 + .../testcases/.svn/text-base/h13.0.svn-base | 1 + .../.svn/text-base/h13.call.svn-base | 21 + .../testcases/.svn/text-base/h14.0.svn-base | 1 + .../.svn/text-base/h14.call.svn-base | 21 + .../testcases/.svn/text-base/h15.0.svn-base | 1 + .../.svn/text-base/h15.call.svn-base | 21 + .../testcases/.svn/text-base/h16.0.svn-base | 1 + .../.svn/text-base/h16.call.svn-base | 21 + .../testcases/.svn/text-base/h17.0.svn-base | 1 + .../.svn/text-base/h17.call.svn-base | 21 + .../testcases/.svn/text-base/h18.0.svn-base | 1 + .../.svn/text-base/h18.call.svn-base | 21 + .../testcases/.svn/text-base/h19.0.svn-base | 1 + .../.svn/text-base/h19.call.svn-base | 21 + .../testcases/.svn/text-base/h2.0.svn-base | 1 + .../testcases/.svn/text-base/h2.call.svn-base | 21 + .../testcases/.svn/text-base/h20.0.svn-base | 1 + .../.svn/text-base/h20.call.svn-base | 21 + .../testcases/.svn/text-base/h21.0.svn-base | 1 + .../.svn/text-base/h21.call.svn-base | 21 + .../testcases/.svn/text-base/h22.0.svn-base | 1 + .../.svn/text-base/h22.call.svn-base | 21 + .../testcases/.svn/text-base/h23.0.svn-base | 1 + .../.svn/text-base/h23.call.svn-base | 21 + .../testcases/.svn/text-base/h24.0.svn-base | 1 + .../.svn/text-base/h24.call.svn-base | 21 + .../testcases/.svn/text-base/h3.0.svn-base | 1 + .../testcases/.svn/text-base/h3.call.svn-base | 21 + .../testcases/.svn/text-base/h4.0.svn-base | 1 + .../testcases/.svn/text-base/h4.call.svn-base | 21 + .../testcases/.svn/text-base/h5.0.svn-base | 1 + .../testcases/.svn/text-base/h5.call.svn-base | 21 + .../testcases/.svn/text-base/h6.0.svn-base | 1 + .../testcases/.svn/text-base/h6.call.svn-base | 21 + .../testcases/.svn/text-base/h7.0.svn-base | 1 + .../testcases/.svn/text-base/h7.call.svn-base | 21 + .../testcases/.svn/text-base/h8.0.svn-base | 1 + .../testcases/.svn/text-base/h8.call.svn-base | 21 + .../testcases/.svn/text-base/h9.0.svn-base | 1 + .../testcases/.svn/text-base/h9.call.svn-base | 21 + .../.svn/text-base/local01.3.svn-base | 7 + .../.svn/text-base/localx01.3.svn-base | 7 + .../.svn/text-base/malandro.3.svn-base | 14 + .../.svn/text-base/malandro01.3.svn-base | 5 + .../.svn/text-base/malandro02.3.svn-base | 6 + .../.svn/text-base/malandro03.3.svn-base | 21 + .../.svn/text-base/malandro04.3.svn-base | 24 + .../.svn/text-base/malandro05.3.svn-base | 28 + .../.svn/text-base/malandro06.3.svn-base | 27 + .../.svn/text-base/malandro07.3.svn-base | 26 + .../.svn/text-base/malandro09.3.svn-base | 27 + .../.svn/text-base/malandro10.3.svn-base | 13 + .../.svn/text-base/malandro11.3.svn-base | 24 + .../.svn/text-base/malandro12.3.svn-base | 55 + .../.svn/text-base/malandro13.3.svn-base | 56 + .../.svn/text-base/malandro14.3.svn-base | 62 + .../.svn/text-base/malandro15.3.svn-base | 23 + .../.svn/text-base/malandro16.3.svn-base | 19 + .../testcases/.svn/text-base/my_a.0.svn-base | 3 + .../.svn/text-base/my_a.call.svn-base | 3 + .../testcases/.svn/text-base/my_b.0.svn-base | 5 + .../.svn/text-base/my_b.call.svn-base | 3 + .../testcases/.svn/text-base/my_c.0.svn-base | 5 + .../.svn/text-base/my_c.call.svn-base | 3 + .../testcases/.svn/text-base/my_d.0.svn-base | 5 + .../.svn/text-base/my_d.call.svn-base | 3 + .../testcases/.svn/text-base/my_e.0.svn-base | 4 + .../.svn/text-base/my_e.call.svn-base | 3 + .../testcases/.svn/text-base/my_f.0.svn-base | 4 + .../.svn/text-base/my_f.call.svn-base | 3 + .../testcases/.svn/text-base/my_g.0.svn-base | 4 + .../.svn/text-base/my_g.call.svn-base | 3 + .../testcases/.svn/text-base/my_h.0.svn-base | 8 + .../.svn/text-base/my_h.call.svn-base | 4 + .../testcases/.svn/text-base/my_i.3.svn-base | 8 + .../testcases/.svn/text-base/my_j.0.svn-base | 6 + .../.svn/text-base/my_j.call.svn-base | 5 + .../testcases/.svn/text-base/my_k.0.svn-base | 6 + .../.svn/text-base/my_k.call.svn-base | 9 + .../testcases/.svn/text-base/my_l.0.svn-base | 6 + .../.svn/text-base/my_l.call.svn-base | 7 + .../.svn/text-base/negterm.0.svn-base | 3 + .../.svn/text-base/negterm.call.svn-base | 2 + .../.svn/text-base/negterm1.0.svn-base | 3 + .../.svn/text-base/negterm1.call.svn-base | 2 + .../.svn/text-base/parameter1.0.svn-base | 3 + .../.svn/text-base/parameter1.call.svn-base | 2 + .../.svn/text-base/parameter2.0.svn-base | 3 + .../.svn/text-base/parameter2.call.svn-base | 2 + .../.svn/text-base/parameter3.0.svn-base | 5 + .../.svn/text-base/parameter3.call.svn-base | 12 + .../.svn/text-base/parameter4.0.svn-base | 5 + .../.svn/text-base/parameter4.call.svn-base | 12 + .../.svn/text-base/parameter5.0.svn-base | 5 + .../.svn/text-base/parameter5.call.svn-base | 7 + .../.svn/text-base/parameter6.0.svn-base | 5 + .../.svn/text-base/parameter6.call.svn-base | 12 + .../.svn/text-base/regfehler.4.svn-base | 4 + .../testcases/.svn/text-base/test1.3.svn-base | 19 + .../testcases/.svn/text-base/test2.3.svn-base | 10 + .../testcases/.svn/text-base/test3.3.svn-base | 6 + .../testcases/.svn/text-base/test4.2.svn-base | 8 + .../.svn/text-base/testscriptx03.3.svn-base | 19 + .../.svn/text-base/tiefemax.0.svn-base | 4 + .../.svn/text-base/tiefemax.call.svn-base | 2 + .../.svn/text-base/tiefen.0.svn-base | 4 + .../.svn/text-base/tiefen.call.svn-base | 4 + .../.svn/text-base/tiefen1.0.svn-base | 4 + .../.svn/text-base/tiefen1.call.svn-base | 4 + .../ublu/ss08/abgabe/gesamt/testcases/ag_b.3 | 6 + .../ublu/ss08/abgabe/gesamt/testcases/ag_e.3 | 9 + .../ublu/ss08/abgabe/gesamt/testcases/ag_g.3 | 9 + .../ublu/ss08/abgabe/gesamt/testcases/ag_h.3 | 5 + .../ublu/ss08/abgabe/gesamt/testcases/ag_i.3 | 13 + .../ublu/ss08/abgabe/gesamt/testcases/ag_j.3 | 12 + .../ublu/ss08/abgabe/gesamt/testcases/ag_k.3 | 6 + .../ss08/abgabe/gesamt/testcases/algebra.0 | 3 + .../ss08/abgabe/gesamt/testcases/algebra.call | 2 + .../ss08/abgabe/gesamt/testcases/algebra1.0 | 3 + .../abgabe/gesamt/testcases/algebra1.call | 2 + .../ss08/abgabe/gesamt/testcases/algebran1.0 | 3 + .../abgabe/gesamt/testcases/algebran1.call | 2 + .../ss08/abgabe/gesamt/testcases/algebran2.0 | 3 + .../abgabe/gesamt/testcases/algebran2.call | 2 + .../ss08/abgabe/gesamt/testcases/algebran3.0 | 3 + .../abgabe/gesamt/testcases/algebran3.call | 2 + .../ss08/abgabe/gesamt/testcases/algebran4.0 | 3 + .../abgabe/gesamt/testcases/algebran4.call | 2 + .../ublu/ss08/abgabe/gesamt/testcases/blubb1 | 17 + .../ublu/ss08/abgabe/gesamt/testcases/blubb2 | 17 + .../ublu/ss08/abgabe/gesamt/testcases/f1.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/f1.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/f10.0 | 1 + .../ss08/abgabe/gesamt/testcases/f10.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/f2.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/f2.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/f3.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/f3.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/f4.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/f4.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/f5.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/f5.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/f6.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/f6.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/f7.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/f7.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/f8.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/f8.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/f9.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/f9.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/fib.0 | 17 + .../ss08/abgabe/gesamt/testcases/fib.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/fib2.0 | 16 + .../ss08/abgabe/gesamt/testcases/fib2.call | 4 + .../ss08/abgabe/gesamt/testcases/forum_04.3 | 2 + .../ss08/abgabe/gesamt/testcases/forum_05.3 | 3 + .../ss08/abgabe/gesamt/testcases/forum_06.3 | 4 + .../ss08/abgabe/gesamt/testcases/forum_07.2 | 1 + .../ss08/abgabe/gesamt/testcases/forum_08.3 | 9 + .../ss08/abgabe/gesamt/testcases/forumx_04.3 | 5 + .../ss08/abgabe/gesamt/testcases/forumx_05.3 | 5 + .../ss08/abgabe/gesamt/testcases/forumx_06.3 | 4 + .../ss08/abgabe/gesamt/testcases/forumx_07.2 | 1 + .../ss08/abgabe/gesamt/testcases/forumx_08.3 | 11 + .../ublu/ss08/abgabe/gesamt/testcases/g1.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/g1.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g10.0 | 1 + .../ss08/abgabe/gesamt/testcases/g10.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g11.0 | 1 + .../ss08/abgabe/gesamt/testcases/g11.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g12.0 | 1 + .../ss08/abgabe/gesamt/testcases/g12.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g2.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/g2.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g3.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/g3.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g4.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/g4.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g5.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/g5.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g6.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/g6.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g7.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/g7.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g8.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/g8.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/g9.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/g9.call | 18 + .../ublu/ss08/abgabe/gesamt/testcases/h1.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/h1.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h10.0 | 1 + .../ss08/abgabe/gesamt/testcases/h10.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h11.0 | 1 + .../ss08/abgabe/gesamt/testcases/h11.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h12.0 | 1 + .../ss08/abgabe/gesamt/testcases/h12.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h13.0 | 1 + .../ss08/abgabe/gesamt/testcases/h13.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h14.0 | 1 + .../ss08/abgabe/gesamt/testcases/h14.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h15.0 | 1 + .../ss08/abgabe/gesamt/testcases/h15.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h16.0 | 1 + .../ss08/abgabe/gesamt/testcases/h16.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h17.0 | 1 + .../ss08/abgabe/gesamt/testcases/h17.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h18.0 | 1 + .../ss08/abgabe/gesamt/testcases/h18.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h19.0 | 1 + .../ss08/abgabe/gesamt/testcases/h19.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h2.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/h2.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h20.0 | 1 + .../ss08/abgabe/gesamt/testcases/h20.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h21.0 | 1 + .../ss08/abgabe/gesamt/testcases/h21.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h22.0 | 1 + .../ss08/abgabe/gesamt/testcases/h22.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h23.0 | 1 + .../ss08/abgabe/gesamt/testcases/h23.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h24.0 | 1 + .../ss08/abgabe/gesamt/testcases/h24.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h3.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/h3.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h4.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/h4.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h5.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/h5.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h6.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/h6.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h7.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/h7.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h8.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/h8.call | 21 + .../ublu/ss08/abgabe/gesamt/testcases/h9.0 | 1 + .../ublu/ss08/abgabe/gesamt/testcases/h9.call | 21 + .../ss08/abgabe/gesamt/testcases/local01.3 | 7 + .../ss08/abgabe/gesamt/testcases/localx01.3 | 7 + .../ss08/abgabe/gesamt/testcases/malandro.3 | 14 + .../ss08/abgabe/gesamt/testcases/malandro01.3 | 5 + .../ss08/abgabe/gesamt/testcases/malandro02.3 | 6 + .../ss08/abgabe/gesamt/testcases/malandro03.3 | 21 + .../ss08/abgabe/gesamt/testcases/malandro04.3 | 24 + .../ss08/abgabe/gesamt/testcases/malandro05.3 | 28 + .../ss08/abgabe/gesamt/testcases/malandro06.3 | 27 + .../ss08/abgabe/gesamt/testcases/malandro07.3 | 26 + .../ss08/abgabe/gesamt/testcases/malandro09.3 | 27 + .../ss08/abgabe/gesamt/testcases/malandro10.3 | 13 + .../ss08/abgabe/gesamt/testcases/malandro11.3 | 24 + .../ss08/abgabe/gesamt/testcases/malandro12.3 | 55 + .../ss08/abgabe/gesamt/testcases/malandro13.3 | 56 + .../ss08/abgabe/gesamt/testcases/malandro14.3 | 62 + .../ss08/abgabe/gesamt/testcases/malandro15.3 | 23 + .../ss08/abgabe/gesamt/testcases/malandro16.3 | 19 + .../ublu/ss08/abgabe/gesamt/testcases/my_a.0 | 3 + .../ss08/abgabe/gesamt/testcases/my_a.call | 3 + .../ublu/ss08/abgabe/gesamt/testcases/my_b.0 | 5 + .../ss08/abgabe/gesamt/testcases/my_b.call | 3 + .../ublu/ss08/abgabe/gesamt/testcases/my_c.0 | 5 + .../ss08/abgabe/gesamt/testcases/my_c.call | 3 + .../ublu/ss08/abgabe/gesamt/testcases/my_d.0 | 5 + .../ss08/abgabe/gesamt/testcases/my_d.call | 3 + .../ublu/ss08/abgabe/gesamt/testcases/my_e.0 | 4 + .../ss08/abgabe/gesamt/testcases/my_e.call | 3 + .../ublu/ss08/abgabe/gesamt/testcases/my_f.0 | 4 + .../ss08/abgabe/gesamt/testcases/my_f.call | 3 + .../ublu/ss08/abgabe/gesamt/testcases/my_g.0 | 4 + .../ss08/abgabe/gesamt/testcases/my_g.call | 3 + .../ublu/ss08/abgabe/gesamt/testcases/my_h.0 | 8 + .../ss08/abgabe/gesamt/testcases/my_h.call | 4 + .../ublu/ss08/abgabe/gesamt/testcases/my_i.3 | 8 + .../ublu/ss08/abgabe/gesamt/testcases/my_j.0 | 6 + .../ss08/abgabe/gesamt/testcases/my_j.call | 5 + .../ublu/ss08/abgabe/gesamt/testcases/my_k.0 | 6 + .../ss08/abgabe/gesamt/testcases/my_k.call | 9 + .../ublu/ss08/abgabe/gesamt/testcases/my_l.0 | 6 + .../ss08/abgabe/gesamt/testcases/my_l.call | 7 + .../ss08/abgabe/gesamt/testcases/negterm.0 | 3 + .../ss08/abgabe/gesamt/testcases/negterm.call | 2 + .../ss08/abgabe/gesamt/testcases/negterm1.0 | 3 + .../abgabe/gesamt/testcases/negterm1.call | 2 + .../ss08/abgabe/gesamt/testcases/parameter1.0 | 3 + .../abgabe/gesamt/testcases/parameter1.call | 2 + .../ss08/abgabe/gesamt/testcases/parameter2.0 | 3 + .../abgabe/gesamt/testcases/parameter2.call | 2 + .../ss08/abgabe/gesamt/testcases/parameter3.0 | 5 + .../abgabe/gesamt/testcases/parameter3.call | 12 + .../ss08/abgabe/gesamt/testcases/parameter4.0 | 5 + .../abgabe/gesamt/testcases/parameter4.call | 12 + .../ss08/abgabe/gesamt/testcases/parameter5.0 | 5 + .../abgabe/gesamt/testcases/parameter5.call | 7 + .../ss08/abgabe/gesamt/testcases/parameter6.0 | 5 + .../abgabe/gesamt/testcases/parameter6.call | 12 + .../ss08/abgabe/gesamt/testcases/regfehler.4 | 4 + .../ublu/ss08/abgabe/gesamt/testcases/test1.3 | 19 + .../ublu/ss08/abgabe/gesamt/testcases/test2.3 | 10 + .../ublu/ss08/abgabe/gesamt/testcases/test3.3 | 6 + .../ublu/ss08/abgabe/gesamt/testcases/test4.2 | 8 + .../abgabe/gesamt/testcases/testscriptx03.3 | 19 + .../ss08/abgabe/gesamt/testcases/tiefemax.0 | 4 + .../abgabe/gesamt/testcases/tiefemax.call | 2 + .../ss08/abgabe/gesamt/testcases/tiefen.0 | 4 + .../ss08/abgabe/gesamt/testcases/tiefen.call | 4 + .../ss08/abgabe/gesamt/testcases/tiefen1.0 | 4 + .../ss08/abgabe/gesamt/testcases/tiefen1.call | 4 + .../paulchen/ublu/ss08/abgabe/gesamt/tree.c | 157 ++ .../paulchen/ublu/ss08/abgabe/gesamt/tree.h | 98 + 875 files changed, 23334 insertions(+) create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/all-wcprops create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/entries create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/format create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/code.bfe.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/symbol_table.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/symbol_table.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/tree.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/tree.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/Makefile.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code.bfe.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code_gen.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code_gen.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/parser.y.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/scanner.lex.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/symbol_table.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/symbol_table.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/tree.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/tree.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/Makefile create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code.bfe create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code_gen.c create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code_gen.h create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/parser.y create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/scanner.lex create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/symbol_table.c create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/symbol_table.h create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/tree.c create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/tree.h create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/all-wcprops create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/entries create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/format create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/code.bfe.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/symbol_table.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/symbol_table.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/tree.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/tree.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/Makefile.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code.bfe.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code_gen.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code_gen.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/parser.y.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/scanner.lex.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/symbol_table.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/symbol_table.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/test.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/test.input.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/tree.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/tree.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/Makefile create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code.bfe create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code_gen.c create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code_gen.h create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/parser.y create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/scanner.lex create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/symbol_table.c create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/symbol_table.h create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/test.c create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/test.input create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/all-wcprops create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/entries create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/format create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_b.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_e.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_g.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_h.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_i.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_j.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_k.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f10.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f10.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f5.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f5.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f6.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f6.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f7.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f7.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f8.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f8.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f9.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f9.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/fib.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/fib.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_04.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_05.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_06.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_07.2.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_08.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_04.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_05.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_06.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_07.2.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_08.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g10.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g10.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g11.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g11.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g12.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g12.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g5.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g5.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g6.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g6.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g7.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g7.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g8.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g8.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g9.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g9.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h10.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h10.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h11.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h11.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h12.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h12.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h13.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h13.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h14.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h14.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h15.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h15.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h16.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h16.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h17.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h17.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h18.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h18.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h19.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h19.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h20.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h20.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h21.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h21.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h22.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h22.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h23.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h23.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h24.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h24.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h5.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h5.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h6.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h6.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h7.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h7.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h8.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h8.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h9.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h9.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/local01.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/localx01.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro01.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro02.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro03.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro04.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro05.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro06.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro07.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro09.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro10.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro11.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro12.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro13.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro14.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro15.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro16.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_a.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_a.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_b.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_b.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_c.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_c.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_d.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_d.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_e.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_e.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_f.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_f.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_g.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_g.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_h.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_h.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_i.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_j.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_j.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_k.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_k.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_l.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_l.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter5.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter5.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter6.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter6.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/regfehler.4.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test1.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test2.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test3.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test4.2.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/testscriptx03.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefemax.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefemax.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_b.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_e.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_g.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_h.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_i.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_j.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_k.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f10.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f10.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f5.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f5.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f6.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f6.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f7.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f7.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f8.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f8.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f9.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f9.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/fib.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/fib.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_04.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_05.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_06.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_07.2 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_08.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_04.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_05.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_06.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_07.2 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_08.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g10.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g10.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g11.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g11.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g12.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g12.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g5.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g5.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g6.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g6.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g7.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g7.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g8.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g8.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g9.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g9.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h10.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h10.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h11.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h11.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h12.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h12.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h13.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h13.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h14.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h14.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h15.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h15.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h16.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h16.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h17.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h17.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h18.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h18.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h19.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h19.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h20.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h20.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h21.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h21.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h22.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h22.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h23.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h23.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h24.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h24.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h5.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h5.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h6.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h6.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h7.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h7.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h8.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h8.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h9.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h9.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/local01.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/localx01.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro01.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro02.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro03.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro04.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro05.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro06.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro07.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro09.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro10.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro11.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro12.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro13.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro14.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro15.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro16.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_a.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_a.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_b.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_b.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_c.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_c.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_d.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_d.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_e.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_e.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_f.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_f.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_g.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_g.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_h.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_h.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_i.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_j.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_j.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_k.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_k.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_l.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_l.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter5.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter5.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter6.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter6.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/regfehler.4 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test1.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test2.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test3.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test4.2 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/testscriptx03.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefemax.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefemax.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen1.call create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/tree.c create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/tree.h create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/all-wcprops create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/entries create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/format create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/code.bfe.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/symbol_table.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/symbol_table.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/tree.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/tree.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/Makefile.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code.bfe.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code_gen.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code_gen.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/parser.y.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/scanner.lex.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/symbol_table.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/symbol_table.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/test.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/test.input.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/tree.c.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/tree.h.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/Makefile create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code.bfe create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code_gen.c create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code_gen.h create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/optfib.s create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/parser.y create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/scanner.lex create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/symbol_table.c create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/symbol_table.h create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/test.c create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/test.input create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/all-wcprops create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/entries create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/format create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_b.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_e.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_g.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_h.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_i.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_j.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_k.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/blubb1.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/blubb2.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f10.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f10.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f5.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f5.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f6.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f6.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f7.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f7.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f8.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f8.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f9.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f9.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_04.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_05.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_06.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_07.2.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_08.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_04.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_05.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_06.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_07.2.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_08.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g10.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g10.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g11.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g11.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g12.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g12.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g5.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g5.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g6.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g6.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g7.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g7.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g8.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g8.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g9.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g9.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h10.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h10.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h11.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h11.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h12.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h12.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h13.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h13.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h14.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h14.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h15.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h15.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h16.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h16.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h17.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h17.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h18.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h18.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h19.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h19.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h20.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h20.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h21.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h21.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h22.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h22.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h23.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h23.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h24.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h24.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h5.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h5.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h6.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h6.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h7.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h7.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h8.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h8.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h9.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h9.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/local01.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/localx01.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro01.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro02.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro03.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro04.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro05.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro06.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro07.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro09.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro10.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro11.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro12.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro13.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro14.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro15.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro16.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_a.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_a.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_b.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_b.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_c.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_c.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_d.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_d.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_e.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_e.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_f.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_f.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_g.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_g.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_h.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_h.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_i.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_j.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_j.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_k.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_k.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_l.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_l.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter2.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter2.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter3.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter3.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter4.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter4.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter5.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter5.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter6.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter6.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/regfehler.4.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test1.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test2.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test3.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test4.2.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/testscriptx03.3.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefemax.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefemax.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen1.0.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen1.call.svn-base create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_b.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_e.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_g.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_h.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_i.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_j.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_k.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/blubb1 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/blubb2 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f10.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f10.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f5.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f5.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f6.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f6.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f7.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f7.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f8.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f8.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f9.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f9.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_04.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_05.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_06.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_07.2 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_08.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_04.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_05.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_06.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_07.2 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_08.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g10.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g10.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g11.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g11.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g12.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g12.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g5.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g5.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g6.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g6.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g7.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g7.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g8.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g8.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g9.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g9.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h10.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h10.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h11.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h11.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h12.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h12.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h13.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h13.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h14.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h14.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h15.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h15.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h16.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h16.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h17.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h17.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h18.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h18.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h19.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h19.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h20.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h20.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h21.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h21.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h22.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h22.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h23.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h23.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h24.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h24.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h5.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h5.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h6.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h6.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h7.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h7.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h8.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h8.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h9.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h9.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/local01.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/localx01.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro01.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro02.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro03.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro04.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro05.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro06.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro07.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro09.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro10.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro11.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro12.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro13.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro14.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro15.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro16.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_a.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_a.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_b.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_b.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_c.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_c.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_d.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_d.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_e.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_e.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_f.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_f.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_g.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_g.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_h.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_h.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_i.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_j.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_j.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_k.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_k.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_l.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_l.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter1.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter2.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter2.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter3.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter3.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter4.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter4.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter5.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter5.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter6.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter6.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/regfehler.4 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test1.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test2.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test3.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test4.2 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/testscriptx03.3 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefemax.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefemax.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen.call create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen1.0 create mode 100644 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen1.call create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/tree.c create mode 100755 aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/tree.h diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/all-wcprops b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/all-wcprops new file mode 100644 index 0000000..5e0caab --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/all-wcprops @@ -0,0 +1,65 @@ +K 25 +svn:wc:ra_dav:version-url +V 38 +/svn/private/!svn/ver/759/ublu08/codea +END +scanner.lex +K 25 +svn:wc:ra_dav:version-url +V 50 +/svn/private/!svn/ver/683/ublu08/codea/scanner.lex +END +tree.c +K 25 +svn:wc:ra_dav:version-url +V 45 +/svn/private/!svn/ver/736/ublu08/codea/tree.c +END +symbol_table.h +K 25 +svn:wc:ra_dav:version-url +V 53 +/svn/private/!svn/ver/683/ublu08/codea/symbol_table.h +END +parser.y +K 25 +svn:wc:ra_dav:version-url +V 47 +/svn/private/!svn/ver/744/ublu08/codea/parser.y +END +code_gen.c +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/private/!svn/ver/759/ublu08/codea/code_gen.c +END +code.bfe +K 25 +svn:wc:ra_dav:version-url +V 47 +/svn/private/!svn/ver/780/ublu08/codea/code.bfe +END +tree.h +K 25 +svn:wc:ra_dav:version-url +V 45 +/svn/private/!svn/ver/744/ublu08/codea/tree.h +END +code_gen.h +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/private/!svn/ver/744/ublu08/codea/code_gen.h +END +Makefile +K 25 +svn:wc:ra_dav:version-url +V 47 +/svn/private/!svn/ver/683/ublu08/codea/Makefile +END +symbol_table.c +K 25 +svn:wc:ra_dav:version-url +V 53 +/svn/private/!svn/ver/781/ublu08/codea/symbol_table.c +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/entries b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/entries new file mode 100644 index 0000000..b144cad --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/entries @@ -0,0 +1,153 @@ +8 + +dir +771 +http://localhost/svn/private/ublu08/codea +http://localhost/svn/private + + + +2008-04-09T16:55:17.545963Z +759 +paulchen + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +95840bc9-f7e0-4b9f-abbd-54bb5795df2f + +scanner.lex +file + + + + +2008-04-04T21:11:26.000000Z +e5193bdf0f2e3175afb5173efc7ac4ec +2008-04-04T21:10:31.347771Z +683 +paulchen + +tree.c +file + + + + +2008-04-08T17:40:32.000000Z +685018af3da8e73474391babdd351b88 +2008-04-08T17:48:59.604714Z +736 +paulchen +has-props + +symbol_table.h +file + + + + +2008-04-04T21:11:26.000000Z +493b0c6d4a6b1f2b370fe1935e7b0706 +2008-04-04T21:10:31.347771Z +683 +paulchen +has-props + +parser.y +file + + + + +2008-04-13T09:53:12.000000Z +82f5823d7ea48eb83ee4cf4c4056968b +2008-04-08T22:39:27.776788Z +744 +paulchen + +code_gen.c +file + + + + +2008-04-09T16:52:54.000000Z +54532af314cac61a7b06519105ee632a +2008-04-09T16:55:17.545963Z +759 +paulchen + +code.bfe +file +780 + + + +2008-04-12T23:25:30.000000Z +ccc378cc28365656fe4510c7f2b0ac6e +2008-04-12T23:25:36.662708Z +780 +paulchen +has-props + +tree.h +file + + + + +2008-04-08T22:36:56.000000Z +25e9af1aa16f43c9a4881d3117aebef9 +2008-04-08T22:39:27.776788Z +744 +paulchen +has-props + +code_gen.h +file + + + + +2008-04-08T22:38:16.000000Z +e083019b07480ef42ad0535a35907722 +2008-04-08T22:39:27.776788Z +744 +paulchen + +Makefile +file + + + + +2008-04-04T21:11:26.000000Z +ee3c37f22722c18807f0ab93a5ab4b70 +2008-04-04T21:10:31.347771Z +683 +paulchen + +symbol_table.c +file +781 + + + +2008-04-13T09:52:22.000000Z +5f1213508c4c3e3866cadfb1ea8beb48 +2008-04-13T09:53:06.620369Z +781 +paulchen +has-props + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/format b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/format new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/format @@ -0,0 +1 @@ +8 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/code.bfe.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/code.bfe.svn-base new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/code.bfe.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/symbol_table.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/symbol_table.c.svn-base new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/symbol_table.c.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/symbol_table.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/symbol_table.h.svn-base new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/symbol_table.h.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/tree.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/tree.c.svn-base new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/tree.c.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/tree.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/tree.h.svn-base new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/prop-base/tree.h.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/Makefile.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..b7134d4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/Makefile.svn-base @@ -0,0 +1,38 @@ +all: codea + +scanner.c: oxout.l + flex -oscanner.c oxout.l + +scanner.o: scanner.c parser.h symbol_table.h + gcc -g -c -ansi -pedantic scanner.c -D_GNU_SOURCE + +codea: scanner.o parser.o symbol_table.o code_gen.o tree.o code.o + gcc -o codea symbol_table.o scanner.o parser.o code_gen.o tree.o code.o -lfl + +tree.o: tree.c tree.h + gcc -g -c -ansi -pedantic -Wall tree.c + +code_gen.o: code_gen.c code_gen.h + gcc -g -c -ansi -pedantic -Wall code_gen.c -D_GNU_SOURCE + +symbol_table.o: symbol_table.c symbol_table.h + gcc -g -c -ansi -pedantic -Wall symbol_table.c -D_GNU_SOURCE + +parser.o: parser.c symbol_table.h code_gen.h tree.h + gcc -g -c -ansi -pedantic parser.c + +parser.c parser.h: oxout.y + yacc -d oxout.y -o parser.c + +oxout.y oxout.l: parser.y scanner.lex + ox parser.y scanner.lex + +code.o: code.c tree.h + gcc -g -ansi -c code.c + +code.c: code.bfe + bfe < code.bfe | iburg > code.c + +clean: + rm -f codea scanner.o scanner.c parser.h parser.c parser.o oxout.y oxout.l symbol_table.o code_gen.o tree.o code.c code.o + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code.bfe.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code.bfe.svn-base new file mode 100644 index 0000000..074bae2 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code.bfe.svn-base @@ -0,0 +1,70 @@ +%{ +/* vim: filetype=c + */ +#define CODE + +#include +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* TODO (-a)+b */ +/* TODO func f(a,a) return a; end; shall do the same as func f(b,a) return a; end; */ +%} + +%start stat +%term OP_Not=1 OP_Negation=2 OP_Addition=3 OP_Multiplication=4 OP_Disjunction=5 OP_Greater=6 OP_Equal=7 OP_ID=8 OP_Number=9 OP_Field=10 OP_Return=11 OP_Zero=12 OP_One=13 OP_Exprs=14 OP_Call=15 + +%% + +stat: ret # 0 # + +ret: OP_Return(expr) # 1 # move(bnode->reg, "rax"); ret(); + +expr: OP_ID # 1 # if(bnode->value<0) move(get_param_reg(-bnode->value), bnode->reg); +expr: imm # 1 # printf("\tmovq $%li, %%%s\n", bnode->value, bnode->reg); +expr: call # 0 # +expr: OP_Negation(expr) # 1 # printf("\tnegq %%%s\n", bnode->reg); +expr: OP_Addition(expr,expr) # 1 # printf("\taddq %%%s, %%%s\n", bnode->kids[0]->reg, bnode->kids[1]->reg); +expr: OP_Addition(imm,expr) # 1 # printf("\taddq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); +expr: OP_Addition(expr,imm) # 1 # if(bnode->kids[0]->op=OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\taddq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\tadd $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Multiplication(expr,expr) # 1 # printf("\timulq %%%s, %%%s\n", bnode->kids[0]->reg, bnode->kids[1]->reg); +expr: OP_Multiplication(imm,expr) # 1 # printf("\timulq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); +expr: OP_Multiplication(expr,imm) # 1 # if(bnode->kids[0]->op=OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\tadd $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Field(expr,OP_ID) # 2 # printf("\tmovq %li(%%%s), %%%s\n", 8*bnode->value, bnode->kids[0]->reg, bnode->reg); +expr: OP_Field(imm,OP_ID) # 1 # printf("\tmovq %li, %%%s\n", bnode->kids[0]->value+bnode->value*8, bnode->reg); +expr: OP_Addition(expr, OP_Negation(expr)) # 1 # printf("\tsubq %%%s, %%%s\n", bnode->kids[0]->reg, bnode->kids[1]->kids[0]->reg); +expr: OP_Addition(OP_Negation(expr), OP_Negation(expr)) # 1 # printf("\taddq %%%s, %%%s\n\tneg %%%s\n", bnode->kids[0]->kids[0]->reg, bnode->kids[1]->kids[0]->reg, bnode->kids[1]->kids[0]->reg); +expr: OP_Multiplication(OP_Negation(expr), OP_Negation(expr)) # 1 # printf("\timulq %%%s, %%%s\n", bnode->kids[0]->reg, bnode->kids[1]->reg); + +call: OP_Call(OP_ID,exprs) # 0 # /* ignore at the moment */ + +exprs: expr # 0 # +exprs: OP_Exprs(exprs,expr) # 0 # + +zero: OP_Negation(zero) # 0 # +zero: OP_Zero # 0 # +zero: OP_Multiplication(zexpr,zero) # 0 # +zero: OP_Multiplication(zero,zexpr) # 0 # + +zexpr: zero # 0 # +zexpr: imm # 0 # +zexpr: OP_Negation(zexpr) # 0 # +zexpr: OP_Addition(zexpr,zexpr) # 0 # +zexpr: OP_Multiplication(zexpr,zexpr) # 0 # +zexpr: OP_Field(zexpr,OP_ID) # 0 # +zexpr: OP_ID # 0 # + +imm: zero # 0 # +imm: OP_Negation(imm) # 0 # bnode->value=-bnode->kids[0]->value; +imm: OP_Addition(imm,imm) # 0 # bnode->value=bnode->kids[0]->value+bnode->kids[1]->value; +imm: OP_Multiplication(imm,imm) # 0 # bnode->value=bnode->kids[0]->value*bnode->kids[1]->value; +imm: OP_Number # 0 # +imm: OP_Zero # 0 # +imm: OP_One # 0 # + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code_gen.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code_gen.c.svn-base new file mode 100644 index 0000000..09c43a9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code_gen.c.svn-base @@ -0,0 +1,43 @@ +#include +#include +#include "code_gen.h" + +void function_header(char *name) { + printf("\t.globl %s\n\t.type %s, @function\n%s:\n", name, name, name); +} + +char *get_next_reg(char *name, int skip_reg) { + char *reg_names[]={"rax", "r10", "r11", "r9", "r8", "rcx", "rdx", "rsi", "rdi"}; + int index, a; + if(name==(char *)NULL) { + index=0; + } + else { + for(a=0;a<9;a++) { + if(!strcmp(name,reg_names[a])) { + index=a+1; + break; + } + } + } + if(skip_reg) { + index++; + } + return reg_names[index]; +} + +char *get_param_reg(long number) { + char *reg_names[]={"rdi", "rsi", "rdx", "rcx", "r8", "r9"}; + return reg_names[number-1]; +} + +void ret(void) { + printf("\tret\n"); +} + +void move(char *src, char *dst) { + if(strcmp(src,dst)) { + printf("\tmovq %%%s, %%%s\n",src,dst); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code_gen.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code_gen.h.svn-base new file mode 100644 index 0000000..7dcbc5a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/code_gen.h.svn-base @@ -0,0 +1,11 @@ +#ifndef _CODE_GEN_H_ +#define _CODE_GEN_H_ + +void function_header(char *name); +char *get_next_reg(char *name, int skip_reg); +char *get_param_reg(long number); +void ret(void); +void move(char *src, char *dest); + +#endif /* _CODE_GEN_H_ */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/parser.y.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/parser.y.svn-base new file mode 100644 index 0000000..869143b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/parser.y.svn-base @@ -0,0 +1,345 @@ +%{ + #include + #include + #include + #include "symbol_table.h" + #include "code_gen.h" + #include "tree.h" +%} + +%start Input +%token FUNC END STRUCT VAR IF THEN ELSE WHILE DO RETURN OR NOT +%token ID NUM ASSIGN GREATER + +@autoinh symbols stack_offset all_pars +@autosyn node defined_vars immediate + +@attributes { char *name; } ID +@attributes { long value; } NUM +@attributes { struct symbol_t *fields; struct symbol_t *symbols; } Program +@attributes { struct symbol_t *fields; } Structdef +@attributes { struct symbol_t *fields; int offset; } Ids +@attributes { struct symbol_t *pars; int num_pars; int all_pars; } Pars +@attributes { struct symbol_t *symbols; int defined_vars; } Funcdef +@attributes { struct symbol_t *symbols; int defined_vars; int stack_offset; } Stats +@attributes { struct symbol_t *symbols; treenode *node; int immediate; } Expr Term Plusterm Malterm +@attributes { struct symbol_t *symbols; treenode *node; } Bool Call Lexpr Field Bterm Orterm Exprs +@attributes { struct symbol_t *in_symbols; struct symbol_t *out_symbols; treenode *node; int defined_vars; int stack_offset; } Stat + +@traversal @postorder check +@traversal @preorder reg +@traversal @postorder codegen + +%% + +Input: Program + @{ + @i @Program.symbols@ = @Program.fields@; + + @codegen @revorder(1) printf("\t.text\n"); + @} + + ; + +Program: Funcdef ';' Program + @{ + @i @Program.fields@ = @Program.1.fields@; + @} + + | Structdef ';' Program + @{ + @i @Program.fields@ = table_merge(@Structdef.fields@, @Program.1.fields@, 1); + @i @Program.1.symbols@ = @Program.0.symbols@; + @} + + | + @{ @i @Program.fields@ = new_table(); @} + + ; + +Funcdef: FUNC ID '(' Pars ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, @Pars.pars@, 0); + @i @Stats.stack_offset@ = 0; + @i @Pars.all_pars@ = @Pars.num_pars@; + + @codegen @revorder(1) function_header(@ID.name@); + @} + + | FUNC ID '(' ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, new_table(), 0); + @i @Stats.stack_offset@ = 0; + + @codegen @revorder(1) function_header(@ID.name@); + @} + + ; + +Structdef: STRUCT Ids END + @{ + @i @Structdef.fields@ = @Ids.fields@; + @i @Ids.offset@ = 0; + @} + + ; + +Ids: ID Ids + @{ + @i @Ids.fields@ = table_add_symbol(@Ids.1.fields@, @ID.name@, SYMBOL_TYPE_FIELD, 1, @Ids.offset@); + @i @Ids.1.offset@ = @Ids.offset@ + 1; + @} + + | + @{ @i @Ids.fields@ = new_table(); @} + + ; + +Pars: Pars ',' ID + @{ + @i @Pars.pars@ = table_add_symbol(@Pars.1.pars@, @ID.name@, SYMBOL_TYPE_PARAM, 0, -@Pars.num_pars@); + @i @Pars.num_pars@ = @Pars.1.num_pars@ + 1; + @} + + | ID + @{ + @i @Pars.pars@ = table_add_symbol(new_table(), @ID.name@, SYMBOL_TYPE_PARAM, 0, -1); + @i @Pars.num_pars@ = 1; + @} + + ; + +Stats: Stat ';' Stats + @{ + @i @Stat.in_symbols@ = @Stats.symbols@; + @i @Stats.1.symbols@ = @Stat.out_symbols@; + @i @Stats.defined_vars@ = @Stat.defined_vars@ + @Stats.1.defined_vars@; + @i @Stats.1.stack_offset@ = @Stats.stack_offset@ + @Stat.defined_vars@ * 8; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | + @{ @i @Stats.defined_vars@ = 0; @} + + ; + +Stat: VAR ID ASSIGN Expr + @{ + @i @Stat.out_symbols@ = table_add_symbol(clone_table(@Stat.in_symbols@), @ID.name@, SYMBOL_TYPE_VAR, 0, 0); + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 1; + @} + + | Lexpr ASSIGN Expr + @{ + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Lexpr.symbols@ = @Stat.in_symbols@; + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 0; + @} + + | IF Bool THEN Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @} + + | IF Bool THEN Stats ELSE Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stats.1.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = @Stats.defined_vars@ + @Stats.1.defined_vars@; + @} + + | WHILE Bool DO Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @} + + | Call + @{ + @i @Call.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 0; + @} + + | RETURN Expr + @{ + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Return, @Expr.node@, (treenode *)NULL); + + @reg @Stat.node@->reg = get_next_reg((char *)NULL, 0); @Expr.node@->reg = @Stat.node@->reg; + @i @Stat.defined_vars@ = 0; + @} + + ; + +Lexpr: ID + @{ + @i @Lexpr.node@ = (treenode *)NULL; + @check check_variable(@Lexpr.symbols@, @ID.name@); + @} + + | Field + ; + +Expr: '-' Term + @{ + @i @Expr.node@ = new_node(OP_Negation, @Term.node@, (treenode *)NULL); + + @reg @Term.node@->reg = @Expr.node@->reg; + @} + + | Term + @{ @reg @Term.node@->reg = @Expr.node@->reg; @} + + | Term Plusterm + @{ + @i @Expr.node@ = new_node(OP_Addition, @Term.node@, @Plusterm.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Plusterm.immediate@; + + @reg if(!@Plusterm.immediate@) { @Plusterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = (@Term.node@->op==OP_ID && table_lookup(@Term.symbols@, @Term.node@->name)->type==SYMBOL_TYPE_PARAM) ? get_param_reg(-table_lookup(@Term.symbols@, @Term.node@->name)->stack_offset) : get_next_reg(@Plusterm.node@->reg, @Expr.node@->skip_reg); @Plusterm.node@->skip_reg = 1; } else { @Term.node@->reg = @Expr.node@->reg; @Plusterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + | Term Malterm + @{ + @i @Expr.node@ = new_node(OP_Multiplication, @Term.node@, @Malterm.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Malterm.immediate@; + + @reg if(!@Malterm.immediate@) { @Malterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = (@Term.node@->op==OP_ID && table_lookup(@Term.symbols@, @Term.node@->name)->type==SYMBOL_TYPE_PARAM) ? get_param_reg(-table_lookup(@Term.symbols@, @Term.node@->name)->stack_offset) : get_next_reg(@Malterm.node@->reg, @Expr.node@->skip_reg); @Malterm.node@->skip_reg = 1; } else { @Term.node@-> reg = @Expr.node@->reg; @Malterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + ; + +Plusterm: '+' Term Plusterm + @{ + @i @Plusterm.node@ = new_node(OP_Addition, @Term.node@, @Plusterm.1.node@); + @i @Plusterm.immediate@ = @Term.immediate@ && @Plusterm.1.immediate@; + + @reg @Plusterm.1.node@->reg = @Plusterm.node@->reg; @Term.node@->reg = (@Term.node@->op==OP_ID && table_lookup(@Term.symbols@, @Term.node@->name)->type==SYMBOL_TYPE_PARAM) ? get_param_reg(-table_lookup(@Term.symbols@, @Term.node@->name)->stack_offset) : get_next_reg(@Plusterm.1.node@->reg, @Plusterm.node@->skip_reg); + @} + + | '+' Term + @{ @reg @Term.node@->reg = @Plusterm.node@->reg; @} + + ; + +Malterm: '*' Term Malterm + @{ + @i @Malterm.node@ = new_node(OP_Multiplication, @Term.node@, @Malterm.1.node@); + @i @Malterm.immediate@ = @Term.immediate@ && @Malterm.1.immediate@; + + @reg @Malterm.1.node@->reg = @Malterm.node@->reg; @Term.node@->reg = (@Term.node@->op==OP_ID && table_lookup(@Term.symbols@, @Term.node@->name)->type==SYMBOL_TYPE_PARAM) ? get_param_reg(-table_lookup(@Term.symbols@, @Term.node@->name)->stack_offset) : get_next_reg(@Malterm.1.node@->reg, @Malterm.node@->skip_reg); + @} + + | '*' Term + @{ @reg @Term.node@->reg = @Malterm.node@->reg; @} + + ; + +Term: '(' Expr ')' + @{ @reg @Expr.node@->reg = @Term.node@->reg; @} + + | ID + @{ + @i @Term.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->stack_offset); + @i @Term.immediate@ = 0; + + @check check_variable(@Term.symbols@, @ID.name@); + @} + + | NUM + @{ + @i @Term.node@ = new_number_leaf(@NUM.value@); + @i @Term.immediate@ = 1; + @} + + | Call + @{ @i @Term.immediate@ = 0; @} + + | Field + @{ + @i @Term.immediate@ = 0; + + @reg @Field.node@->reg = @Term.node@->reg; + @} + + ; + +Bool: Bterm + | Bterm Orterm + @{ @i @Bool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); @} + + | NOT Bterm + @{ @i @Bool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); @} + + ; + +Orterm: OR Bterm Orterm + @{ @i @Orterm.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.1.node@); @} + + | OR Bterm + ; + +Bterm: Term GREATER Term + @{ @i @Bterm.node@ = new_node(OP_Greater, @Term.node@, @Term.1.node@); @} + + | Term '=' Term + @{ @i @Bterm.node@ = new_node(OP_Equal, @Term.node@, @Term.1.node@); @} + + | '(' Bool ')' + ; + +Field: Term '.' ID + @{ + @i @Field.node@ = new_node_value(OP_Field, @Term.node@, new_named_leaf(OP_ID, @ID.name@), table_lookup(@Field.symbols@, @ID.name@)==(struct symbol_t *)NULL ? 0 : table_lookup(@Field.symbols@, @ID.name@)->stack_offset); + + @check check_field(@Field.symbols@, @ID.name@); + + @reg @Term.node@->reg = @Field.node@->reg; @Field.node@->kids[1]->reg = get_next_reg(@Field.node@->reg, 0); + @} + + ; + +Call: ID '(' Exprs ')' + @{ @i @Call.node@ = new_node(OP_Call, new_named_leaf(OP_ID, @ID.name@), @Exprs.node@); @} + + | ID '(' ')' + @{ @i @Call.node@ = new_node(OP_Call, new_named_leaf(OP_ID, @ID.name@), NULL); @} + + ; + +Exprs: Expr + | Exprs ',' Expr + @{ @i @Exprs.node@ = new_node(OP_Exprs, @Exprs.1.node@, @Expr.node@); @} + + ; + +%% + +extern int yylex(); +extern int yylineno; + +int yyerror(char *error_text) { + fprintf(stderr,"Line %i: %s\n",yylineno, error_text); + exit(2); +} + +int main(int argc, char **argv) { + yyparse(); + return 0; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/scanner.lex.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/scanner.lex.svn-base new file mode 100644 index 0000000..5cf6520 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/scanner.lex.svn-base @@ -0,0 +1,67 @@ + #include + #include + #include + #include "parser.h" + #include "tree.h" + +KEYWORD func|end|struct|var|if|then|else|while|do|return|or|not +IDENTIFIER [[:alpha:]_][[:alnum:]_]* +NUMBER_HEX [0-9][0-9A-Fa-f]*H +NUMBER_DEC [0-9]+ +WHITESPACE [\t\n\r ] +COMMENT_START \(\* +COMMENT_END \*\) + +%x COMMENT +%option yylineno +%% + +{COMMENT_START} BEGIN(COMMENT); + +{COMMENT_END} BEGIN(INITIAL); + +{COMMENT_START} fprintf(stderr, "Possibly nested comment on line %i\n", yylineno); + +<> { fprintf(stderr, "Unterminated comment.\n"); exit(1); } + +{WHITESPACE} /* ignore */ + +. /* ignore everything inside comment */ + +func return(FUNC); +end return(END); +struct return(STRUCT); +var return(VAR); +if return(IF); +then return(THEN); +else return(ELSE); +while return(WHILE); +do return(DO); +return return(RETURN); +or return(OR); +not return(NOT); + +{IDENTIFIER} return(ID); @{ @ID.name@=strdup(yytext); @} + +{NUMBER_DEC} return(NUM); @{ @NUM.value@=strtol(yytext,(char **)NULL,10); @} +{NUMBER_HEX} return(NUM); @{ yytext[strlen(yytext)-1]='\0'; @NUM.value@=strtol(yytext,(char **)NULL,16); @} + +\:= return(ASSIGN); +>= return(GREATER); +\; return(';'); +\. return('.'); +\( return('('); +\) return(')'); +\, return(','); +\- return('-'); +\+ return('+'); +\* return('*'); += return('='); + +{WHITESPACE} /* ignore */ + +. { fprintf(stderr, "Lexical error on line %i\n", yylineno); exit(1); } + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/symbol_table.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/symbol_table.c.svn-base new file mode 100644 index 0000000..1d4fa5e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/symbol_table.c.svn-base @@ -0,0 +1,154 @@ +#include +#include +#include +#include "symbol_table.h" + +struct symbol_t *new_table(void) { + return (struct symbol_t *)NULL; +} + +struct symbol_t *clone_table(struct symbol_t *table) { + struct symbol_t *element; + struct symbol_t *new_tablex; + + element=table; + new_tablex=new_table(); + while((struct symbol_t *)NULL!=element) { + /* check return value */ + new_tablex=table_add_symbol(new_tablex,element->identifier,element->type,0,element->stack_offset); + element=element->next; + } + + return new_tablex; +} + +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + if(check) { + fprintf(stderr,"Duplicate field %s.\n",identifier); + exit(3); + } + + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=type; + new_element->stack_offset=stack_offset; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + + element=table; + + if((struct symbol_t *)NULL==table) { + return (struct symbol_t *)NULL; + } + + if(strcmp(element->identifier,identifier)==0) { + return element; + } + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + if(strcmp(element->identifier,identifier)==0) { + return element; + } + } + + return (struct symbol_t *)NULL; +} + +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check) { + struct symbol_t *element; + struct symbol_t *new_table=clone_table(table); + + element=to_add; + while(element!=(struct symbol_t *)NULL) { + printf("%s\n",element->identifier); + new_table=table_add_symbol(new_table,element->identifier,element->type,check,element->stack_offset); + element=element->next; + } + + return new_table; +} + +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + struct symbol_t *previous_element; + struct symbol_t *new_element; + + if((struct symbol_t *)NULL==table) { + return table; + } + + previous_element=(struct symbol_t *)NULL; + element=table; + + while((struct symbol_t *)NULL!=element) { + if(strcmp(element->identifier,identifier)==0) { + if((struct symbol_t *)NULL==previous_element) { + new_element=element->next; + } + else { + previous_element->next=element->next; + new_element=table; + } + (void)free(element->identifier); + (void)free(element); + return new_element; + } + previous_element=element; + element=element->next; + } + + return table; +} + +void check_variable(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_VAR && element->type!=SYMBOL_TYPE_PARAM) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + +void check_field(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_FIELD) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/symbol_table.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/symbol_table.h.svn-base new file mode 100644 index 0000000..bf8262b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/symbol_table.h.svn-base @@ -0,0 +1,25 @@ +#ifndef SYMBOL_TABLE_H +#define SYMBOL_TABLE_H + +#define SYMBOL_TYPE_FIELD 1 +#define SYMBOL_TYPE_VAR 2 +#define SYMBOL_TYPE_PARAM 3 + +struct symbol_t { + char *identifier; + struct symbol_t *next; + short type; + int stack_offset; +}; + +struct symbol_t *clone_table(struct symbol_t *table); +struct symbol_t *new_table(void); +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset); +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier); +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier); +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check); +void check_variable(struct symbol_t *table, char *identifier); +void check_field(struct symbol_t *table, char *identifier); + +#endif /* SYMBOL_TABLE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/tree.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/tree.c.svn-base new file mode 100644 index 0000000..72c7377 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/tree.c.svn-base @@ -0,0 +1,155 @@ +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* new_node: create "standard node" with one or two children and + * given operation + */ +treenode *new_node(int op, treenode *left, treenode *right) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_node_value: create "standard node" with one or two children and + * given operation and the given value + */ +treenode *new_node_value(int op, treenode *left, treenode *right, long value) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + new->value=value; + + return new; +} + +/* new_leaf: create leaf - node with no children */ +treenode *new_leaf(int op) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_leaf: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_named_leaf: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf(int op, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + + return new; +} + +/* new_named_leaf_value: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf_value(int op, char *name, long value) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf_value: %i (%s), %s, %li\n",op,rule_names[op],name,value); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + new->value=value; + + return new; +} + +/* new_named_node: create node with one or two children and a name (can be + * used for storing a procedure's name) + */ +treenode *new_named_node(int op, treenode *left, treenode *right, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_node: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=name; + + return new; +} + +void write_indent(int indent) { + int a; + for(a=0;aop],node->name,node->reg); + if(node->kids[0]!=(treenode *)NULL || node->kids[1]!=(treenode *)NULL) { + if(node->kids[0]!=(treenode *)NULL) { + write_tree(node->kids[0], indent+1); + } + if(node->kids[1]!=(treenode *)NULL) { + write_tree(node->kids[1], indent+1); + } + } +} + +treenode *new_number_leaf(long value) { + treenode *node; + + if(value==0) { + node=new_leaf(OP_Zero); + } + else if(value==1) { + node=new_leaf(OP_One); + } + else { + node=new_leaf(OP_Number); + } + + node->value=value; + + return node; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/tree.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/tree.h.svn-base new file mode 100644 index 0000000..0b88cd6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/.svn/text-base/tree.h.svn-base @@ -0,0 +1,81 @@ +#ifndef __TREE_H_ +#define __TREE_H_ + +#ifndef CODE +typedef struct burm_state *STATEPTR_TYPE; +#endif + +enum { + OP_Not=1, + OP_Negation, + OP_Addition, + OP_Multiplication, + OP_Disjunction, + OP_Greater, + OP_Equal, + OP_ID, + OP_Number, + OP_Field, + OP_Return, + OP_Zero, + OP_One, + OP_Exprs, + OP_Call +}; + +static char rule_names[100][100]={ + "", + "OP_Not", + "OP_Negation", + "OP_Addition", + "OP_Multiplication", + "OP_Disjunction", + "OP_Greater", + "OP_Equal", + "OP_ID", + "OP_Number", + "OP_Field", + "OP_Return", + "OP_Zero", + "OP_One", + "OP_Exprs", + "OP_Call" +}; + + +/* struct for the tree build by ox for iburg */ +typedef struct treenode { + int op; + struct treenode *kids[2]; + STATEPTR_TYPE label; + char *name; + long value; + char *reg; + struct treenode *parent; + int skip_reg; +} treenode; + +typedef treenode *treenodep; + +/* macros for iburg being able to traverse the tree */ +#define NODEPTR_TYPE treenodep +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->label) +#define PANIC printf + +/* see tree.c for description about these procedures */ +treenode *new_node(int op, treenode *left, treenode *right); +treenode *new_node_value(int op, treenode *left, treenode *right, long value); +treenode *new_leaf(int op); +treenode *new_number_leaf(long value); +treenode *new_named_leaf(int op, char *name); +treenode *new_named_leaf_value(int op, char *name, long value); +treenode *new_named_node(int op, treenode *left, treenode *right, char *name); + +void write_indent(int indent); +void write_tree(treenode *node, int indent); + +#endif /* __TREE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/Makefile b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/Makefile new file mode 100644 index 0000000..ede9e40 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/Makefile @@ -0,0 +1,38 @@ +all: codea + +scanner.c: oxout.l + flex -oscanner.c oxout.l + +scanner.o: scanner.c parser.h symbol_table.h + gcc -g -c -ansi -pedantic scanner.c -D_GNU_SOURCE + +codea: scanner.o parser.o symbol_table.o code_gen.o tree.o code.o + gcc -o codea symbol_table.o scanner.o parser.o code_gen.o tree.o code.o -lfl + +tree.o: tree.c tree.h + gcc -g -c -ansi -pedantic -Wall tree.c + +code_gen.o: code_gen.c code_gen.h + gcc -g -c -ansi -pedantic -Wall code_gen.c -D_GNU_SOURCE + +symbol_table.o: symbol_table.c symbol_table.h + gcc -g -c -ansi -pedantic -Wall symbol_table.c -D_GNU_SOURCE + +parser.o: parser.c symbol_table.h code_gen.h tree.h + gcc -g -c -ansi -pedantic parser.c + +parser.c parser.h: oxout.y + yacc -d oxout.y -o parser.c + +oxout.y oxout.l: parser.y scanner.lex + ox parser.y scanner.lex + +code.o: code.c tree.h + gcc -g -ansi -c code.c + +code.c: code.bfe + bfe < code.bfe | iburg > code.c + +clean: + rm -f codea scanner.o scanner.c parser.h parser.c parser.o oxout.y oxout.l symbol_table.o code_gen.o tree.o code.c code.o testcodea* a.out + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code.bfe b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code.bfe new file mode 100755 index 0000000..d8650fe --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code.bfe @@ -0,0 +1,67 @@ +%{ +/* vim: filetype=c + */ +#define CODE + +#include +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* TODO (-a)+b */ +/* TODO func f(a,a) return a; end; shall do the same as func f(b,a) return a; end; */ +%} + +%start stat +%term OP_Not=1 OP_Negation=2 OP_Addition=3 OP_Multiplication=4 OP_Disjunction=5 OP_Greater=6 OP_Equal=7 OP_ID=8 OP_Number=9 OP_Field=10 OP_Return=11 OP_Zero=12 OP_One=13 OP_Exprs=14 OP_Call=15 + +%% + +stat: ret # 0 # + +ret: OP_Return(expr) # 1 # move(bnode->reg, "rax"); ret(); + +expr: OP_ID # 1 # if(bnode->param_index!=-1) move(get_param_reg(bnode->param_index), bnode->reg); +expr: imm # 1 # printf("\tmovq $%li, %%%s\n", bnode->value, bnode->reg); +expr: call # 0 # +expr: OP_Negation(expr) # 1 # printf("\tnegq %%%s\n", bnode->reg); +expr: OP_Addition(expr,expr) # 1 # printf("\taddq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Addition(imm,expr) # 1 # printf("\taddq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Addition(expr,imm) # 1 # if(bnode->kids[0]->op=OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\taddq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\tadd $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Multiplication(expr,expr) # 1 # printf("\timulq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Multiplication(imm,expr) # 1 # printf("\timulq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Multiplication(expr,imm) # 1 # if(bnode->kids[0]->op=OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\tadd $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Field(expr,OP_ID) # 2 # printf("\tmovq %li(%%%s), %%%s\n", 8*bnode->value, bnode->kids[0]->reg, bnode->reg); +expr: OP_Field(imm,OP_ID) # 1 # printf("\tmovq %li, %%%s\n", bnode->kids[0]->value+bnode->value*8, bnode->reg); + +call: OP_Call(OP_ID,exprs) # 0 # /* ignore at the moment */ + +exprs: expr # 0 # +exprs: OP_Exprs(exprs,expr) # 0 # + +zero: OP_Negation(zero) # 0 # +zero: OP_Zero # 0 # +zero: OP_Multiplication(zexpr,zero) # 0 # +zero: OP_Multiplication(zero,zexpr) # 0 # + +zexpr: zero # 0 # +zexpr: imm # 0 # +zexpr: OP_Negation(zexpr) # 0 # +zexpr: OP_Addition(zexpr,zexpr) # 0 # +zexpr: OP_Multiplication(zexpr,zexpr) # 0 # +zexpr: OP_Field(zexpr,OP_ID) # 0 # +zexpr: OP_ID # 0 # + +imm: zero # 0 # +imm: OP_Negation(imm) # 0 # bnode->value=-bnode->kids[0]->value; +imm: OP_Addition(imm,imm) # 0 # bnode->value=bnode->kids[0]->value+bnode->kids[1]->value; +imm: OP_Multiplication(imm,imm) # 0 # bnode->value=bnode->kids[0]->value*bnode->kids[1]->value; +imm: OP_Number # 0 # +imm: OP_Zero # 0 # +imm: OP_One # 0 # + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code_gen.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code_gen.c new file mode 100644 index 0000000..09c43a9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code_gen.c @@ -0,0 +1,43 @@ +#include +#include +#include "code_gen.h" + +void function_header(char *name) { + printf("\t.globl %s\n\t.type %s, @function\n%s:\n", name, name, name); +} + +char *get_next_reg(char *name, int skip_reg) { + char *reg_names[]={"rax", "r10", "r11", "r9", "r8", "rcx", "rdx", "rsi", "rdi"}; + int index, a; + if(name==(char *)NULL) { + index=0; + } + else { + for(a=0;a<9;a++) { + if(!strcmp(name,reg_names[a])) { + index=a+1; + break; + } + } + } + if(skip_reg) { + index++; + } + return reg_names[index]; +} + +char *get_param_reg(long number) { + char *reg_names[]={"rdi", "rsi", "rdx", "rcx", "r8", "r9"}; + return reg_names[number-1]; +} + +void ret(void) { + printf("\tret\n"); +} + +void move(char *src, char *dst) { + if(strcmp(src,dst)) { + printf("\tmovq %%%s, %%%s\n",src,dst); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code_gen.h b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code_gen.h new file mode 100644 index 0000000..7dcbc5a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/code_gen.h @@ -0,0 +1,11 @@ +#ifndef _CODE_GEN_H_ +#define _CODE_GEN_H_ + +void function_header(char *name); +char *get_next_reg(char *name, int skip_reg); +char *get_param_reg(long number); +void ret(void); +void move(char *src, char *dest); + +#endif /* _CODE_GEN_H_ */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/parser.y b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/parser.y new file mode 100644 index 0000000..39434b7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/parser.y @@ -0,0 +1,345 @@ +%{ + #include + #include + #include + #include "symbol_table.h" + #include "code_gen.h" + #include "tree.h" +%} + +%start Input +%token FUNC END STRUCT VAR IF THEN ELSE WHILE DO RETURN OR NOT +%token ID NUM ASSIGN GREATER + +@autoinh symbols stack_offset all_pars +@autosyn node defined_vars immediate + +@attributes { char *name; } ID +@attributes { long value; } NUM +@attributes { struct symbol_t *fields; struct symbol_t *symbols; } Program +@attributes { struct symbol_t *fields; } Structdef +@attributes { struct symbol_t *fields; int offset; } Ids +@attributes { struct symbol_t *pars; int num_pars; int all_pars; } Pars +@attributes { struct symbol_t *symbols; int defined_vars; } Funcdef +@attributes { struct symbol_t *symbols; int defined_vars; int stack_offset; } Stats +@attributes { struct symbol_t *symbols; treenode *node; int immediate; } Expr Term Plusterm Malterm +@attributes { struct symbol_t *symbols; treenode *node; } Bool Call Lexpr Field Bterm Orterm Exprs +@attributes { struct symbol_t *in_symbols; struct symbol_t *out_symbols; treenode *node; int defined_vars; int stack_offset; } Stat + +@traversal @postorder check +@traversal @preorder reg +@traversal @postorder codegen + +%% + +Input: Program + @{ + @i @Program.symbols@ = @Program.fields@; + + @codegen @revorder(1) printf("\t.text\n"); + @} + + ; + +Program: Funcdef ';' Program + @{ + @i @Program.fields@ = @Program.1.fields@; + @} + + | Structdef ';' Program + @{ + @i @Program.fields@ = table_merge(@Structdef.fields@, @Program.1.fields@, 1); + @i @Program.1.symbols@ = @Program.0.symbols@; + @} + + | + @{ @i @Program.fields@ = new_table(); @} + + ; + +Funcdef: FUNC ID '(' Pars ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, @Pars.pars@, 0); + @i @Stats.stack_offset@ = 0; + @i @Pars.all_pars@ = @Pars.num_pars@; + + @codegen @revorder(1) function_header(@ID.name@); + @} + + | FUNC ID '(' ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, new_table(), 0); + @i @Stats.stack_offset@ = 0; + + @codegen @revorder(1) function_header(@ID.name@); + @} + + ; + +Structdef: STRUCT Ids END + @{ + @i @Structdef.fields@ = @Ids.fields@; + @i @Ids.offset@ = 0; + @} + + ; + +Ids: ID Ids + @{ + @i @Ids.fields@ = table_add_symbol(@Ids.1.fields@, @ID.name@, SYMBOL_TYPE_FIELD, 1, @Ids.offset@); + @i @Ids.1.offset@ = @Ids.offset@ + 1; + @} + + | + @{ @i @Ids.fields@ = new_table(); @} + + ; + +Pars: Pars ',' ID + @{ + @i @Pars.pars@ = table_add_param(@Pars.1.pars@, @ID.name@, @Pars.num_pars@); + @i @Pars.num_pars@ = @Pars.1.num_pars@ + 1; + @} + + | ID + @{ + @i @Pars.pars@ = table_add_param(new_table(), @ID.name@, 1); + @i @Pars.num_pars@ = 1; + @} + + ; + +Stats: Stat ';' Stats + @{ + @i @Stat.in_symbols@ = @Stats.symbols@; + @i @Stats.1.symbols@ = @Stat.out_symbols@; + @i @Stats.defined_vars@ = @Stat.defined_vars@ + @Stats.1.defined_vars@; + @i @Stats.1.stack_offset@ = @Stats.stack_offset@ + @Stat.defined_vars@ * 8; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | + @{ @i @Stats.defined_vars@ = 0; @} + + ; + +Stat: VAR ID ASSIGN Expr + @{ + @i @Stat.out_symbols@ = table_add_symbol(clone_table(@Stat.in_symbols@), @ID.name@, SYMBOL_TYPE_VAR, 0, 0); + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 1; + @} + + | Lexpr ASSIGN Expr + @{ + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Lexpr.symbols@ = @Stat.in_symbols@; + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 0; + @} + + | IF Bool THEN Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @} + + | IF Bool THEN Stats ELSE Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stats.1.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = @Stats.defined_vars@ + @Stats.1.defined_vars@; + @} + + | WHILE Bool DO Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @} + + | Call + @{ + @i @Call.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 0; + @} + + | RETURN Expr + @{ + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Return, @Expr.node@, (treenode *)NULL); + + @reg @Stat.node@->reg = get_next_reg((char *)NULL, 0); @Expr.node@->reg = @Stat.node@->reg; + @i @Stat.defined_vars@ = 0; + @} + + ; + +Lexpr: ID + @{ + @i @Lexpr.node@ = (treenode *)NULL; + @check check_variable(@Lexpr.symbols@, @ID.name@); + @} + + | Field + ; + +Expr: '-' Term + @{ + @i @Expr.node@ = new_node(OP_Negation, @Term.node@, (treenode *)NULL); + + @reg @Term.node@->reg = @Expr.node@->reg; + @} + + | Term + @{ @reg @Term.node@->reg = @Expr.node@->reg; @} + + | Term Plusterm + @{ + @i @Expr.node@ = new_node(OP_Addition, @Plusterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Plusterm.immediate@; + + @reg if(!@Plusterm.immediate@) { @Plusterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.node@->reg, @Expr.node@->skip_reg); @Plusterm.node@->skip_reg = 1; } else { @Term.node@->reg = @Expr.node@->reg; @Plusterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + | Term Malterm + @{ + @i @Expr.node@ = new_node(OP_Multiplication, @Malterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Malterm.immediate@; + + @reg if(!@Malterm.immediate@) { @Malterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.node@->reg, @Expr.node@->skip_reg); @Malterm.node@->skip_reg = 1; } else { @Term.node@-> reg = @Expr.node@->reg; @Malterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + ; + +Plusterm: '+' Term Plusterm + @{ + @i @Plusterm.node@ = new_node(OP_Addition, @Plusterm.1.node@, @Term.node@); + @i @Plusterm.immediate@ = @Term.immediate@ && @Plusterm.1.immediate@; + + @reg @Plusterm.1.node@->reg = @Plusterm.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.1.node@->reg, @Plusterm.node@->skip_reg); + @} + + | '+' Term + @{ @reg @Term.node@->reg = @Plusterm.node@->reg; @} + + ; + +Malterm: '*' Term Malterm + @{ + @i @Malterm.node@ = new_node(OP_Multiplication, @Malterm.1.node@, @Term.node@); + @i @Malterm.immediate@ = @Term.immediate@ && @Malterm.1.immediate@; + + @reg @Malterm.1.node@->reg = @Malterm.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.1.node@->reg, @Malterm.node@->skip_reg); + @} + + | '*' Term + @{ @reg @Term.node@->reg = @Malterm.node@->reg; @} + + ; + +Term: '(' Expr ')' + @{ @reg @Expr.node@->reg = @Term.node@->reg; @} + + | ID + @{ + @i @Term.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->stack_offset, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->param_index); + @i @Term.immediate@ = 0; + + @check check_variable(@Term.symbols@, @ID.name@); + @} + + | NUM + @{ + @i @Term.node@ = new_number_leaf(@NUM.value@); + @i @Term.immediate@ = 1; + @} + + | Call + @{ @i @Term.immediate@ = 0; @} + + | Field + @{ + @i @Term.immediate@ = 0; + + @reg @Field.node@->reg = @Term.node@->reg; + @} + + ; + +Bool: Bterm + | Bterm Orterm + @{ @i @Bool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); @} + + | NOT Bterm + @{ @i @Bool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); @} + + ; + +Orterm: OR Bterm Orterm + @{ @i @Orterm.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.1.node@); @} + + | OR Bterm + ; + +Bterm: Term GREATER Term + @{ @i @Bterm.node@ = new_node(OP_Greater, @Term.node@, @Term.1.node@); @} + + | Term '=' Term + @{ @i @Bterm.node@ = new_node(OP_Equal, @Term.node@, @Term.1.node@); @} + + | '(' Bool ')' + ; + +Field: Term '.' ID + @{ + @i @Field.node@ = new_node_value(OP_Field, @Term.node@, new_named_leaf(OP_ID, @ID.name@), table_lookup(@Field.symbols@, @ID.name@)==(struct symbol_t *)NULL ? 0 : table_lookup(@Field.symbols@, @ID.name@)->stack_offset, -1); + + @check check_field(@Field.symbols@, @ID.name@); + + @reg @Term.node@->reg = @Field.node@->reg; @Field.node@->kids[1]->reg = get_next_reg(@Field.node@->reg, 0); + @} + + ; + +Call: ID '(' Exprs ')' + @{ @i @Call.node@ = new_node(OP_Call, new_named_leaf(OP_ID, @ID.name@), @Exprs.node@); @} + + | ID '(' ')' + @{ @i @Call.node@ = new_node(OP_Call, new_named_leaf(OP_ID, @ID.name@), NULL); @} + + ; + +Exprs: Expr + | Exprs ',' Expr + @{ @i @Exprs.node@ = new_node(OP_Exprs, @Exprs.1.node@, @Expr.node@); @} + + ; + +%% + +extern int yylex(); +extern int yylineno; + +int yyerror(char *error_text) { + fprintf(stderr,"Line %i: %s\n",yylineno, error_text); + exit(2); +} + +int main(int argc, char **argv) { + yyparse(); + return 0; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/scanner.lex b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/scanner.lex new file mode 100644 index 0000000..5cf6520 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/scanner.lex @@ -0,0 +1,67 @@ + #include + #include + #include + #include "parser.h" + #include "tree.h" + +KEYWORD func|end|struct|var|if|then|else|while|do|return|or|not +IDENTIFIER [[:alpha:]_][[:alnum:]_]* +NUMBER_HEX [0-9][0-9A-Fa-f]*H +NUMBER_DEC [0-9]+ +WHITESPACE [\t\n\r ] +COMMENT_START \(\* +COMMENT_END \*\) + +%x COMMENT +%option yylineno +%% + +{COMMENT_START} BEGIN(COMMENT); + +{COMMENT_END} BEGIN(INITIAL); + +{COMMENT_START} fprintf(stderr, "Possibly nested comment on line %i\n", yylineno); + +<> { fprintf(stderr, "Unterminated comment.\n"); exit(1); } + +{WHITESPACE} /* ignore */ + +. /* ignore everything inside comment */ + +func return(FUNC); +end return(END); +struct return(STRUCT); +var return(VAR); +if return(IF); +then return(THEN); +else return(ELSE); +while return(WHILE); +do return(DO); +return return(RETURN); +or return(OR); +not return(NOT); + +{IDENTIFIER} return(ID); @{ @ID.name@=strdup(yytext); @} + +{NUMBER_DEC} return(NUM); @{ @NUM.value@=strtol(yytext,(char **)NULL,10); @} +{NUMBER_HEX} return(NUM); @{ yytext[strlen(yytext)-1]='\0'; @NUM.value@=strtol(yytext,(char **)NULL,16); @} + +\:= return(ASSIGN); +>= return(GREATER); +\; return(';'); +\. return('.'); +\( return('('); +\) return(')'); +\, return(','); +\- return('-'); +\+ return('+'); +\* return('*'); += return('='); + +{WHITESPACE} /* ignore */ + +. { fprintf(stderr, "Lexical error on line %i\n", yylineno); exit(1); } + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/symbol_table.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/symbol_table.c new file mode 100755 index 0000000..f01b62a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/symbol_table.c @@ -0,0 +1,187 @@ +#include +#include +#include +#include "symbol_table.h" + +struct symbol_t *new_table(void) { + return (struct symbol_t *)NULL; +} + +struct symbol_t *clone_table(struct symbol_t *table) { + struct symbol_t *element; + struct symbol_t *new_tablex; + + element=table; + new_tablex=new_table(); + while((struct symbol_t *)NULL!=element) { + /* check return value */ + new_tablex=table_add_symbol(new_tablex,element->identifier,element->type,0,element->stack_offset); + element=element->next; + } + + return new_tablex; +} + +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + if(check) { + fprintf(stderr,"Duplicate field %s.\n",identifier); + exit(3); + } + + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=type; + new_element->stack_offset=stack_offset; + new_element->param_index=-1; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=SYMBOL_TYPE_PARAM; + new_element->param_index=param_index; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + + element=table; + + if((struct symbol_t *)NULL==table) { + return (struct symbol_t *)NULL; + } + + if(strcmp(element->identifier,identifier)==0) { + return element; + } + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + if(strcmp(element->identifier,identifier)==0) { + return element; + } + } + + return (struct symbol_t *)NULL; +} + +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check) { + struct symbol_t *element; + struct symbol_t *new_table=clone_table(table); + + element=to_add; + while(element!=(struct symbol_t *)NULL) { + if(element->param_index!=-1) { + new_table=table_add_param(new_table,element->identifier,element->param_index); + } + else { + new_table=table_add_symbol(new_table,element->identifier,element->type,check,element->stack_offset); + } + element=element->next; + } + + return new_table; +} + +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + struct symbol_t *previous_element; + struct symbol_t *new_element; + + if((struct symbol_t *)NULL==table) { + return table; + } + + previous_element=(struct symbol_t *)NULL; + element=table; + + while((struct symbol_t *)NULL!=element) { + if(strcmp(element->identifier,identifier)==0) { + if((struct symbol_t *)NULL==previous_element) { + new_element=element->next; + } + else { + previous_element->next=element->next; + new_element=table; + } + (void)free(element->identifier); + (void)free(element); + return new_element; + } + previous_element=element; + element=element->next; + } + + return table; +} + +void check_variable(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_VAR && element->type!=SYMBOL_TYPE_PARAM) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + +void check_field(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_FIELD) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/symbol_table.h b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/symbol_table.h new file mode 100755 index 0000000..f8f3687 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/symbol_table.h @@ -0,0 +1,27 @@ +#ifndef SYMBOL_TABLE_H +#define SYMBOL_TABLE_H + +#define SYMBOL_TYPE_FIELD 1 +#define SYMBOL_TYPE_VAR 2 +#define SYMBOL_TYPE_PARAM 3 + +struct symbol_t { + char *identifier; + struct symbol_t *next; + short type; + int stack_offset; + int param_index; /* -1 if not a parameter */ +}; + +struct symbol_t *clone_table(struct symbol_t *table); +struct symbol_t *new_table(void); +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset); +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index); +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier); +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier); +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check); +void check_variable(struct symbol_t *table, char *identifier); +void check_field(struct symbol_t *table, char *identifier); + +#endif /* SYMBOL_TABLE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/tree.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/tree.c new file mode 100755 index 0000000..c3e0a44 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/tree.c @@ -0,0 +1,157 @@ +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* new_node: create "standard node" with one or two children and + * given operation + */ +treenode *new_node(int op, treenode *left, treenode *right) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_node_value: create "standard node" with one or two children and + * given operation and the given value + */ +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_leaf: create leaf - node with no children */ +treenode *new_leaf(int op) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_leaf: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_named_leaf: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf(int op, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + + return new; +} + +/* new_named_leaf_value: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf_value(int op, char *name, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf_value: %i (%s), %s, %li\n",op,rule_names[op],name,value); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_named_node: create node with one or two children and a name (can be + * used for storing a procedure's name) + */ +treenode *new_named_node(int op, treenode *left, treenode *right, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_node: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=name; + + return new; +} + +void write_indent(int indent) { + int a; + for(a=0;aop],node->name,node->reg); + if(node->kids[0]!=(treenode *)NULL || node->kids[1]!=(treenode *)NULL) { + if(node->kids[0]!=(treenode *)NULL) { + write_tree(node->kids[0], indent+1); + } + if(node->kids[1]!=(treenode *)NULL) { + write_tree(node->kids[1], indent+1); + } + } +} + +treenode *new_number_leaf(long value) { + treenode *node; + + if(value==0) { + node=new_leaf(OP_Zero); + } + else if(value==1) { + node=new_leaf(OP_One); + } + else { + node=new_leaf(OP_Number); + } + + node->value=value; + + return node; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/tree.h b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/tree.h new file mode 100755 index 0000000..ae27791 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codea/tree.h @@ -0,0 +1,82 @@ +#ifndef __TREE_H_ +#define __TREE_H_ + +#ifndef CODE +typedef struct burm_state *STATEPTR_TYPE; +#endif + +enum { + OP_Not=1, + OP_Negation, + OP_Addition, + OP_Multiplication, + OP_Disjunction, + OP_Greater, + OP_Equal, + OP_ID, + OP_Number, + OP_Field, + OP_Return, + OP_Zero, + OP_One, + OP_Exprs, + OP_Call +}; + +static char rule_names[100][100]={ + "", + "OP_Not", + "OP_Negation", + "OP_Addition", + "OP_Multiplication", + "OP_Disjunction", + "OP_Greater", + "OP_Equal", + "OP_ID", + "OP_Number", + "OP_Field", + "OP_Return", + "OP_Zero", + "OP_One", + "OP_Exprs", + "OP_Call" +}; + + +/* struct for the tree build by ox for iburg */ +typedef struct treenode { + int op; + struct treenode *kids[2]; + STATEPTR_TYPE label; + char *name; + long value; + char *reg; + struct treenode *parent; + int skip_reg; + int param_index; /* -1 if not a parameter */ +} treenode; + +typedef treenode *treenodep; + +/* macros for iburg being able to traverse the tree */ +#define NODEPTR_TYPE treenodep +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->label) +#define PANIC printf + +/* see tree.c for description about these procedures */ +treenode *new_node(int op, treenode *left, treenode *right); +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param); +treenode *new_leaf(int op); +treenode *new_number_leaf(long value); +treenode *new_named_leaf(int op, char *name); +treenode *new_named_leaf_value(int op, char *name, long value, int param); +treenode *new_named_node(int op, treenode *left, treenode *right, char *name); + +void write_indent(int indent); +void write_tree(treenode *node, int indent); + +#endif /* __TREE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/all-wcprops b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/all-wcprops new file mode 100644 index 0000000..f3d713d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/all-wcprops @@ -0,0 +1,77 @@ +K 25 +svn:wc:ra_dav:version-url +V 38 +/svn/private/!svn/ver/773/ublu08/codeb +END +scanner.lex +K 25 +svn:wc:ra_dav:version-url +V 50 +/svn/private/!svn/ver/740/ublu08/codeb/scanner.lex +END +tree.c +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/private/!svn/ver/1017/ublu08/codeb/tree.c +END +test.c +K 25 +svn:wc:ra_dav:version-url +V 45 +/svn/private/!svn/ver/776/ublu08/codeb/test.c +END +symbol_table.h +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1017/ublu08/codeb/symbol_table.h +END +parser.y +K 25 +svn:wc:ra_dav:version-url +V 48 +/svn/private/!svn/ver/1037/ublu08/codeb/parser.y +END +code_gen.c +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/private/!svn/ver/760/ublu08/codeb/code_gen.c +END +code.bfe +K 25 +svn:wc:ra_dav:version-url +V 48 +/svn/private/!svn/ver/1038/ublu08/codeb/code.bfe +END +tree.h +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/private/!svn/ver/1017/ublu08/codeb/tree.h +END +code_gen.h +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/private/!svn/ver/745/ublu08/codeb/code_gen.h +END +Makefile +K 25 +svn:wc:ra_dav:version-url +V 48 +/svn/private/!svn/ver/1036/ublu08/codeb/Makefile +END +symbol_table.c +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1204/ublu08/codeb/symbol_table.c +END +test.input +K 25 +svn:wc:ra_dav:version-url +V 50 +/svn/private/!svn/ver/1020/ublu08/codeb/test.input +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/entries b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/entries new file mode 100644 index 0000000..0a808b6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/entries @@ -0,0 +1,180 @@ +8 + +dir +775 +http://localhost/svn/private/ublu08/codeb +http://localhost/svn/private + + + +2008-04-12T18:47:21.735502Z +773 +paulchen + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +95840bc9-f7e0-4b9f-abbd-54bb5795df2f + +scanner.lex +file + + + + +2008-04-08T18:12:14.000000Z +e5193bdf0f2e3175afb5173efc7ac4ec +2008-04-08T18:13:33.517549Z +740 +paulchen + +tree.c +file +1017 + + + +2008-05-06T18:51:59.000000Z +ef665922d0ae02b671453df7d0864e46 +2008-05-06T18:52:20.555246Z +1017 +paulchen +has-props + +test.c +file +776 + + + +2008-04-12T18:49:19.000000Z +24ff3cc83bcd13c895a36d347aae7252 +2008-04-12T18:49:39.017368Z +776 +paulchen + +symbol_table.h +file +1017 + + + +2008-05-06T17:59:32.000000Z +a09966463523b8d5b80a106a9f546831 +2008-05-06T18:52:20.555246Z +1017 +paulchen +has-props + +parser.y +file +1037 + + + +2008-05-19T16:40:46.000000Z +261f2044f46f41ff3c1c555fc21e1561 +2008-05-19T16:40:54.760875Z +1037 +paulchen + +code_gen.c +file + + + + +2008-04-09T16:55:33.000000Z +02b446ff28eadf7dee853ce68d56fee7 +2008-04-09T16:56:51.768913Z +760 +paulchen + +code.bfe +file +1038 + + + +2008-05-19T16:44:18.000000Z +c398e965c269b611388ba5106c722758 +2008-05-19T16:44:57.437042Z +1038 +paulchen +has-props + +tree.h +file +1017 + + + +2008-05-06T18:01:20.000000Z +6a087c7aefd6d16fe331b6abf17902b4 +2008-05-06T18:52:20.555246Z +1017 +paulchen +has-props + +code_gen.h +file + + + + +2008-04-08T22:21:58.000000Z +60e8a0f6632888fd3b0a133e09aa0bee +2008-04-08T22:39:36.223435Z +745 +paulchen + +Makefile +file +1036 + + + +2008-05-19T16:38:53.000000Z +601045b0c568d7b118408a4e68485b40 +2008-05-19T16:38:57.457263Z +1036 +paulchen + +symbol_table.c +file +1204 + + + +2008-05-29T18:44:00.000000Z +b453aa450374c10280eb6fa5888bff27 +2008-05-29T18:44:23.013986Z +1204 +paulchen +has-props + +test.input +file +1020 + + + +2008-05-17T15:43:05.000000Z +eab35c6ab3b6126ed4d3707e4222ee9e +2008-05-17T18:20:12.118561Z +1020 +paulchen + +testcases +dir + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/format b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/format new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/format @@ -0,0 +1 @@ +8 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/code.bfe.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/code.bfe.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/code.bfe.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/symbol_table.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/symbol_table.c.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/symbol_table.c.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/symbol_table.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/symbol_table.h.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/symbol_table.h.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/tree.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/tree.c.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/tree.c.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/tree.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/tree.h.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/prop-base/tree.h.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/Makefile.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..b3d6bd4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/Makefile.svn-base @@ -0,0 +1,38 @@ +all: codeb + +scanner.c: oxout.l + flex -oscanner.c oxout.l + +scanner.o: scanner.c parser.h symbol_table.h + gcc -g -c -ansi -pedantic scanner.c -D_GNU_SOURCE + +codeb: scanner.o parser.o symbol_table.o code_gen.o tree.o code.o + gcc -o codeb symbol_table.o scanner.o parser.o code_gen.o tree.o code.o -lfl + +tree.o: tree.c tree.h + gcc -g -c -ansi -pedantic -Wall tree.c + +code_gen.o: code_gen.c code_gen.h + gcc -g -c -ansi -pedantic -Wall code_gen.c -D_GNU_SOURCE + +symbol_table.o: symbol_table.c symbol_table.h + gcc -g -c -ansi -pedantic -Wall symbol_table.c -D_GNU_SOURCE + +parser.o: parser.c symbol_table.h code_gen.h tree.h + gcc -g -c -ansi -pedantic parser.c + +parser.c parser.h: oxout.y + yacc -d oxout.y -o parser.c + +oxout.y oxout.l: parser.y scanner.lex + ox parser.y scanner.lex + +code.o: code.c tree.h + gcc -g -ansi -c code.c + +code.c: code.bfe + bfe < code.bfe | iburg > code.c + +clean: + rm -f codeb scanner.o scanner.c parser.h parser.c parser.o oxout.y oxout.l symbol_table.o code_gen.o tree.o code.c code.o testcodeb* a.out + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code.bfe.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code.bfe.svn-base new file mode 100644 index 0000000..9f19cd1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code.bfe.svn-base @@ -0,0 +1,91 @@ +%{ +/* vim: filetype=c + */ +#define CODE + +#include +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* TODO (-a)+b */ +/* TODO imul -> imulq, add -> addq */ +/* TODO bugs - hopefully fixed: + * func f(a,b,c,d) return ((a+1)+(b+1))+((c+1)+(d+1)); end; + * func f(a,b,c,d) var b:=a; var c:=b; var d:=c; return a+b+c+d; end; + * mul, add etc. with direct memory access + */ +/* TODO immediate values in assignments */ +/* TODO assignment with immediate value/variable on RHS */ +/* TODO immediate values in boolean expressions */ +/* TODO optimize boolean expressions */ +/* FIXME if_then label not inserted */ +%} + +%start stat +%term OP_Not=1 OP_Negation=2 OP_Addition=3 OP_Multiplication=4 OP_Disjunction=5 OP_Greater=6 OP_Equal=7 OP_ID=8 OP_Number=9 OP_Field=10 OP_Return=11 OP_Zero=12 OP_One=13 OP_Exprs=14 OP_Call=15 OP_Assign=16 OP_If=17 OP_Stats=18 OP_Empty=19 OP_Ifstats=20 OP_While=21 + +%% + +stat: ret # 0 # +stat: assign # 0 # +stat: bexpr # 0 # +stat: expr # 0 # + +assign: OP_Assign(OP_ID, expr) # 1 # if(bnode->kids[0]->param_index!=-1) { printf("\tmovq %%%s, %%%s\n", bnode->reg, get_param_reg(bnode->kids[0]->param_index)); } else { printf("\tmovq %%%s, %i(%%rsp)\n", bnode->reg, bnode->kids[0]->value); } +assign: OP_Assign(OP_Field(expr,OP_ID), expr) # 1 # printf("\tmovq %%%s, %li(%%%s)\n", bnode->kids[1]->reg, 8*bnode->kids[0]->value, bnode->kids[0]->reg); + +ret: OP_Return(expr) # 1 # move(bnode->reg, "rax"); ret(); + +expr: OP_ID # 1 # if(bnode->param_index!=-1) { move(get_param_reg(bnode->param_index), bnode->reg); } else { printf("\tmovq %i(%%rsp), %%%s\n", bnode->value, bnode->reg); } +expr: imm # 1 # printf("\tmovq $%li, %%%s\n", bnode->value, bnode->reg); +expr: call # 0 # +expr: OP_Negation(expr) # 1 # printf("\tnegq %%%s\n", bnode->reg); +expr: OP_Addition(expr,expr) # 1 # printf("\taddq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Addition(imm,expr) # 1 # printf("\taddq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Addition(expr,imm) # 1 # if(bnode->kids[0]->op==OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\taddq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\taddq $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Multiplication(expr,expr) # 1 # printf("\timulq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Multiplication(imm,expr) # 1 # printf("\timulq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Multiplication(expr,imm) # 1 # if(bnode->kids[0]->op==OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Field(expr,OP_ID) # 2 # printf("\tmovq %li(%%%s), %%%s\n", 8*bnode->value, bnode->kids[0]->reg, bnode->reg); +expr: OP_Field(imm,OP_ID) # 1 # printf("\tmovq %li, %%%s\n", bnode->kids[0]->value+bnode->value*8, bnode->reg); +expr: OP_Addition(expr, OP_Negation(expr)) # 1 # printf("\tsubq %%%s, %%%s\n", bnode->kids[0]->reg, bnode->kids[1]->kids[0]->reg); +expr: OP_Addition(OP_Negation(expr), OP_Negation(expr)) # 1 # printf("\taddq %%%s, %%%s\n\tnegq %%%s\n", bnode->kids[0]->kids[0]->reg, bnode->kids[1]->kids[0]->reg, bnode->kids[1]->kids[0]->reg); +expr: OP_Multiplication(OP_Negation(expr), OP_Negation(expr)) # 1 # printf("\timulq %%%s, %%%s\n", bnode->kids[0]->reg, bnode->kids[1]->reg); + +call: OP_Call(OP_ID,exprs) # 0 # /* ignore at the moment */ + +exprs: expr # 0 # +exprs: OP_Exprs(exprs,expr) # 0 # + +zero: OP_Negation(zero) # 0 # +zero: OP_Zero # 0 # +zero: OP_Multiplication(zexpr,zero) # 0 # +zero: OP_Multiplication(zero,zexpr) # 0 # + +zexpr: zero # 0 # +zexpr: imm # 0 # +zexpr: OP_Negation(zexpr) # 0 # +zexpr: OP_Addition(zexpr,zexpr) # 0 # +zexpr: OP_Multiplication(zexpr,zexpr) # 0 # +zexpr: OP_Field(zexpr,OP_ID) # 0 # +zexpr: OP_ID # 0 # + +imm: zero # 0 # +imm: OP_Negation(imm) # 0 # bnode->value=-bnode->kids[0]->value; +imm: OP_Addition(imm,imm) # 0 # bnode->value=bnode->kids[0]->value+bnode->kids[1]->value; +imm: OP_Multiplication(imm,imm) # 0 # bnode->value=bnode->kids[0]->value*bnode->kids[1]->value; +imm: OP_Number # 0 # +imm: OP_Zero # 0 # +imm: OP_One # 0 # + +bexpr: OP_Disjunction(bexpr,bexpr) # 0 # +bexpr: OP_Not(bexpr) # 0 # +bexpr: OP_Greater(expr,expr) # 0 # +bexpr: OP_Equal(expr,expr) # 0 # + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code_gen.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code_gen.c.svn-base new file mode 100644 index 0000000..c6e18fe --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code_gen.c.svn-base @@ -0,0 +1,52 @@ +#include +#include +#include "code_gen.h" + +int variables; + +void function_header(char *name, int vars) { + variables = vars; + printf("\t.globl %s\n\t.type %s, @function\n%s:\n", name, name, name); + if(vars>0) { + printf("\tpushq %%rbp\n\tmovq %%rsp, %%rbp\n\tsubq $%i, %%rsp\n", 8*vars); + } +} + +char *get_next_reg(char *name, int skip_reg) { + char *reg_names[]={"rax", "r10", "r11", "r9", "r8", "rcx", "rdx", "rsi", "rdi"}; + int index, a; + if(name==(char *)NULL) { + index=0; + } + else { + for(a=0;a<9;a++) { + if(!strcmp(name,reg_names[a])) { + index=a+1; + break; + } + } + } + if(skip_reg) { + index++; + } + return reg_names[index]; +} + +char *get_param_reg(long number) { + char *reg_names[]={"rdi", "rsi", "rdx", "rcx", "r8", "r9"}; + return reg_names[number-1]; +} + +void ret(void) { + if(variables>0) { + printf("\tleave\n"); + } + printf("\tret\n"); +} + +void move(char *src, char *dst) { + if(strcmp(src,dst)) { + printf("\tmovq %%%s, %%%s\n",src,dst); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code_gen.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code_gen.h.svn-base new file mode 100644 index 0000000..8f85f3b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/code_gen.h.svn-base @@ -0,0 +1,11 @@ +#ifndef _CODE_GEN_H_ +#define _CODE_GEN_H_ + +void function_header(char *name, int vars); +char *get_next_reg(char *name, int skip_reg); +char *get_param_reg(long number); +void ret(void); +void move(char *src, char *dest); + +#endif /* _CODE_GEN_H_ */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/parser.y.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/parser.y.svn-base new file mode 100644 index 0000000..7cc2661 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/parser.y.svn-base @@ -0,0 +1,541 @@ +%{ + #include + #include + #include + #include "symbol_table.h" + #include "code_gen.h" + #include "tree.h" + + #define imm_prefix "$" + +/* TODO failed test case: func f(a) if not (a=0 or a=1) then return 0; end; end; */ +%} + +%start Input +%token FUNC END STRUCT VAR IF THEN ELSE WHILE DO RETURN OR NOT +%token ID NUM ASSIGN GREATER + +@autoinh symbols stack_offset all_pars if_in jump_true jump_false +@autosyn node defined_vars immediate if_out + +@attributes { char *name; } ID +@attributes { long value; } NUM +@attributes { struct symbol_t *fields; struct symbol_t *symbols; int if_in; } Program +@attributes { struct symbol_t *fields; } Structdef +@attributes { struct symbol_t *fields; int offset; } Ids +@attributes { struct symbol_t *pars; int num_pars; int all_pars; } Pars +@attributes { struct symbol_t *symbols; int defined_vars; int if_in; int if_out; } Funcdef +@attributes { struct symbol_t *symbols; int defined_vars; int stack_offset; treenode *node; int if_in; int if_out; } Stats +@attributes { struct symbol_t *symbols; treenode *node; int immediate; } Expr Term Plusterm Malterm +@attributes { struct symbol_t *symbols; treenode *node; } Call Lexpr Field Exprs +@attributes { struct symbol_t *symbols; treenode *node; char *jump_true; char *jump_false; int negated; int if_in; int if_out; int negated2; int top_level; } Bool Orterm Subbool Bterm +@attributes { struct symbol_t *in_symbols; struct symbol_t *out_symbols; treenode *node; int defined_vars; int stack_offset; int if_in; int if_out; } Stat +@attributes { struct symbol_t *symbols; treenode *node; int defined_vars; int stack_offset; int if_in; int if_out; int if_nr; } Blubb + +@traversal @postorder check +@traversal @preorder reg +@traversal @preorder codegen + +%% + +Input: Program + @{ + @i @Program.symbols@ = @Program.fields@; + @i @Program.if_in@ = 0; + + @codegen printf("\t.text\n"); + @} + + ; + +Program: Funcdef ';' Program + @{ + @i @Program.fields@ = @Program.1.fields@; + @i @Program.1.if_in@ = @Funcdef.if_out@; + @} + + | Structdef ';' Program + @{ + @i @Program.fields@ = table_merge(@Structdef.fields@, @Program.1.fields@, 1); + @i @Program.1.symbols@ = @Program.0.symbols@; + @} + + | + @{ @i @Program.fields@ = new_table(); @} + + ; + +Funcdef: FUNC ID '(' Pars ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, @Pars.pars@, 0); + @i @Stats.stack_offset@ = 0; + @i @Pars.all_pars@ = @Pars.num_pars@; + + @codegen function_header(@ID.name@, @Funcdef.defined_vars@); + @} + + | FUNC ID '(' ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, new_table(), 0); + @i @Stats.stack_offset@ = 0; + + @codegen function_header(@ID.name@, @Funcdef.defined_vars@); + @} + + ; + +Structdef: STRUCT Ids END + @{ + @i @Structdef.fields@ = @Ids.fields@; + @i @Ids.offset@ = 0; + @} + + ; + +Ids: ID Ids + @{ + @i @Ids.fields@ = table_add_symbol(@Ids.1.fields@, @ID.name@, SYMBOL_TYPE_FIELD, 1, @Ids.offset@); + @i @Ids.1.offset@ = @Ids.offset@ + 1; + @} + + | + @{ @i @Ids.fields@ = new_table(); @} + + ; + +Pars: Pars ',' ID + @{ + @i @Pars.pars@ = table_add_param(@Pars.1.pars@, @ID.name@, @Pars.num_pars@); + @i @Pars.num_pars@ = @Pars.1.num_pars@ + 1; + @} + + | ID + @{ + @i @Pars.pars@ = table_add_param(new_table(), @ID.name@, 1); + @i @Pars.num_pars@ = 1; + @} + + ; + +Stats: Stat ';' Stats + @{ + @i @Stat.in_symbols@ = @Stats.symbols@; + @i @Stats.1.symbols@ = @Stat.out_symbols@; + @i @Stats.defined_vars@ = @Stat.defined_vars@ + @Stats.1.defined_vars@; + @i @Stats.1.stack_offset@ = @Stats.stack_offset@ + @Stat.defined_vars@ * 8; + @i @Stats.node@ = new_node(OP_Stats, @Stat.node@, @Stats.1.node@); + @i @Stat.if_in@ = @Stats.if_in@; + @i @Stats.1.if_in@ = @Stat.if_out@; + @i @Stats.if_out@ = @Stats.1.if_out@; + @} + + | + @{ + @i @Stats.node@ = new_leaf(OP_Empty); /* TODO */ + @i @Stats.defined_vars@ = 0; + @i @Stats.if_out@ = @Stats.if_in@; + @} + + ; + +Stat: VAR ID ASSIGN Expr /* Nodes necessary for IF, DO, ... ? */ + @{ + @i @Stat.out_symbols@ = table_add_symbol(clone_table(@Stat.in_symbols@), @ID.name@, SYMBOL_TYPE_VAR, 0, @Stat.stack_offset@); + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Assign, new_named_leaf_value(OP_ID, @ID.name@, @Stat.stack_offset@, -1), @Expr.node@); + @i @Stat.defined_vars@ = 1; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Expr.node@->reg = get_next_reg((char *)NULL, 0); @Stat.node@->reg = @Expr.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | Lexpr ASSIGN Expr + @{ + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Lexpr.symbols@ = @Stat.in_symbols@; + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Assign, @Lexpr.node@, @Expr.node@); + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Lexpr.node@->reg = get_next_reg((char *)NULL, 0); @Expr.node@->reg = get_next_reg(@Lexpr.node@->reg, 0); @Stat.node@->reg = @Expr.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | IF Bool THEN Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_If, @Bool.node@, @Stats.node@); + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Stat.if_out@ = @Stats.if_out@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "if_then%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "if_end%i", @Stats.if_in@); + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz if_end%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("if_end%i:\n", @Stats.if_in@); + @} + + | IF Bool THEN Stats Blubb END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Blubb.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Ifstats, @Stats.node@, @Blubb.node@); + @i @Stat.defined_vars@ = @Stats.defined_vars@ + @Blubb.defined_vars@; + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Blubb.if_in@ = @Stats.if_out@; + @i @Stat.if_out@ = @Blubb.if_out@; + @i @Blubb.if_nr@ = @Stats.if_in@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "if_then%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "if_else%i", @Stats.if_in@); + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz if_else%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("if_end%i:\n", @Stats.if_in@); + @} + + | WHILE Bool DO Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_While, @Bool.node@, @Stats.node@); + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Stat.if_out@ = @Stats.if_out@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "do_enter%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "do_end%i", @Stats.if_in@); + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen printf("do_start%i:\n", @Stats.if_in@); /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz do_end%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("\tjmp do_start%i\ndo_end%i:\n", @Stats.if_in@, @Stats.if_in@); + @} + + | Call + @{ + @i @Call.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + @} + + | RETURN Expr + @{ + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Return, @Expr.node@, (treenode *)NULL); + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Stat.node@->reg = get_next_reg((char *)NULL, 0); @Expr.node@->reg = @Stat.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + ; + +Blubb: ELSE Stats + @{ + @codegen printf("\tjmp if_end%i\nif_else%i:\n", @Blubb.if_nr@, @Blubb.if_nr@); + @} + +Lexpr: ID + @{ + @i @Lexpr.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Lexpr.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Lexpr.symbols@, @ID.name@)->stack_offset, (table_lookup(@Lexpr.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Lexpr.symbols@, @ID.name@)->param_index); + + @check check_variable(@Lexpr.symbols@, @ID.name@); + @} + + | Field + ; + +Expr: '-' Term + @{ + @i @Expr.node@ = new_node(OP_Negation, @Term.node@, (treenode *)NULL); + + @reg @Term.node@->reg = @Expr.node@->reg; + @} + + | Term + @{ @reg @Term.node@->reg = @Expr.node@->reg; @} + + | Term Plusterm + @{ + @i @Expr.node@ = new_node(OP_Addition, @Plusterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Plusterm.immediate@; + + @reg if(!@Plusterm.immediate@) { @Plusterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.node@->reg, @Expr.node@->skip_reg); @Plusterm.node@->skip_reg = 1; } else { @Term.node@->reg = @Expr.node@->reg; @Plusterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + | Term Malterm + @{ + @i @Expr.node@ = new_node(OP_Multiplication, @Malterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Malterm.immediate@; + + @reg if(!@Malterm.immediate@) { @Malterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.node@->reg, @Expr.node@->skip_reg); @Malterm.node@->skip_reg = 1; } else { @Term.node@-> reg = @Expr.node@->reg; @Malterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + ; + +Plusterm: '+' Term Plusterm + @{ + @i @Plusterm.node@ = new_node(OP_Addition, @Plusterm.1.node@, @Term.node@); + @i @Plusterm.immediate@ = @Term.immediate@ && @Plusterm.1.immediate@; + + @reg @Plusterm.1.node@->reg = @Plusterm.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.1.node@->reg, @Plusterm.node@->skip_reg); + @} + + | '+' Term + @{ @reg @Term.node@->reg = @Plusterm.node@->reg; @} + + ; + +Malterm: '*' Term Malterm + @{ + @i @Malterm.node@ = new_node(OP_Multiplication, @Malterm.1.node@, @Term.node@); + @i @Malterm.immediate@ = @Term.immediate@ && @Malterm.1.immediate@; + + @reg @Malterm.1.node@->reg = @Malterm.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.1.node@->reg, @Malterm.node@->skip_reg); + @} + + | '*' Term + @{ @reg @Term.node@->reg = @Malterm.node@->reg; @} + + ; + +Term: '(' Expr ')' + @{ @reg @Expr.node@->reg = @Term.node@->reg; @} + + | ID + @{ + @i @Term.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->stack_offset, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->param_index); + @i @Term.immediate@ = 0; + + @check check_variable(@Term.symbols@, @ID.name@); + @} + + | NUM + @{ + @i @Term.node@ = new_number_leaf(@NUM.value@); + @i @Term.immediate@ = 1; + @} + + | Call + @{ @i @Term.immediate@ = 0; @} + + | Field + @{ + @i @Term.immediate@ = 0; + + @reg @Field.node@->reg = @Term.node@->reg; + @} + + ; + +/* TODO replace by Bool -> Subbool */ +Bool: Bterm + @{ + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 0; + @i @Bterm.negated2@ = 0; + @i @Bool.top_level@ = 1; + @i @Bterm.top_level@ = 1; + + @codegen @revorder(1) if(@Bterm.node@->op!=OP_Disjunction) { printf("\tjmp %s # foo1\n", @Bool.jump_false@); } printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\n%s:\n", @Bool.jump_false@, @Bool.jump_true@); */ + @} + + | Bterm Orterm + @{ + @i @Bool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 0; + @i @Orterm.negated@ = 0; + @i @Bterm.negated2@ = 0; + @i @Orterm.negated2@ = 0; + @e Bterm.jump_true : Bool.negated Bool.jump_true Bool.if_in; if(!@Bool.negated@) { @Bterm.jump_true@ = malloc(100); sprintf(@Bterm.jump_true@, "bool_true%i", @Bool.if_in@); } else { @Bterm.jump_true@ = @Bool.jump_true@; } + @i @Orterm.jump_true@ = @Bterm.jump_true@; + @e Bterm.jump_false : Bool.negated Bool.jump_false Bool.if_in; if(@Bool.negated@) { @Bterm.jump_false@ = malloc(100); sprintf(@Bterm.jump_false@, "bool_false%i", @Bool.if_in@); } else { @Bterm.jump_false@ = @Bool.jump_false@; } + @i @Orterm.jump_false@ = @Bterm.jump_false@; + @i @Bterm.if_in@ = @Bool.if_in@ + 1; + @i @Orterm.if_in@ = @Bterm.if_out@; + @i @Bool.if_out@ = @Orterm.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.top_level@ = 0; + @i @Bool.top_level@ = 1; + + @reg @Bterm.node@->reg = @Bool.node@->reg; @Orterm.node@->reg = @Bool.node@->reg; + + @codegen @revorder(1) printf("\tjmp %s # foo2\n", @Bool.jump_false@); printf(@Bool.negated@ ? "bool_false%i:\n" : "bool_true%i:\n", @Bool.if_in@); printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\n%s:\n", @Bool.jump_false@, @Bool.jump_true@); */ + @} + + | NOT Bterm + @{ + @i @Bool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); + @i @Bterm.jump_true@ = @Bool.jump_true@; + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 1; + @i @Bterm.negated2@ = 1; + @i @Bterm.top_level@ = 0; + @i @Bool.top_level@ = 1; + + @reg @Bterm.node@-> reg = @Bool.node@->reg; + + @codegen @revorder(1) if(@Bterm.node@->op!=OP_Not) { printf("\tjmp %s # foo3\n", @Bool.jump_false@); } printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\nnot_break%i:\n\tjmp %s\n%s:\n", @Bool.jump_true@, 0, @Bool.jump_false@, @Bool.jump_true@); */ + @} + + ; + +Subbool: Bterm + @{ + @i @Bterm.negated@ = @Subbool.negated@; + @i @Bterm.negated2@ = @Subbool.negated2@; + @i @Bterm.top_level@ = @Subbool.top_level@; + @codegen @revorder(1) /* printf("\tjmp %s\n%s:\n", @Subbool.jump_false@, @Subbool.jump_true@); */ + @} + + | Bterm Orterm + @{ + @i @Subbool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); + @i @Bterm.negated@ = @Subbool.negated@; + @i @Orterm.negated@ = @Subbool.negated@; + @i @Bterm.negated2@ = 0; + @i @Orterm.negated2@ = 0; + @e Bterm.jump_true : Subbool.negated Subbool.negated2 Subbool.jump_true Subbool.if_in; if(!@Subbool.negated@ && @Subbool.negated2@) { @Bterm.jump_true@ = malloc(100); sprintf(@Bterm.jump_true@, "bool_true%i", @Subbool.if_in@); } else { @Bterm.jump_true@ = @Subbool.jump_true@; } + @i @Orterm.jump_true@ = @Bterm.jump_true@; + @e Bterm.jump_false : Subbool.negated Subbool.negated2 Subbool.jump_false Subbool.if_in; if(@Subbool.negated@ && @Subbool.negated2@) { @Bterm.jump_false@ = malloc(100); sprintf(@Bterm.jump_false@, "bool_false%i", @Subbool.if_in@); } else { @Bterm.jump_false@ = @Subbool.jump_false@; } + @i @Orterm.jump_false@ = @Bterm.jump_false@; + @i @Bterm.if_in@ = @Subbool.if_in@ + 1; + @i @Orterm.if_in@ = @Bterm.if_out@; + @i @Subbool.if_out@ = @Orterm.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.top_level@ = 0; + @reg @Bterm.node@->reg = @Subbool.node@->reg; @Orterm.node@->reg = @Subbool.node@->reg; + + @codegen @revorder(1) /* TODO output if on top level */ if(@Subbool.negated2@ || @Subbool.top_level@) { printf("\tjmp %s # foo4\n", @Subbool.negated2@ ? @Subbool.jump_true@ : @Subbool.jump_false@); } printf(!@Subbool.negated@ ? "bool_true%i:\n" : "bool_false%i:\n", @Subbool.if_in@); /* printf("\tjmp %s\n# %s:\n", @Subbool.jump_true@, @Subbool.jump_true@); */ + @} + + | NOT Bterm + @{ + @i @Subbool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); + @i @Bterm.jump_true@ = @Subbool.jump_true@; + @i @Bterm.negated@ = 1 - @Subbool.negated@; + @i @Bterm.negated2@ = 1 - @Subbool.negated2@; + @i @Bterm.top_level@ = 0; + + @reg @Bterm.node@-> reg = @Subbool.node@->reg; /* printf("%s, %s\n", @Bterm.jump_true@, @Subbool.jump_false@); */ + + @codegen @revorder(1) printf("# !!\n"); if(@Subbool.negated2@ || @Subbool.top_level@) { printf("\tjmp %s # foo9\n", @Subbool.negated2@ ? @Subbool.jump_false@ : @Subbool.jump_false@); } /* printf("\tjmp %s\nnot_break%i:\n", @Subbool.negated@ ? @Bterm.jump_true@ : @Subbool.jump_false@, 0); printf("\tjmp %s\n%s:\n", @Subbool.jump_false@, @Subbool.jump_true@); */ + @} + + ; + + +Orterm: OR Bterm Orterm + @{ + @i @Orterm.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.1.node@); + @i @Bterm.negated@ = @Orterm.negated@; + @i @Orterm.1.negated@ = @Orterm.negated@; + @i @Bterm.negated2@ = 0; + @i @Orterm.1.negated2@ = 0; + @i @Orterm.1.if_in@ = @Bterm.if_out@; + @i @Orterm.if_out@ = @Orterm.1.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.1.top_level@ = 0; + + @reg @Bterm.node@->reg = @Orterm.node@->reg; @Orterm.1.node@->reg = @Orterm.node@->reg; + @} + + | OR Bterm + @{ + @i @Bterm.negated@ = @Orterm.negated@; + @i @Bterm.negated2@ = @Orterm.negated2@; + @i @Bterm.top_level@ = 0; + @} + + ; + +Bterm: Term GREATER Term + @{ + @i @Bterm.node@ = new_node(OP_Greater, @Term.node@, @Term.1.node@); + @i @Bterm.if_out@ = @Bterm.if_in@; + + @reg @Term.node@->reg = @Bterm.node@->reg; @Term.1.node@->reg = get_next_reg(@Bterm.node@->reg, 0); + + @codegen /* write_tree(@Term.node@, 0); */ burm_label(@Term.node@); burm_reduce(@Term.node@, 1); /* write_tree(@Term.1.node@, 0); */ burm_label(@Term.1.node@); burm_reduce(@Term.1.node@, 1); printf(@Bterm.negated2@ ? "\tcmp %%%s, %%%s\n\tjs %s # %s %s %i %i\n" : "\tcmp %%%s, %%%s\n\tjns %s # %s %s %i %i\n", @Term.1.node@->reg, @Term.node@->reg, ((@Bterm.negated2@ ^ @Bterm.negated@)) ? @Bterm.jump_false@ : @Bterm.jump_true@, @Bterm.jump_true@, @Bterm.jump_false@, @Bterm.negated2@, @Bterm.negated@); + @} + + | Term '=' Term + @{ + @i @Bterm.node@ = new_node(OP_Equal, @Term.node@, @Term.1.node@); + @i @Bterm.if_out@ = @Bterm.if_in@; + + @reg @Term.node@->reg = @Bterm.node@->reg; @Term.1.node@->reg = get_next_reg(@Bterm.node@->reg, 0); + + @codegen /* write_tree(@Term.node@, 0); */ burm_label(@Term.node@); burm_reduce(@Term.node@, 1); /* write_tree(@Term.1.node@, 0); */ burm_label(@Term.1.node@); burm_reduce(@Term.1.node@, 1); printf(@Bterm.negated2@ ? "\tcmp %%%s, %%%s\n\tjnz %s # %s %s %i %i\n" : "\tcmp %%%s, %%%s\n\tjz %s # %s %s %i %i\n", @Term.node@->reg, @Term.1.node@->reg, ((@Bterm.negated2@ ^ @Bterm.negated@)) ? @Bterm.jump_false@ : @Bterm.jump_true@, @Bterm.jump_true@, @Bterm.jump_false@, @Bterm.negated2@, @Bterm.negated@); + @} + + | '(' Subbool ')' + @{ + @i @Subbool.negated@ = @Bterm.negated@; + @i @Subbool.negated2@ = @Bterm.negated2@; + @i @Subbool.top_level@ = @Bterm.top_level@; + @} + + ; + +Field: Term '.' ID + @{ + @i @Field.node@ = new_node_value(OP_Field, @Term.node@, new_named_leaf(OP_ID, @ID.name@), table_lookup(@Field.symbols@, @ID.name@)==(struct symbol_t *)NULL ? 0 : table_lookup(@Field.symbols@, @ID.name@)->stack_offset, -1); + + @check check_field(@Field.symbols@, @ID.name@); + + @reg @Term.node@->reg = @Field.node@->reg; @Field.node@->kids[1]->reg = get_next_reg(@Field.node@->reg, 0); + @} + + ; + +Call: ID '(' Exprs ')' + @{ @i @Call.node@ = new_node(OP_Call, new_named_leaf(OP_ID, @ID.name@), @Exprs.node@); @} + + | ID '(' ')' + @{ @i @Call.node@ = new_node(OP_Call, new_named_leaf(OP_ID, @ID.name@), NULL); @} + + ; + +Exprs: Expr + | Exprs ',' Expr + @{ @i @Exprs.node@ = new_node(OP_Exprs, @Exprs.1.node@, @Expr.node@); @} + + ; + +%% + +extern int yylex(); +extern int yylineno; + +int yyerror(char *error_text) { + fprintf(stderr,"Line %i: %s\n",yylineno, error_text); + exit(2); +} + +int main(int argc, char **argv) { + yyparse(); + return 0; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/scanner.lex.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/scanner.lex.svn-base new file mode 100644 index 0000000..5cf6520 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/scanner.lex.svn-base @@ -0,0 +1,67 @@ + #include + #include + #include + #include "parser.h" + #include "tree.h" + +KEYWORD func|end|struct|var|if|then|else|while|do|return|or|not +IDENTIFIER [[:alpha:]_][[:alnum:]_]* +NUMBER_HEX [0-9][0-9A-Fa-f]*H +NUMBER_DEC [0-9]+ +WHITESPACE [\t\n\r ] +COMMENT_START \(\* +COMMENT_END \*\) + +%x COMMENT +%option yylineno +%% + +{COMMENT_START} BEGIN(COMMENT); + +{COMMENT_END} BEGIN(INITIAL); + +{COMMENT_START} fprintf(stderr, "Possibly nested comment on line %i\n", yylineno); + +<> { fprintf(stderr, "Unterminated comment.\n"); exit(1); } + +{WHITESPACE} /* ignore */ + +. /* ignore everything inside comment */ + +func return(FUNC); +end return(END); +struct return(STRUCT); +var return(VAR); +if return(IF); +then return(THEN); +else return(ELSE); +while return(WHILE); +do return(DO); +return return(RETURN); +or return(OR); +not return(NOT); + +{IDENTIFIER} return(ID); @{ @ID.name@=strdup(yytext); @} + +{NUMBER_DEC} return(NUM); @{ @NUM.value@=strtol(yytext,(char **)NULL,10); @} +{NUMBER_HEX} return(NUM); @{ yytext[strlen(yytext)-1]='\0'; @NUM.value@=strtol(yytext,(char **)NULL,16); @} + +\:= return(ASSIGN); +>= return(GREATER); +\; return(';'); +\. return('.'); +\( return('('); +\) return(')'); +\, return(','); +\- return('-'); +\+ return('+'); +\* return('*'); += return('='); + +{WHITESPACE} /* ignore */ + +. { fprintf(stderr, "Lexical error on line %i\n", yylineno); exit(1); } + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/symbol_table.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/symbol_table.c.svn-base new file mode 100644 index 0000000..bf66a65 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/symbol_table.c.svn-base @@ -0,0 +1,192 @@ +#include +#include +#include +#include "symbol_table.h" + +struct symbol_t *new_table(void) { + return (struct symbol_t *)NULL; +} + +struct symbol_t *clone_table(struct symbol_t *table) { + struct symbol_t *element; + struct symbol_t *new_tablex; + + element=table; + new_tablex=new_table(); + while((struct symbol_t *)NULL!=element) { + /* check return value */ + if(element->param_index!=-1) { + new_tablex=table_add_param(new_tablex,element->identifier,element->param_index); + } + else { + new_tablex=table_add_symbol(new_tablex,element->identifier,element->type,0,element->stack_offset); + } + element=element->next; + } + + return new_tablex; +} + +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + if(check) { + fprintf(stderr,"Duplicate field %s.\n",identifier); + exit(3); + } + + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=type; + new_element->stack_offset=stack_offset; + new_element->param_index=-1; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=SYMBOL_TYPE_PARAM; + new_element->param_index=param_index; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + + element=table; + + if((struct symbol_t *)NULL==table) { + return (struct symbol_t *)NULL; + } + + if(strcmp(element->identifier,identifier)==0) { + return element; + } + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + if(strcmp(element->identifier,identifier)==0) { + return element; + } + } + + return (struct symbol_t *)NULL; +} + +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check) { + struct symbol_t *element; + struct symbol_t *new_table=clone_table(table); + + element=to_add; + while(element!=(struct symbol_t *)NULL) { + if(element->param_index!=-1) { + new_table=table_add_param(new_table,element->identifier,element->param_index); + } + else { + new_table=table_add_symbol(new_table,element->identifier,element->type,check,element->stack_offset); + } + element=element->next; + } + + return new_table; +} + +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + struct symbol_t *previous_element; + struct symbol_t *new_element; + + if((struct symbol_t *)NULL==table) { + return table; + } + + previous_element=(struct symbol_t *)NULL; + element=table; + + while((struct symbol_t *)NULL!=element) { + if(strcmp(element->identifier,identifier)==0) { + if((struct symbol_t *)NULL==previous_element) { + new_element=element->next; + } + else { + previous_element->next=element->next; + new_element=table; + } + (void)free(element->identifier); + (void)free(element); + return new_element; + } + previous_element=element; + element=element->next; + } + + return table; +} + +void check_variable(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_VAR && element->type!=SYMBOL_TYPE_PARAM) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + +void check_field(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_FIELD) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/symbol_table.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/symbol_table.h.svn-base new file mode 100644 index 0000000..f8f3687 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/symbol_table.h.svn-base @@ -0,0 +1,27 @@ +#ifndef SYMBOL_TABLE_H +#define SYMBOL_TABLE_H + +#define SYMBOL_TYPE_FIELD 1 +#define SYMBOL_TYPE_VAR 2 +#define SYMBOL_TYPE_PARAM 3 + +struct symbol_t { + char *identifier; + struct symbol_t *next; + short type; + int stack_offset; + int param_index; /* -1 if not a parameter */ +}; + +struct symbol_t *clone_table(struct symbol_t *table); +struct symbol_t *new_table(void); +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset); +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index); +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier); +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier); +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check); +void check_variable(struct symbol_t *table, char *identifier); +void check_field(struct symbol_t *table, char *identifier); + +#endif /* SYMBOL_TABLE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/test.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/test.c.svn-base new file mode 100644 index 0000000..6052e59 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/test.c.svn-base @@ -0,0 +1,187 @@ +#include + +extern long f1(long a); +extern long f2(long a); +extern long f3(long a); +extern long f4(long a); +extern long f5(long a); +extern long f6(long a); +extern long f7(long a); +extern long f8(long a); +extern long f9(long a); +extern long f10(long a); + +extern long g1(long a, long b); +extern long g2(long a, long b); +extern long g3(long a, long b); +extern long g4(long a, long b); +extern long g5(long a, long b); +extern long g6(long a, long b); +extern long g7(long a, long b); +extern long g8(long a, long b); +extern long g9(long a, long b); +extern long g10(long a, long b); +extern long g11(long a, long b); +extern long g12(long a, long b); + +extern long h1(long a, long b, long c, long d); +extern long h2(long a, long b, long c, long d); +extern long h3(long a, long b, long c, long d); +extern long h4(long a, long b, long c, long d); +extern long h5(long a, long b, long c, long d); +extern long h6(long a, long b, long c, long d); +extern long h7(long a, long b, long c, long d); +extern long h8(long a, long b, long c, long d); +extern long h9(long a, long b, long c, long d); +extern long h10(long a, long b, long c, long d); +extern long h11(long a, long b, long c, long d); +extern long h12(long a, long b, long c, long d); +extern long h13(long a, long b, long c, long d); +extern long h14(long a, long b, long c, long d); +extern long h15(long a, long b, long c, long d); +extern long h16(long a, long b, long c, long d); +extern long h17(long a, long b, long c, long d); +extern long h18(long a, long b, long c, long d); +extern long h19(long a, long b, long c, long d); +extern long h20(long a, long b, long c, long d); +extern long h21(long a, long b, long c, long d); +extern long h22(long a, long b, long c, long d); +extern long h23(long a, long b, long c, long d); +extern long h24(long a, long b, long c, long d); + +int check_arg1(char *name, long (*function)(long), long ret0, long ret1, long ret2) { + int ret; + ret=function(0)==ret0 && function(1)==ret1 && function(2)==ret2; + printf("%s: %li/%li, %li/%li, %li/%li - %s\n", name,function(0), ret0, function(1), ret1, function(2), ret2, ret ? "ok" : "FAIL"); + return ret; +} + +int check_arg2(char *name, long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + printf("%s - ", name); + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + printf("%li/%li ", function(a,b),blubb[a][b]); + } + } + printf("- %s\n", ret ? "ok" : "FAIL"); + return ret; +} + +int check_arg4(char *name, long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + printf("%s - ", name); + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + printf("%li/%li ", function(a,b,c,d),blubb[a][b][c][d]); + } + } + } + } + printf("- %s\n", ret ? "ok" : "FAIL"); + return ret; +} + +int main(int argc, char **argv) { + int ret; + + long ret_g1[2][2]={{1,1},{1,0}}; + long ret_g2[2][2]={{1,0},{1,1}}; + long ret_g3[2][2]={{1,1},{0,1}}; + long ret_g4[2][2]={{0,1},{1,1}}; + long ret_g5[2][2]={{0,0},{0,1}}; + long ret_g6[2][2]={{0,1},{0,0}}; + long ret_g7[2][2]={{0,0},{1,0}}; + long ret_g8[2][2]={{1,0},{0,0}}; + long ret_g9[2][2]={{1,1},{1,0}}; + long ret_g10[2][2]={{1,0},{1,1}}; + long ret_g11[2][2]={{1,1},{0,1}}; + long ret_g12[2][2]={{0,1},{1,1}}; + + long ret_h1[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + long ret_h2[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h3[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + long ret_h4[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + long ret_h5[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + + long ret_h6[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h7[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + long ret_h8[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + + long ret_h9[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,1}}}}; + long ret_h10[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,1}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + long ret_h11[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,1}},{{0,0},{0,0}}}}; + long ret_h12[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,1},{0,0}}}}; + long ret_h13[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{1,0}}}}; + long ret_h14[2][2][2][2]={{{{0,0},{0,1}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + long ret_h15[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{1,0},{0,0}}}}; + long ret_h16[2][2][2][2]={{{{1,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + + long ret_h17[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + long ret_h18[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h19[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + long ret_h20[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + long ret_h21[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + + long ret_h22[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h23[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + long ret_h24[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + + ret=check_arg1("f1",f1,0,1,1); + ret&=check_arg1("f2",f2,0,0,1); + ret&=check_arg1("f3",f3,1,0,0); + ret&=check_arg1("f4",f4,0,1,1); + ret&=check_arg1("f5",f5,0,0,1); + ret&=check_arg1("f6",f6,1,0,0); + ret&=check_arg1("f7",f7,0,1,1); + ret&=check_arg1("f8",f8,0,0,1); + ret&=check_arg1("f9",f9,1,1,1); + ret&=check_arg1("f10",f10,1,0,0); + + ret&=check_arg2("g1",g1,ret_g1); + ret&=check_arg2("g2",g2,ret_g2); + ret&=check_arg2("g3",g3,ret_g3); + ret&=check_arg2("g4",g4,ret_g4); + ret&=check_arg2("g5",g5,ret_g5); + ret&=check_arg2("g6",g6,ret_g6); + ret&=check_arg2("g7",g7,ret_g7); + ret&=check_arg2("g8",g8,ret_g8); + ret&=check_arg2("g9",g9,ret_g9); + ret&=check_arg2("g10",g10,ret_g10); + ret&=check_arg2("g11",g11,ret_g11); + ret&=check_arg2("g12",g12,ret_g12); + + ret&=check_arg4("h1",h1,ret_h1); + ret&=check_arg4("h2",h2,ret_h2); + ret&=check_arg4("h3",h3,ret_h3); + ret&=check_arg4("h4",h4,ret_h4); + ret&=check_arg4("h5",h5,ret_h5); + ret&=check_arg4("h6",h6,ret_h6); + ret&=check_arg4("h7",h7,ret_h7); + ret&=check_arg4("h8",h8,ret_h8); + ret&=check_arg4("h9",h9,ret_h9); + ret&=check_arg4("h10",h10,ret_h10); + ret&=check_arg4("h11",h11,ret_h11); + ret&=check_arg4("h12",h12,ret_h12); + ret&=check_arg4("h13",h13,ret_h13); + ret&=check_arg4("h14",h14,ret_h14); + ret&=check_arg4("h15",h15,ret_h15); + ret&=check_arg4("h16",h16,ret_h16); + ret&=check_arg4("h17",h17,ret_h17); + ret&=check_arg4("h18",h18,ret_h18); + ret&=check_arg4("h19",h19,ret_h19); + ret&=check_arg4("h20",h20,ret_h20); + ret&=check_arg4("h21",h21,ret_h21); + ret&=check_arg4("h22",h22,ret_h22); + ret&=check_arg4("h23",h23,ret_h23); + ret&=check_arg4("h24",h24,ret_h24); + + return !ret; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/test.input.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/test.input.svn-base new file mode 100644 index 0000000..0771e51 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/test.input.svn-base @@ -0,0 +1,49 @@ +func f1(a) if a=0 then return 0; else return 1; end; end; +func f2(a) if a=0 or a=1 then return 0; else return 1; end; end; +func f3(a) if not (a=0) then return 0; else return 1; end; end; +func f4(a) if (a=0) then return 0; else return 1; end; end; +func f5(a) if (a=0 or a=1) then return 0; else return 1; end; end; +func f6(a) if (not (a=0)) then return 0; else return 1; end; end; +func f7(a) if not (not (a=0)) then return 0; else return 1; end; end; +func f8(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; +func f9(a) if not ((not (a=0)) or (not (a=1))) then return 0; else return 1; end; end; +func f10(a) if (not (not (not (a=0)))) then return 0; else return 1; end; end; + +func g1(a,b) if (a=0 or b=0) then return 1; else return 0; end; end; +func g2(a,b) if ((not (a=0)) or b=0) then return 1; else return 0; end; end; +func g3(a,b) if (a=0 or (not (b=0))) then return 1; else return 0; end; end; +func g4(a,b) if ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; +func g5(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; +func g6(a,b) if not ((not (a=0)) or b=0) then return 1; else return 0; end; end; +func g7(a,b) if not (a=0 or (not (b=0))) then return 1; else return 0; end; end; +func g8(a,b) if not ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; +func g9(a,b) if not (not (a=0 or b=0)) then return 1; else return 0; end; end; +func g10(a,b) if not (not ((not (a=0)) or b=0)) then return 1; else return 0; end; end; +func g11(a,b) if not (not (a=0 or (not (b=0)))) then return 1; else return 0; end; end; +func g12(a,b) if not (not ((not (a=0)) or (not (b=0)))) then return 1; else return 0; end; end; + +func h1(a,b,c,d) if (a=0 or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; +func h2(a,b,c,d) if ((not (a=0)) or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; +func h3(a,b,c,d) if (a=0 or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; +func h4(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or d=0) then return 1; else return 0; end; end; +func h5(a,b,c,d) if (a=0 or b=0) or (c=0 or (not (d=0))) then return 1; else return 0; end; end; +func h6(a,b,c,d) if ((not (a=0)) or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; +func h7(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; +func h8(a,b,c,d) if ((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; +func h9(a,b,c,d) if not ((a=0 or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h10(a,b,c,d) if not (((not (a=0)) or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h11(a,b,c,d) if not ((a=0 or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h12(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or d=0)) then return 1; else return 0; end; end; +func h13(a,b,c,d) if not ((a=0 or b=0) or (c=0 or (not (d=0)))) then return 1; else return 0; end; end; +func h14(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h15(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; +func h16(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; +func h17(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h18(a,b,c,d) if not (not (((not (a=0)) or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h19(a,b,c,d) if not (not ((a=0 or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h20(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or d=0))) then return 1; else return 0; end; end; +func h21(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or (not (d=0))))) then return 1; else return 0; end; end; +func h22(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h23(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; +func h24(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/tree.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/tree.c.svn-base new file mode 100644 index 0000000..c3e0a44 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/tree.c.svn-base @@ -0,0 +1,157 @@ +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* new_node: create "standard node" with one or two children and + * given operation + */ +treenode *new_node(int op, treenode *left, treenode *right) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_node_value: create "standard node" with one or two children and + * given operation and the given value + */ +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_leaf: create leaf - node with no children */ +treenode *new_leaf(int op) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_leaf: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_named_leaf: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf(int op, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + + return new; +} + +/* new_named_leaf_value: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf_value(int op, char *name, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf_value: %i (%s), %s, %li\n",op,rule_names[op],name,value); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_named_node: create node with one or two children and a name (can be + * used for storing a procedure's name) + */ +treenode *new_named_node(int op, treenode *left, treenode *right, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_node: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=name; + + return new; +} + +void write_indent(int indent) { + int a; + for(a=0;aop],node->name,node->reg); + if(node->kids[0]!=(treenode *)NULL || node->kids[1]!=(treenode *)NULL) { + if(node->kids[0]!=(treenode *)NULL) { + write_tree(node->kids[0], indent+1); + } + if(node->kids[1]!=(treenode *)NULL) { + write_tree(node->kids[1], indent+1); + } + } +} + +treenode *new_number_leaf(long value) { + treenode *node; + + if(value==0) { + node=new_leaf(OP_Zero); + } + else if(value==1) { + node=new_leaf(OP_One); + } + else { + node=new_leaf(OP_Number); + } + + node->value=value; + + return node; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/tree.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/tree.h.svn-base new file mode 100644 index 0000000..a9f6d1c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/.svn/text-base/tree.h.svn-base @@ -0,0 +1,94 @@ +#ifndef __TREE_H_ +#define __TREE_H_ + +#ifndef CODE +typedef struct burm_state *STATEPTR_TYPE; +#endif + +enum { + OP_Not=1, + OP_Negation, + OP_Addition, + OP_Multiplication, + OP_Disjunction, + OP_Greater, + OP_Equal, + OP_ID, + OP_Number, + OP_Field, + OP_Return, + OP_Zero, + OP_One, + OP_Exprs, + OP_Call, + OP_Assign, + OP_If, + OP_Stats, + OP_Empty, + OP_Ifstats, + OP_While +}; + +static char rule_names[100][100]={ + "", + "OP_Not", + "OP_Negation", + "OP_Addition", + "OP_Multiplication", + "OP_Disjunction", + "OP_Greater", + "OP_Equal", + "OP_ID", + "OP_Number", + "OP_Field", + "OP_Return", + "OP_Zero", + "OP_One", + "OP_Exprs", + "OP_Call", + "OP_Assign", + "OP_If", + "OP_Stats", + "OP_Empty", + "OP_Ifstats", + "OP_While" +}; + + +/* struct for the tree build by ox for iburg */ +typedef struct treenode { + int op; + struct treenode *kids[2]; + STATEPTR_TYPE label; + char *name; + long value; + char *reg; + struct treenode *parent; + int skip_reg; + int param_index; /* -1 if not a parameter */ +} treenode; + +typedef treenode *treenodep; + +/* macros for iburg being able to traverse the tree */ +#define NODEPTR_TYPE treenodep +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->label) +#define PANIC printf + +/* see tree.c for description about these procedures */ +treenode *new_node(int op, treenode *left, treenode *right); +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param); +treenode *new_leaf(int op); +treenode *new_number_leaf(long value); +treenode *new_named_leaf(int op, char *name); +treenode *new_named_leaf_value(int op, char *name, long value, int param); +treenode *new_named_node(int op, treenode *left, treenode *right, char *name); + +void write_indent(int indent); +void write_tree(treenode *node, int indent); + +#endif /* __TREE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/Makefile b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/Makefile new file mode 100644 index 0000000..b3d6bd4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/Makefile @@ -0,0 +1,38 @@ +all: codeb + +scanner.c: oxout.l + flex -oscanner.c oxout.l + +scanner.o: scanner.c parser.h symbol_table.h + gcc -g -c -ansi -pedantic scanner.c -D_GNU_SOURCE + +codeb: scanner.o parser.o symbol_table.o code_gen.o tree.o code.o + gcc -o codeb symbol_table.o scanner.o parser.o code_gen.o tree.o code.o -lfl + +tree.o: tree.c tree.h + gcc -g -c -ansi -pedantic -Wall tree.c + +code_gen.o: code_gen.c code_gen.h + gcc -g -c -ansi -pedantic -Wall code_gen.c -D_GNU_SOURCE + +symbol_table.o: symbol_table.c symbol_table.h + gcc -g -c -ansi -pedantic -Wall symbol_table.c -D_GNU_SOURCE + +parser.o: parser.c symbol_table.h code_gen.h tree.h + gcc -g -c -ansi -pedantic parser.c + +parser.c parser.h: oxout.y + yacc -d oxout.y -o parser.c + +oxout.y oxout.l: parser.y scanner.lex + ox parser.y scanner.lex + +code.o: code.c tree.h + gcc -g -ansi -c code.c + +code.c: code.bfe + bfe < code.bfe | iburg > code.c + +clean: + rm -f codeb scanner.o scanner.c parser.h parser.c parser.o oxout.y oxout.l symbol_table.o code_gen.o tree.o code.c code.o testcodeb* a.out + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code.bfe b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code.bfe new file mode 100755 index 0000000..9f19cd1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code.bfe @@ -0,0 +1,91 @@ +%{ +/* vim: filetype=c + */ +#define CODE + +#include +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* TODO (-a)+b */ +/* TODO imul -> imulq, add -> addq */ +/* TODO bugs - hopefully fixed: + * func f(a,b,c,d) return ((a+1)+(b+1))+((c+1)+(d+1)); end; + * func f(a,b,c,d) var b:=a; var c:=b; var d:=c; return a+b+c+d; end; + * mul, add etc. with direct memory access + */ +/* TODO immediate values in assignments */ +/* TODO assignment with immediate value/variable on RHS */ +/* TODO immediate values in boolean expressions */ +/* TODO optimize boolean expressions */ +/* FIXME if_then label not inserted */ +%} + +%start stat +%term OP_Not=1 OP_Negation=2 OP_Addition=3 OP_Multiplication=4 OP_Disjunction=5 OP_Greater=6 OP_Equal=7 OP_ID=8 OP_Number=9 OP_Field=10 OP_Return=11 OP_Zero=12 OP_One=13 OP_Exprs=14 OP_Call=15 OP_Assign=16 OP_If=17 OP_Stats=18 OP_Empty=19 OP_Ifstats=20 OP_While=21 + +%% + +stat: ret # 0 # +stat: assign # 0 # +stat: bexpr # 0 # +stat: expr # 0 # + +assign: OP_Assign(OP_ID, expr) # 1 # if(bnode->kids[0]->param_index!=-1) { printf("\tmovq %%%s, %%%s\n", bnode->reg, get_param_reg(bnode->kids[0]->param_index)); } else { printf("\tmovq %%%s, %i(%%rsp)\n", bnode->reg, bnode->kids[0]->value); } +assign: OP_Assign(OP_Field(expr,OP_ID), expr) # 1 # printf("\tmovq %%%s, %li(%%%s)\n", bnode->kids[1]->reg, 8*bnode->kids[0]->value, bnode->kids[0]->reg); + +ret: OP_Return(expr) # 1 # move(bnode->reg, "rax"); ret(); + +expr: OP_ID # 1 # if(bnode->param_index!=-1) { move(get_param_reg(bnode->param_index), bnode->reg); } else { printf("\tmovq %i(%%rsp), %%%s\n", bnode->value, bnode->reg); } +expr: imm # 1 # printf("\tmovq $%li, %%%s\n", bnode->value, bnode->reg); +expr: call # 0 # +expr: OP_Negation(expr) # 1 # printf("\tnegq %%%s\n", bnode->reg); +expr: OP_Addition(expr,expr) # 1 # printf("\taddq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Addition(imm,expr) # 1 # printf("\taddq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Addition(expr,imm) # 1 # if(bnode->kids[0]->op==OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\taddq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\taddq $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Multiplication(expr,expr) # 1 # printf("\timulq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Multiplication(imm,expr) # 1 # printf("\timulq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Multiplication(expr,imm) # 1 # if(bnode->kids[0]->op==OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Field(expr,OP_ID) # 2 # printf("\tmovq %li(%%%s), %%%s\n", 8*bnode->value, bnode->kids[0]->reg, bnode->reg); +expr: OP_Field(imm,OP_ID) # 1 # printf("\tmovq %li, %%%s\n", bnode->kids[0]->value+bnode->value*8, bnode->reg); +expr: OP_Addition(expr, OP_Negation(expr)) # 1 # printf("\tsubq %%%s, %%%s\n", bnode->kids[0]->reg, bnode->kids[1]->kids[0]->reg); +expr: OP_Addition(OP_Negation(expr), OP_Negation(expr)) # 1 # printf("\taddq %%%s, %%%s\n\tnegq %%%s\n", bnode->kids[0]->kids[0]->reg, bnode->kids[1]->kids[0]->reg, bnode->kids[1]->kids[0]->reg); +expr: OP_Multiplication(OP_Negation(expr), OP_Negation(expr)) # 1 # printf("\timulq %%%s, %%%s\n", bnode->kids[0]->reg, bnode->kids[1]->reg); + +call: OP_Call(OP_ID,exprs) # 0 # /* ignore at the moment */ + +exprs: expr # 0 # +exprs: OP_Exprs(exprs,expr) # 0 # + +zero: OP_Negation(zero) # 0 # +zero: OP_Zero # 0 # +zero: OP_Multiplication(zexpr,zero) # 0 # +zero: OP_Multiplication(zero,zexpr) # 0 # + +zexpr: zero # 0 # +zexpr: imm # 0 # +zexpr: OP_Negation(zexpr) # 0 # +zexpr: OP_Addition(zexpr,zexpr) # 0 # +zexpr: OP_Multiplication(zexpr,zexpr) # 0 # +zexpr: OP_Field(zexpr,OP_ID) # 0 # +zexpr: OP_ID # 0 # + +imm: zero # 0 # +imm: OP_Negation(imm) # 0 # bnode->value=-bnode->kids[0]->value; +imm: OP_Addition(imm,imm) # 0 # bnode->value=bnode->kids[0]->value+bnode->kids[1]->value; +imm: OP_Multiplication(imm,imm) # 0 # bnode->value=bnode->kids[0]->value*bnode->kids[1]->value; +imm: OP_Number # 0 # +imm: OP_Zero # 0 # +imm: OP_One # 0 # + +bexpr: OP_Disjunction(bexpr,bexpr) # 0 # +bexpr: OP_Not(bexpr) # 0 # +bexpr: OP_Greater(expr,expr) # 0 # +bexpr: OP_Equal(expr,expr) # 0 # + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code_gen.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code_gen.c new file mode 100644 index 0000000..c6e18fe --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code_gen.c @@ -0,0 +1,52 @@ +#include +#include +#include "code_gen.h" + +int variables; + +void function_header(char *name, int vars) { + variables = vars; + printf("\t.globl %s\n\t.type %s, @function\n%s:\n", name, name, name); + if(vars>0) { + printf("\tpushq %%rbp\n\tmovq %%rsp, %%rbp\n\tsubq $%i, %%rsp\n", 8*vars); + } +} + +char *get_next_reg(char *name, int skip_reg) { + char *reg_names[]={"rax", "r10", "r11", "r9", "r8", "rcx", "rdx", "rsi", "rdi"}; + int index, a; + if(name==(char *)NULL) { + index=0; + } + else { + for(a=0;a<9;a++) { + if(!strcmp(name,reg_names[a])) { + index=a+1; + break; + } + } + } + if(skip_reg) { + index++; + } + return reg_names[index]; +} + +char *get_param_reg(long number) { + char *reg_names[]={"rdi", "rsi", "rdx", "rcx", "r8", "r9"}; + return reg_names[number-1]; +} + +void ret(void) { + if(variables>0) { + printf("\tleave\n"); + } + printf("\tret\n"); +} + +void move(char *src, char *dst) { + if(strcmp(src,dst)) { + printf("\tmovq %%%s, %%%s\n",src,dst); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code_gen.h b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code_gen.h new file mode 100644 index 0000000..8f85f3b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/code_gen.h @@ -0,0 +1,11 @@ +#ifndef _CODE_GEN_H_ +#define _CODE_GEN_H_ + +void function_header(char *name, int vars); +char *get_next_reg(char *name, int skip_reg); +char *get_param_reg(long number); +void ret(void); +void move(char *src, char *dest); + +#endif /* _CODE_GEN_H_ */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/parser.y b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/parser.y new file mode 100644 index 0000000..7cc2661 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/parser.y @@ -0,0 +1,541 @@ +%{ + #include + #include + #include + #include "symbol_table.h" + #include "code_gen.h" + #include "tree.h" + + #define imm_prefix "$" + +/* TODO failed test case: func f(a) if not (a=0 or a=1) then return 0; end; end; */ +%} + +%start Input +%token FUNC END STRUCT VAR IF THEN ELSE WHILE DO RETURN OR NOT +%token ID NUM ASSIGN GREATER + +@autoinh symbols stack_offset all_pars if_in jump_true jump_false +@autosyn node defined_vars immediate if_out + +@attributes { char *name; } ID +@attributes { long value; } NUM +@attributes { struct symbol_t *fields; struct symbol_t *symbols; int if_in; } Program +@attributes { struct symbol_t *fields; } Structdef +@attributes { struct symbol_t *fields; int offset; } Ids +@attributes { struct symbol_t *pars; int num_pars; int all_pars; } Pars +@attributes { struct symbol_t *symbols; int defined_vars; int if_in; int if_out; } Funcdef +@attributes { struct symbol_t *symbols; int defined_vars; int stack_offset; treenode *node; int if_in; int if_out; } Stats +@attributes { struct symbol_t *symbols; treenode *node; int immediate; } Expr Term Plusterm Malterm +@attributes { struct symbol_t *symbols; treenode *node; } Call Lexpr Field Exprs +@attributes { struct symbol_t *symbols; treenode *node; char *jump_true; char *jump_false; int negated; int if_in; int if_out; int negated2; int top_level; } Bool Orterm Subbool Bterm +@attributes { struct symbol_t *in_symbols; struct symbol_t *out_symbols; treenode *node; int defined_vars; int stack_offset; int if_in; int if_out; } Stat +@attributes { struct symbol_t *symbols; treenode *node; int defined_vars; int stack_offset; int if_in; int if_out; int if_nr; } Blubb + +@traversal @postorder check +@traversal @preorder reg +@traversal @preorder codegen + +%% + +Input: Program + @{ + @i @Program.symbols@ = @Program.fields@; + @i @Program.if_in@ = 0; + + @codegen printf("\t.text\n"); + @} + + ; + +Program: Funcdef ';' Program + @{ + @i @Program.fields@ = @Program.1.fields@; + @i @Program.1.if_in@ = @Funcdef.if_out@; + @} + + | Structdef ';' Program + @{ + @i @Program.fields@ = table_merge(@Structdef.fields@, @Program.1.fields@, 1); + @i @Program.1.symbols@ = @Program.0.symbols@; + @} + + | + @{ @i @Program.fields@ = new_table(); @} + + ; + +Funcdef: FUNC ID '(' Pars ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, @Pars.pars@, 0); + @i @Stats.stack_offset@ = 0; + @i @Pars.all_pars@ = @Pars.num_pars@; + + @codegen function_header(@ID.name@, @Funcdef.defined_vars@); + @} + + | FUNC ID '(' ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, new_table(), 0); + @i @Stats.stack_offset@ = 0; + + @codegen function_header(@ID.name@, @Funcdef.defined_vars@); + @} + + ; + +Structdef: STRUCT Ids END + @{ + @i @Structdef.fields@ = @Ids.fields@; + @i @Ids.offset@ = 0; + @} + + ; + +Ids: ID Ids + @{ + @i @Ids.fields@ = table_add_symbol(@Ids.1.fields@, @ID.name@, SYMBOL_TYPE_FIELD, 1, @Ids.offset@); + @i @Ids.1.offset@ = @Ids.offset@ + 1; + @} + + | + @{ @i @Ids.fields@ = new_table(); @} + + ; + +Pars: Pars ',' ID + @{ + @i @Pars.pars@ = table_add_param(@Pars.1.pars@, @ID.name@, @Pars.num_pars@); + @i @Pars.num_pars@ = @Pars.1.num_pars@ + 1; + @} + + | ID + @{ + @i @Pars.pars@ = table_add_param(new_table(), @ID.name@, 1); + @i @Pars.num_pars@ = 1; + @} + + ; + +Stats: Stat ';' Stats + @{ + @i @Stat.in_symbols@ = @Stats.symbols@; + @i @Stats.1.symbols@ = @Stat.out_symbols@; + @i @Stats.defined_vars@ = @Stat.defined_vars@ + @Stats.1.defined_vars@; + @i @Stats.1.stack_offset@ = @Stats.stack_offset@ + @Stat.defined_vars@ * 8; + @i @Stats.node@ = new_node(OP_Stats, @Stat.node@, @Stats.1.node@); + @i @Stat.if_in@ = @Stats.if_in@; + @i @Stats.1.if_in@ = @Stat.if_out@; + @i @Stats.if_out@ = @Stats.1.if_out@; + @} + + | + @{ + @i @Stats.node@ = new_leaf(OP_Empty); /* TODO */ + @i @Stats.defined_vars@ = 0; + @i @Stats.if_out@ = @Stats.if_in@; + @} + + ; + +Stat: VAR ID ASSIGN Expr /* Nodes necessary for IF, DO, ... ? */ + @{ + @i @Stat.out_symbols@ = table_add_symbol(clone_table(@Stat.in_symbols@), @ID.name@, SYMBOL_TYPE_VAR, 0, @Stat.stack_offset@); + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Assign, new_named_leaf_value(OP_ID, @ID.name@, @Stat.stack_offset@, -1), @Expr.node@); + @i @Stat.defined_vars@ = 1; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Expr.node@->reg = get_next_reg((char *)NULL, 0); @Stat.node@->reg = @Expr.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | Lexpr ASSIGN Expr + @{ + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Lexpr.symbols@ = @Stat.in_symbols@; + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Assign, @Lexpr.node@, @Expr.node@); + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Lexpr.node@->reg = get_next_reg((char *)NULL, 0); @Expr.node@->reg = get_next_reg(@Lexpr.node@->reg, 0); @Stat.node@->reg = @Expr.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | IF Bool THEN Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_If, @Bool.node@, @Stats.node@); + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Stat.if_out@ = @Stats.if_out@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "if_then%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "if_end%i", @Stats.if_in@); + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz if_end%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("if_end%i:\n", @Stats.if_in@); + @} + + | IF Bool THEN Stats Blubb END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Blubb.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Ifstats, @Stats.node@, @Blubb.node@); + @i @Stat.defined_vars@ = @Stats.defined_vars@ + @Blubb.defined_vars@; + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Blubb.if_in@ = @Stats.if_out@; + @i @Stat.if_out@ = @Blubb.if_out@; + @i @Blubb.if_nr@ = @Stats.if_in@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "if_then%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "if_else%i", @Stats.if_in@); + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz if_else%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("if_end%i:\n", @Stats.if_in@); + @} + + | WHILE Bool DO Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_While, @Bool.node@, @Stats.node@); + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Stat.if_out@ = @Stats.if_out@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "do_enter%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "do_end%i", @Stats.if_in@); + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen printf("do_start%i:\n", @Stats.if_in@); /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz do_end%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("\tjmp do_start%i\ndo_end%i:\n", @Stats.if_in@, @Stats.if_in@); + @} + + | Call + @{ + @i @Call.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + @} + + | RETURN Expr + @{ + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Return, @Expr.node@, (treenode *)NULL); + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Stat.node@->reg = get_next_reg((char *)NULL, 0); @Expr.node@->reg = @Stat.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + ; + +Blubb: ELSE Stats + @{ + @codegen printf("\tjmp if_end%i\nif_else%i:\n", @Blubb.if_nr@, @Blubb.if_nr@); + @} + +Lexpr: ID + @{ + @i @Lexpr.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Lexpr.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Lexpr.symbols@, @ID.name@)->stack_offset, (table_lookup(@Lexpr.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Lexpr.symbols@, @ID.name@)->param_index); + + @check check_variable(@Lexpr.symbols@, @ID.name@); + @} + + | Field + ; + +Expr: '-' Term + @{ + @i @Expr.node@ = new_node(OP_Negation, @Term.node@, (treenode *)NULL); + + @reg @Term.node@->reg = @Expr.node@->reg; + @} + + | Term + @{ @reg @Term.node@->reg = @Expr.node@->reg; @} + + | Term Plusterm + @{ + @i @Expr.node@ = new_node(OP_Addition, @Plusterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Plusterm.immediate@; + + @reg if(!@Plusterm.immediate@) { @Plusterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.node@->reg, @Expr.node@->skip_reg); @Plusterm.node@->skip_reg = 1; } else { @Term.node@->reg = @Expr.node@->reg; @Plusterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + | Term Malterm + @{ + @i @Expr.node@ = new_node(OP_Multiplication, @Malterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Malterm.immediate@; + + @reg if(!@Malterm.immediate@) { @Malterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.node@->reg, @Expr.node@->skip_reg); @Malterm.node@->skip_reg = 1; } else { @Term.node@-> reg = @Expr.node@->reg; @Malterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + ; + +Plusterm: '+' Term Plusterm + @{ + @i @Plusterm.node@ = new_node(OP_Addition, @Plusterm.1.node@, @Term.node@); + @i @Plusterm.immediate@ = @Term.immediate@ && @Plusterm.1.immediate@; + + @reg @Plusterm.1.node@->reg = @Plusterm.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.1.node@->reg, @Plusterm.node@->skip_reg); + @} + + | '+' Term + @{ @reg @Term.node@->reg = @Plusterm.node@->reg; @} + + ; + +Malterm: '*' Term Malterm + @{ + @i @Malterm.node@ = new_node(OP_Multiplication, @Malterm.1.node@, @Term.node@); + @i @Malterm.immediate@ = @Term.immediate@ && @Malterm.1.immediate@; + + @reg @Malterm.1.node@->reg = @Malterm.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.1.node@->reg, @Malterm.node@->skip_reg); + @} + + | '*' Term + @{ @reg @Term.node@->reg = @Malterm.node@->reg; @} + + ; + +Term: '(' Expr ')' + @{ @reg @Expr.node@->reg = @Term.node@->reg; @} + + | ID + @{ + @i @Term.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->stack_offset, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->param_index); + @i @Term.immediate@ = 0; + + @check check_variable(@Term.symbols@, @ID.name@); + @} + + | NUM + @{ + @i @Term.node@ = new_number_leaf(@NUM.value@); + @i @Term.immediate@ = 1; + @} + + | Call + @{ @i @Term.immediate@ = 0; @} + + | Field + @{ + @i @Term.immediate@ = 0; + + @reg @Field.node@->reg = @Term.node@->reg; + @} + + ; + +/* TODO replace by Bool -> Subbool */ +Bool: Bterm + @{ + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 0; + @i @Bterm.negated2@ = 0; + @i @Bool.top_level@ = 1; + @i @Bterm.top_level@ = 1; + + @codegen @revorder(1) if(@Bterm.node@->op!=OP_Disjunction) { printf("\tjmp %s # foo1\n", @Bool.jump_false@); } printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\n%s:\n", @Bool.jump_false@, @Bool.jump_true@); */ + @} + + | Bterm Orterm + @{ + @i @Bool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 0; + @i @Orterm.negated@ = 0; + @i @Bterm.negated2@ = 0; + @i @Orterm.negated2@ = 0; + @e Bterm.jump_true : Bool.negated Bool.jump_true Bool.if_in; if(!@Bool.negated@) { @Bterm.jump_true@ = malloc(100); sprintf(@Bterm.jump_true@, "bool_true%i", @Bool.if_in@); } else { @Bterm.jump_true@ = @Bool.jump_true@; } + @i @Orterm.jump_true@ = @Bterm.jump_true@; + @e Bterm.jump_false : Bool.negated Bool.jump_false Bool.if_in; if(@Bool.negated@) { @Bterm.jump_false@ = malloc(100); sprintf(@Bterm.jump_false@, "bool_false%i", @Bool.if_in@); } else { @Bterm.jump_false@ = @Bool.jump_false@; } + @i @Orterm.jump_false@ = @Bterm.jump_false@; + @i @Bterm.if_in@ = @Bool.if_in@ + 1; + @i @Orterm.if_in@ = @Bterm.if_out@; + @i @Bool.if_out@ = @Orterm.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.top_level@ = 0; + @i @Bool.top_level@ = 1; + + @reg @Bterm.node@->reg = @Bool.node@->reg; @Orterm.node@->reg = @Bool.node@->reg; + + @codegen @revorder(1) printf("\tjmp %s # foo2\n", @Bool.jump_false@); printf(@Bool.negated@ ? "bool_false%i:\n" : "bool_true%i:\n", @Bool.if_in@); printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\n%s:\n", @Bool.jump_false@, @Bool.jump_true@); */ + @} + + | NOT Bterm + @{ + @i @Bool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); + @i @Bterm.jump_true@ = @Bool.jump_true@; + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 1; + @i @Bterm.negated2@ = 1; + @i @Bterm.top_level@ = 0; + @i @Bool.top_level@ = 1; + + @reg @Bterm.node@-> reg = @Bool.node@->reg; + + @codegen @revorder(1) if(@Bterm.node@->op!=OP_Not) { printf("\tjmp %s # foo3\n", @Bool.jump_false@); } printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\nnot_break%i:\n\tjmp %s\n%s:\n", @Bool.jump_true@, 0, @Bool.jump_false@, @Bool.jump_true@); */ + @} + + ; + +Subbool: Bterm + @{ + @i @Bterm.negated@ = @Subbool.negated@; + @i @Bterm.negated2@ = @Subbool.negated2@; + @i @Bterm.top_level@ = @Subbool.top_level@; + @codegen @revorder(1) /* printf("\tjmp %s\n%s:\n", @Subbool.jump_false@, @Subbool.jump_true@); */ + @} + + | Bterm Orterm + @{ + @i @Subbool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); + @i @Bterm.negated@ = @Subbool.negated@; + @i @Orterm.negated@ = @Subbool.negated@; + @i @Bterm.negated2@ = 0; + @i @Orterm.negated2@ = 0; + @e Bterm.jump_true : Subbool.negated Subbool.negated2 Subbool.jump_true Subbool.if_in; if(!@Subbool.negated@ && @Subbool.negated2@) { @Bterm.jump_true@ = malloc(100); sprintf(@Bterm.jump_true@, "bool_true%i", @Subbool.if_in@); } else { @Bterm.jump_true@ = @Subbool.jump_true@; } + @i @Orterm.jump_true@ = @Bterm.jump_true@; + @e Bterm.jump_false : Subbool.negated Subbool.negated2 Subbool.jump_false Subbool.if_in; if(@Subbool.negated@ && @Subbool.negated2@) { @Bterm.jump_false@ = malloc(100); sprintf(@Bterm.jump_false@, "bool_false%i", @Subbool.if_in@); } else { @Bterm.jump_false@ = @Subbool.jump_false@; } + @i @Orterm.jump_false@ = @Bterm.jump_false@; + @i @Bterm.if_in@ = @Subbool.if_in@ + 1; + @i @Orterm.if_in@ = @Bterm.if_out@; + @i @Subbool.if_out@ = @Orterm.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.top_level@ = 0; + @reg @Bterm.node@->reg = @Subbool.node@->reg; @Orterm.node@->reg = @Subbool.node@->reg; + + @codegen @revorder(1) /* TODO output if on top level */ if(@Subbool.negated2@ || @Subbool.top_level@) { printf("\tjmp %s # foo4\n", @Subbool.negated2@ ? @Subbool.jump_true@ : @Subbool.jump_false@); } printf(!@Subbool.negated@ ? "bool_true%i:\n" : "bool_false%i:\n", @Subbool.if_in@); /* printf("\tjmp %s\n# %s:\n", @Subbool.jump_true@, @Subbool.jump_true@); */ + @} + + | NOT Bterm + @{ + @i @Subbool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); + @i @Bterm.jump_true@ = @Subbool.jump_true@; + @i @Bterm.negated@ = 1 - @Subbool.negated@; + @i @Bterm.negated2@ = 1 - @Subbool.negated2@; + @i @Bterm.top_level@ = 0; + + @reg @Bterm.node@-> reg = @Subbool.node@->reg; /* printf("%s, %s\n", @Bterm.jump_true@, @Subbool.jump_false@); */ + + @codegen @revorder(1) printf("# !!\n"); if(@Subbool.negated2@ || @Subbool.top_level@) { printf("\tjmp %s # foo9\n", @Subbool.negated2@ ? @Subbool.jump_false@ : @Subbool.jump_false@); } /* printf("\tjmp %s\nnot_break%i:\n", @Subbool.negated@ ? @Bterm.jump_true@ : @Subbool.jump_false@, 0); printf("\tjmp %s\n%s:\n", @Subbool.jump_false@, @Subbool.jump_true@); */ + @} + + ; + + +Orterm: OR Bterm Orterm + @{ + @i @Orterm.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.1.node@); + @i @Bterm.negated@ = @Orterm.negated@; + @i @Orterm.1.negated@ = @Orterm.negated@; + @i @Bterm.negated2@ = 0; + @i @Orterm.1.negated2@ = 0; + @i @Orterm.1.if_in@ = @Bterm.if_out@; + @i @Orterm.if_out@ = @Orterm.1.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.1.top_level@ = 0; + + @reg @Bterm.node@->reg = @Orterm.node@->reg; @Orterm.1.node@->reg = @Orterm.node@->reg; + @} + + | OR Bterm + @{ + @i @Bterm.negated@ = @Orterm.negated@; + @i @Bterm.negated2@ = @Orterm.negated2@; + @i @Bterm.top_level@ = 0; + @} + + ; + +Bterm: Term GREATER Term + @{ + @i @Bterm.node@ = new_node(OP_Greater, @Term.node@, @Term.1.node@); + @i @Bterm.if_out@ = @Bterm.if_in@; + + @reg @Term.node@->reg = @Bterm.node@->reg; @Term.1.node@->reg = get_next_reg(@Bterm.node@->reg, 0); + + @codegen /* write_tree(@Term.node@, 0); */ burm_label(@Term.node@); burm_reduce(@Term.node@, 1); /* write_tree(@Term.1.node@, 0); */ burm_label(@Term.1.node@); burm_reduce(@Term.1.node@, 1); printf(@Bterm.negated2@ ? "\tcmp %%%s, %%%s\n\tjs %s # %s %s %i %i\n" : "\tcmp %%%s, %%%s\n\tjns %s # %s %s %i %i\n", @Term.1.node@->reg, @Term.node@->reg, ((@Bterm.negated2@ ^ @Bterm.negated@)) ? @Bterm.jump_false@ : @Bterm.jump_true@, @Bterm.jump_true@, @Bterm.jump_false@, @Bterm.negated2@, @Bterm.negated@); + @} + + | Term '=' Term + @{ + @i @Bterm.node@ = new_node(OP_Equal, @Term.node@, @Term.1.node@); + @i @Bterm.if_out@ = @Bterm.if_in@; + + @reg @Term.node@->reg = @Bterm.node@->reg; @Term.1.node@->reg = get_next_reg(@Bterm.node@->reg, 0); + + @codegen /* write_tree(@Term.node@, 0); */ burm_label(@Term.node@); burm_reduce(@Term.node@, 1); /* write_tree(@Term.1.node@, 0); */ burm_label(@Term.1.node@); burm_reduce(@Term.1.node@, 1); printf(@Bterm.negated2@ ? "\tcmp %%%s, %%%s\n\tjnz %s # %s %s %i %i\n" : "\tcmp %%%s, %%%s\n\tjz %s # %s %s %i %i\n", @Term.node@->reg, @Term.1.node@->reg, ((@Bterm.negated2@ ^ @Bterm.negated@)) ? @Bterm.jump_false@ : @Bterm.jump_true@, @Bterm.jump_true@, @Bterm.jump_false@, @Bterm.negated2@, @Bterm.negated@); + @} + + | '(' Subbool ')' + @{ + @i @Subbool.negated@ = @Bterm.negated@; + @i @Subbool.negated2@ = @Bterm.negated2@; + @i @Subbool.top_level@ = @Bterm.top_level@; + @} + + ; + +Field: Term '.' ID + @{ + @i @Field.node@ = new_node_value(OP_Field, @Term.node@, new_named_leaf(OP_ID, @ID.name@), table_lookup(@Field.symbols@, @ID.name@)==(struct symbol_t *)NULL ? 0 : table_lookup(@Field.symbols@, @ID.name@)->stack_offset, -1); + + @check check_field(@Field.symbols@, @ID.name@); + + @reg @Term.node@->reg = @Field.node@->reg; @Field.node@->kids[1]->reg = get_next_reg(@Field.node@->reg, 0); + @} + + ; + +Call: ID '(' Exprs ')' + @{ @i @Call.node@ = new_node(OP_Call, new_named_leaf(OP_ID, @ID.name@), @Exprs.node@); @} + + | ID '(' ')' + @{ @i @Call.node@ = new_node(OP_Call, new_named_leaf(OP_ID, @ID.name@), NULL); @} + + ; + +Exprs: Expr + | Exprs ',' Expr + @{ @i @Exprs.node@ = new_node(OP_Exprs, @Exprs.1.node@, @Expr.node@); @} + + ; + +%% + +extern int yylex(); +extern int yylineno; + +int yyerror(char *error_text) { + fprintf(stderr,"Line %i: %s\n",yylineno, error_text); + exit(2); +} + +int main(int argc, char **argv) { + yyparse(); + return 0; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/scanner.lex b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/scanner.lex new file mode 100644 index 0000000..5cf6520 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/scanner.lex @@ -0,0 +1,67 @@ + #include + #include + #include + #include "parser.h" + #include "tree.h" + +KEYWORD func|end|struct|var|if|then|else|while|do|return|or|not +IDENTIFIER [[:alpha:]_][[:alnum:]_]* +NUMBER_HEX [0-9][0-9A-Fa-f]*H +NUMBER_DEC [0-9]+ +WHITESPACE [\t\n\r ] +COMMENT_START \(\* +COMMENT_END \*\) + +%x COMMENT +%option yylineno +%% + +{COMMENT_START} BEGIN(COMMENT); + +{COMMENT_END} BEGIN(INITIAL); + +{COMMENT_START} fprintf(stderr, "Possibly nested comment on line %i\n", yylineno); + +<> { fprintf(stderr, "Unterminated comment.\n"); exit(1); } + +{WHITESPACE} /* ignore */ + +. /* ignore everything inside comment */ + +func return(FUNC); +end return(END); +struct return(STRUCT); +var return(VAR); +if return(IF); +then return(THEN); +else return(ELSE); +while return(WHILE); +do return(DO); +return return(RETURN); +or return(OR); +not return(NOT); + +{IDENTIFIER} return(ID); @{ @ID.name@=strdup(yytext); @} + +{NUMBER_DEC} return(NUM); @{ @NUM.value@=strtol(yytext,(char **)NULL,10); @} +{NUMBER_HEX} return(NUM); @{ yytext[strlen(yytext)-1]='\0'; @NUM.value@=strtol(yytext,(char **)NULL,16); @} + +\:= return(ASSIGN); +>= return(GREATER); +\; return(';'); +\. return('.'); +\( return('('); +\) return(')'); +\, return(','); +\- return('-'); +\+ return('+'); +\* return('*'); += return('='); + +{WHITESPACE} /* ignore */ + +. { fprintf(stderr, "Lexical error on line %i\n", yylineno); exit(1); } + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/symbol_table.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/symbol_table.c new file mode 100755 index 0000000..bf66a65 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/symbol_table.c @@ -0,0 +1,192 @@ +#include +#include +#include +#include "symbol_table.h" + +struct symbol_t *new_table(void) { + return (struct symbol_t *)NULL; +} + +struct symbol_t *clone_table(struct symbol_t *table) { + struct symbol_t *element; + struct symbol_t *new_tablex; + + element=table; + new_tablex=new_table(); + while((struct symbol_t *)NULL!=element) { + /* check return value */ + if(element->param_index!=-1) { + new_tablex=table_add_param(new_tablex,element->identifier,element->param_index); + } + else { + new_tablex=table_add_symbol(new_tablex,element->identifier,element->type,0,element->stack_offset); + } + element=element->next; + } + + return new_tablex; +} + +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + if(check) { + fprintf(stderr,"Duplicate field %s.\n",identifier); + exit(3); + } + + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=type; + new_element->stack_offset=stack_offset; + new_element->param_index=-1; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=SYMBOL_TYPE_PARAM; + new_element->param_index=param_index; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + + element=table; + + if((struct symbol_t *)NULL==table) { + return (struct symbol_t *)NULL; + } + + if(strcmp(element->identifier,identifier)==0) { + return element; + } + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + if(strcmp(element->identifier,identifier)==0) { + return element; + } + } + + return (struct symbol_t *)NULL; +} + +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check) { + struct symbol_t *element; + struct symbol_t *new_table=clone_table(table); + + element=to_add; + while(element!=(struct symbol_t *)NULL) { + if(element->param_index!=-1) { + new_table=table_add_param(new_table,element->identifier,element->param_index); + } + else { + new_table=table_add_symbol(new_table,element->identifier,element->type,check,element->stack_offset); + } + element=element->next; + } + + return new_table; +} + +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + struct symbol_t *previous_element; + struct symbol_t *new_element; + + if((struct symbol_t *)NULL==table) { + return table; + } + + previous_element=(struct symbol_t *)NULL; + element=table; + + while((struct symbol_t *)NULL!=element) { + if(strcmp(element->identifier,identifier)==0) { + if((struct symbol_t *)NULL==previous_element) { + new_element=element->next; + } + else { + previous_element->next=element->next; + new_element=table; + } + (void)free(element->identifier); + (void)free(element); + return new_element; + } + previous_element=element; + element=element->next; + } + + return table; +} + +void check_variable(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_VAR && element->type!=SYMBOL_TYPE_PARAM) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + +void check_field(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_FIELD) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/symbol_table.h b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/symbol_table.h new file mode 100755 index 0000000..f8f3687 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/symbol_table.h @@ -0,0 +1,27 @@ +#ifndef SYMBOL_TABLE_H +#define SYMBOL_TABLE_H + +#define SYMBOL_TYPE_FIELD 1 +#define SYMBOL_TYPE_VAR 2 +#define SYMBOL_TYPE_PARAM 3 + +struct symbol_t { + char *identifier; + struct symbol_t *next; + short type; + int stack_offset; + int param_index; /* -1 if not a parameter */ +}; + +struct symbol_t *clone_table(struct symbol_t *table); +struct symbol_t *new_table(void); +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset); +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index); +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier); +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier); +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check); +void check_variable(struct symbol_t *table, char *identifier); +void check_field(struct symbol_t *table, char *identifier); + +#endif /* SYMBOL_TABLE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/test.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/test.c new file mode 100644 index 0000000..6052e59 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/test.c @@ -0,0 +1,187 @@ +#include + +extern long f1(long a); +extern long f2(long a); +extern long f3(long a); +extern long f4(long a); +extern long f5(long a); +extern long f6(long a); +extern long f7(long a); +extern long f8(long a); +extern long f9(long a); +extern long f10(long a); + +extern long g1(long a, long b); +extern long g2(long a, long b); +extern long g3(long a, long b); +extern long g4(long a, long b); +extern long g5(long a, long b); +extern long g6(long a, long b); +extern long g7(long a, long b); +extern long g8(long a, long b); +extern long g9(long a, long b); +extern long g10(long a, long b); +extern long g11(long a, long b); +extern long g12(long a, long b); + +extern long h1(long a, long b, long c, long d); +extern long h2(long a, long b, long c, long d); +extern long h3(long a, long b, long c, long d); +extern long h4(long a, long b, long c, long d); +extern long h5(long a, long b, long c, long d); +extern long h6(long a, long b, long c, long d); +extern long h7(long a, long b, long c, long d); +extern long h8(long a, long b, long c, long d); +extern long h9(long a, long b, long c, long d); +extern long h10(long a, long b, long c, long d); +extern long h11(long a, long b, long c, long d); +extern long h12(long a, long b, long c, long d); +extern long h13(long a, long b, long c, long d); +extern long h14(long a, long b, long c, long d); +extern long h15(long a, long b, long c, long d); +extern long h16(long a, long b, long c, long d); +extern long h17(long a, long b, long c, long d); +extern long h18(long a, long b, long c, long d); +extern long h19(long a, long b, long c, long d); +extern long h20(long a, long b, long c, long d); +extern long h21(long a, long b, long c, long d); +extern long h22(long a, long b, long c, long d); +extern long h23(long a, long b, long c, long d); +extern long h24(long a, long b, long c, long d); + +int check_arg1(char *name, long (*function)(long), long ret0, long ret1, long ret2) { + int ret; + ret=function(0)==ret0 && function(1)==ret1 && function(2)==ret2; + printf("%s: %li/%li, %li/%li, %li/%li - %s\n", name,function(0), ret0, function(1), ret1, function(2), ret2, ret ? "ok" : "FAIL"); + return ret; +} + +int check_arg2(char *name, long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + printf("%s - ", name); + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + printf("%li/%li ", function(a,b),blubb[a][b]); + } + } + printf("- %s\n", ret ? "ok" : "FAIL"); + return ret; +} + +int check_arg4(char *name, long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + printf("%s - ", name); + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + printf("%li/%li ", function(a,b,c,d),blubb[a][b][c][d]); + } + } + } + } + printf("- %s\n", ret ? "ok" : "FAIL"); + return ret; +} + +int main(int argc, char **argv) { + int ret; + + long ret_g1[2][2]={{1,1},{1,0}}; + long ret_g2[2][2]={{1,0},{1,1}}; + long ret_g3[2][2]={{1,1},{0,1}}; + long ret_g4[2][2]={{0,1},{1,1}}; + long ret_g5[2][2]={{0,0},{0,1}}; + long ret_g6[2][2]={{0,1},{0,0}}; + long ret_g7[2][2]={{0,0},{1,0}}; + long ret_g8[2][2]={{1,0},{0,0}}; + long ret_g9[2][2]={{1,1},{1,0}}; + long ret_g10[2][2]={{1,0},{1,1}}; + long ret_g11[2][2]={{1,1},{0,1}}; + long ret_g12[2][2]={{0,1},{1,1}}; + + long ret_h1[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + long ret_h2[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h3[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + long ret_h4[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + long ret_h5[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + + long ret_h6[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h7[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + long ret_h8[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + + long ret_h9[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,1}}}}; + long ret_h10[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,1}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + long ret_h11[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,1}},{{0,0},{0,0}}}}; + long ret_h12[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,1},{0,0}}}}; + long ret_h13[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{1,0}}}}; + long ret_h14[2][2][2][2]={{{{0,0},{0,1}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + long ret_h15[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{1,0},{0,0}}}}; + long ret_h16[2][2][2][2]={{{{1,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + + long ret_h17[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + long ret_h18[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h19[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + long ret_h20[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + long ret_h21[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + + long ret_h22[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h23[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + long ret_h24[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + + ret=check_arg1("f1",f1,0,1,1); + ret&=check_arg1("f2",f2,0,0,1); + ret&=check_arg1("f3",f3,1,0,0); + ret&=check_arg1("f4",f4,0,1,1); + ret&=check_arg1("f5",f5,0,0,1); + ret&=check_arg1("f6",f6,1,0,0); + ret&=check_arg1("f7",f7,0,1,1); + ret&=check_arg1("f8",f8,0,0,1); + ret&=check_arg1("f9",f9,1,1,1); + ret&=check_arg1("f10",f10,1,0,0); + + ret&=check_arg2("g1",g1,ret_g1); + ret&=check_arg2("g2",g2,ret_g2); + ret&=check_arg2("g3",g3,ret_g3); + ret&=check_arg2("g4",g4,ret_g4); + ret&=check_arg2("g5",g5,ret_g5); + ret&=check_arg2("g6",g6,ret_g6); + ret&=check_arg2("g7",g7,ret_g7); + ret&=check_arg2("g8",g8,ret_g8); + ret&=check_arg2("g9",g9,ret_g9); + ret&=check_arg2("g10",g10,ret_g10); + ret&=check_arg2("g11",g11,ret_g11); + ret&=check_arg2("g12",g12,ret_g12); + + ret&=check_arg4("h1",h1,ret_h1); + ret&=check_arg4("h2",h2,ret_h2); + ret&=check_arg4("h3",h3,ret_h3); + ret&=check_arg4("h4",h4,ret_h4); + ret&=check_arg4("h5",h5,ret_h5); + ret&=check_arg4("h6",h6,ret_h6); + ret&=check_arg4("h7",h7,ret_h7); + ret&=check_arg4("h8",h8,ret_h8); + ret&=check_arg4("h9",h9,ret_h9); + ret&=check_arg4("h10",h10,ret_h10); + ret&=check_arg4("h11",h11,ret_h11); + ret&=check_arg4("h12",h12,ret_h12); + ret&=check_arg4("h13",h13,ret_h13); + ret&=check_arg4("h14",h14,ret_h14); + ret&=check_arg4("h15",h15,ret_h15); + ret&=check_arg4("h16",h16,ret_h16); + ret&=check_arg4("h17",h17,ret_h17); + ret&=check_arg4("h18",h18,ret_h18); + ret&=check_arg4("h19",h19,ret_h19); + ret&=check_arg4("h20",h20,ret_h20); + ret&=check_arg4("h21",h21,ret_h21); + ret&=check_arg4("h22",h22,ret_h22); + ret&=check_arg4("h23",h23,ret_h23); + ret&=check_arg4("h24",h24,ret_h24); + + return !ret; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/test.input b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/test.input new file mode 100644 index 0000000..0771e51 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/test.input @@ -0,0 +1,49 @@ +func f1(a) if a=0 then return 0; else return 1; end; end; +func f2(a) if a=0 or a=1 then return 0; else return 1; end; end; +func f3(a) if not (a=0) then return 0; else return 1; end; end; +func f4(a) if (a=0) then return 0; else return 1; end; end; +func f5(a) if (a=0 or a=1) then return 0; else return 1; end; end; +func f6(a) if (not (a=0)) then return 0; else return 1; end; end; +func f7(a) if not (not (a=0)) then return 0; else return 1; end; end; +func f8(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; +func f9(a) if not ((not (a=0)) or (not (a=1))) then return 0; else return 1; end; end; +func f10(a) if (not (not (not (a=0)))) then return 0; else return 1; end; end; + +func g1(a,b) if (a=0 or b=0) then return 1; else return 0; end; end; +func g2(a,b) if ((not (a=0)) or b=0) then return 1; else return 0; end; end; +func g3(a,b) if (a=0 or (not (b=0))) then return 1; else return 0; end; end; +func g4(a,b) if ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; +func g5(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; +func g6(a,b) if not ((not (a=0)) or b=0) then return 1; else return 0; end; end; +func g7(a,b) if not (a=0 or (not (b=0))) then return 1; else return 0; end; end; +func g8(a,b) if not ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; +func g9(a,b) if not (not (a=0 or b=0)) then return 1; else return 0; end; end; +func g10(a,b) if not (not ((not (a=0)) or b=0)) then return 1; else return 0; end; end; +func g11(a,b) if not (not (a=0 or (not (b=0)))) then return 1; else return 0; end; end; +func g12(a,b) if not (not ((not (a=0)) or (not (b=0)))) then return 1; else return 0; end; end; + +func h1(a,b,c,d) if (a=0 or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; +func h2(a,b,c,d) if ((not (a=0)) or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; +func h3(a,b,c,d) if (a=0 or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; +func h4(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or d=0) then return 1; else return 0; end; end; +func h5(a,b,c,d) if (a=0 or b=0) or (c=0 or (not (d=0))) then return 1; else return 0; end; end; +func h6(a,b,c,d) if ((not (a=0)) or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; +func h7(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; +func h8(a,b,c,d) if ((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; +func h9(a,b,c,d) if not ((a=0 or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h10(a,b,c,d) if not (((not (a=0)) or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h11(a,b,c,d) if not ((a=0 or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h12(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or d=0)) then return 1; else return 0; end; end; +func h13(a,b,c,d) if not ((a=0 or b=0) or (c=0 or (not (d=0)))) then return 1; else return 0; end; end; +func h14(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h15(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; +func h16(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; +func h17(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h18(a,b,c,d) if not (not (((not (a=0)) or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h19(a,b,c,d) if not (not ((a=0 or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h20(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or d=0))) then return 1; else return 0; end; end; +func h21(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or (not (d=0))))) then return 1; else return 0; end; end; +func h22(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h23(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; +func h24(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/all-wcprops b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/all-wcprops new file mode 100644 index 0000000..b892dba --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/all-wcprops @@ -0,0 +1,1157 @@ +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases +END +f2.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f2.call +END +g4.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g4.call +END +tiefen.call +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/tiefen.call +END +forumx_06.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forumx_06.3 +END +g11.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g11.0 +END +my_d.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_d.0 +END +h6.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h6.call +END +h13.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h13.0 +END +my_h.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_h.0 +END +negterm1.call +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/negterm1.call +END +h17.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h17.0 +END +my_l.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_l.0 +END +my_a.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_a.call +END +malandro11.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro11.3 +END +malandro15.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro15.3 +END +h13.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h13.call +END +g3.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g3.0 +END +algebran3.call +K 25 +svn:wc:ra_dav:version-url +V 64 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebran3.call +END +fib.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/fib.call +END +g7.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g7.0 +END +parameter6.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter6.call +END +g1.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g1.call +END +h3.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h3.call +END +f7.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f7.call +END +algebra1.call +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebra1.call +END +h22.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h22.0 +END +g9.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g9.call +END +tiefen1.0 +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/tiefen1.0 +END +forum_05.3 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forum_05.3 +END +algebran4.0 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebran4.0 +END +ag_g.3 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/ag_g.3 +END +fib.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/fib.0 +END +malandro03.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro03.3 +END +parameter3.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter3.0 +END +ag_k.3 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/ag_k.3 +END +h10.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h10.call +END +test4.2 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/test4.2 +END +f1.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f1.0 +END +my_f.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_f.call +END +h22.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h22.call +END +malandro07.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro07.3 +END +tiefen1.call +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/tiefen1.call +END +h2.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h2.0 +END +f5.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f5.0 +END +h18.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h18.call +END +h6.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h6.0 +END +f9.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f9.0 +END +parameter3.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter3.call +END +f4.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f4.call +END +my_a.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_a.0 +END +f10.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f10.0 +END +forumx_07.2 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forumx_07.2 +END +g6.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g6.call +END +h10.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h10.0 +END +g12.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g12.0 +END +my_e.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_e.0 +END +h8.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h8.call +END +h14.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h14.0 +END +h18.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h18.0 +END +my_i.3 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_i.3 +END +g10.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g10.call +END +malandro12.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro12.3 +END +my_c.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_c.call +END +malandro16.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro16.3 +END +regfehler.4 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/regfehler.4 +END +h15.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h15.call +END +g4.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g4.0 +END +tiefen.0 +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/tiefen.0 +END +my_k.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_k.call +END +g8.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g8.0 +END +f1.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f1.call +END +negterm1.0 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/negterm1.0 +END +g3.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g3.call +END +h5.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h5.call +END +f9.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f9.call +END +algebran1.0 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebran1.0 +END +h23.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h23.0 +END +forum_06.3 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forum_06.3 +END +ag_h.3 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/ag_h.3 +END +f10.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f10.call +END +test1.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/test1.3 +END +malandro04.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro04.3 +END +parameter4.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter4.0 +END +h12.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h12.call +END +f2.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f2.0 +END +my_h.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_h.call +END +algebran2.call +K 25 +svn:wc:ra_dav:version-url +V 64 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebran2.call +END +h24.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h24.call +END +h3.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h3.0 +END +f6.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f6.0 +END +h7.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h7.0 +END +tiefemax.call +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/tiefemax.call +END +parameter5.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter5.call +END +h2.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h2.call +END +forumx_04.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forumx_04.3 +END +my_b.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_b.0 +END +f6.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f6.call +END +h11.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h11.0 +END +forumx_08.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forumx_08.3 +END +g8.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g8.call +END +my_f.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_f.0 +END +h15.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h15.0 +END +my_j.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_j.0 +END +malandro.3 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro.3 +END +h19.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h19.0 +END +malandro13.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro13.3 +END +g12.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g12.call +END +my_e.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_e.call +END +h21.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h21.call +END +g1.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g1.0 +END +algebra.call +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebra.call +END +h17.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h17.call +END +g5.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g5.0 +END +parameter2.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter2.call +END +g9.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g9.0 +END +f3.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f3.call +END +localx01.3 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/localx01.3 +END +g5.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g5.call +END +h20.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h20.0 +END +h7.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h7.call +END +algebran2.0 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebran2.0 +END +h24.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h24.0 +END +ag_e.3 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/ag_e.3 +END +forum_07.2 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forum_07.2 +END +malandro01.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro01.3 +END +negterm.0 +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/negterm.0 +END +parameter1.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter1.0 +END +ag_i.3 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/ag_i.3 +END +my_b.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_b.call +END +testscriptx03.3 +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/testscriptx03.3 +END +test2.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/test2.3 +END +malandro05.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro05.3 +END +parameter5.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter5.0 +END +f3.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f3.0 +END +h14.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h14.call +END +malandro09.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro09.3 +END +my_j.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_j.call +END +algebran4.call +K 25 +svn:wc:ra_dav:version-url +V 64 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebran4.call +END +h4.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h4.0 +END +f7.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f7.0 +END +h8.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h8.0 +END +g2.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g2.call +END +forumx_05.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forumx_05.3 +END +h4.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h4.call +END +g10.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g10.0 +END +my_c.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_c.0 +END +f8.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f8.call +END +h12.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h12.0 +END +my_g.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_g.0 +END +algebra.0 +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebra.0 +END +local01.3 +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/local01.3 +END +h16.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h16.0 +END +my_k.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_k.0 +END +malandro10.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro10.3 +END +tiefemax.0 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/tiefemax.0 +END +h11.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h11.call +END +malandro14.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro14.3 +END +my_g.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_g.call +END +algebran1.call +K 25 +svn:wc:ra_dav:version-url +V 64 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebran1.call +END +h23.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h23.call +END +g2.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g2.0 +END +g6.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g6.0 +END +h19.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h19.call +END +parameter4.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter4.call +END +h1.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1022/ublu08/codeb/testcases/h1.call +END +f5.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f5.call +END +g7.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g7.call +END +h21.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h21.0 +END +ag_b.3 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/ag_b.3 +END +h9.call +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h9.call +END +forum_04.3 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forum_04.3 +END +algebran3.0 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebran3.0 +END +forum_08.3 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/forum_08.3 +END +malandro02.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro02.3 +END +parameter2.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter2.0 +END +ag_j.3 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/ag_j.3 +END +g11.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/g11.call +END +my_d.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_d.call +END +h20.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h20.call +END +test3.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/test3.3 +END +malandro06.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/malandro06.3 +END +parameter6.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter6.0 +END +h1.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h1.0 +END +f4.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f4.0 +END +h16.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h16.call +END +h5.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h5.0 +END +my_l.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/my_l.call +END +f8.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/f8.0 +END +negterm.call +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/negterm.call +END +parameter1.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/parameter1.call +END +algebra1.0 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1042/ublu08/codeb/testcases/algebra1.0 +END +h9.0 +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/private/!svn/ver/1019/ublu08/codeb/testcases/h9.0 +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/entries b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/entries new file mode 100644 index 0000000..837dfa9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/entries @@ -0,0 +1,2320 @@ +8 + +dir +1019 +http://localhost/svn/private/ublu08/codeb/testcases +http://localhost/svn/private + + + +2008-05-17T18:19:52.308468Z +1019 +paulchen + + +svn:special svn:externals svn:needs-lock + +f2.call +file + + + + +2008-05-17T15:52:09.000000Z +6fdf6778d8fc38ee5ed996403a0beee7 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g4.call +file + + + + +2008-05-17T16:01:46.000000Z +91086753970b73e9bdca217572ac9c8d +2008-05-17T18:19:52.308468Z +1019 +paulchen + +tiefen.call +file +1042 + + + +2008-05-19T17:33:31.000000Z +4e4611a55d42deb5d4d01604659aee3d +2008-05-19T17:34:50.071196Z +1042 +paulchen + +forumx_06.3 +file +1042 + + + +2008-05-19T17:32:49.000000Z +90f2ef946fd9ef28fcf94df027e89e56 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g11.0 +file + + + + +2008-05-17T15:47:39.000000Z +ece252a4a0ec44ce0e3f340b0f3403ec +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_d.0 +file +1042 + + + +2008-05-19T17:33:22.000000Z +edb330d048a07ba2fae79cc04d38a7f1 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h6.call +file + + + + +2008-05-17T18:13:35.000000Z +5e3326d561b87290b4eb674f1303870d +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h13.0 +file + + + + +2008-05-17T15:47:39.000000Z +9cd396fc3339078adcaf75a56ec19156 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_h.0 +file +1042 + + + +2008-05-19T17:33:24.000000Z +24d3908b6b8ece4cc26953a301f0ac98 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +negterm1.call +file +1042 + + + +2008-05-19T17:33:25.000000Z +df277ed55a7f4f87cbef2815c8ac3d67 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h17.0 +file + + + + +2008-05-17T15:47:39.000000Z +3e6ee293496914c5f2096bd0a8550f3c +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_l.0 +file +1042 + + + +2008-05-19T17:33:25.000000Z +c4a82df390b222018ef51ac46566b0a4 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +my_a.call +file +1042 + + + +2008-05-19T17:33:21.000000Z +d8e871df2c202de33d975b0b930ae83c +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro11.3 +file +1042 + + + +2008-05-19T17:33:19.000000Z +01f2397e7770ffe1210363a85e7cbbc2 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro15.3 +file +1042 + + + +2008-05-19T17:33:20.000000Z +d5ee0e5ba80a0bff089d93f5706f7408 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h13.call +file + + + + +2008-05-17T18:14:41.000000Z +8b9ec70cddc4dc5d4a61e6c67e043ae2 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g3.0 +file + + + + +2008-05-17T15:47:39.000000Z +d4145f0545bc34ee767b3ff34657aebd +2008-05-17T18:19:52.308468Z +1019 +paulchen + +algebran3.call +file +1042 + + + +2008-05-19T17:31:21.000000Z +31a43ca0465b0c89a605fdd25d6edefc +2008-05-19T17:34:50.071196Z +1042 +paulchen + +fib.call +file + + + + +2008-05-17T18:18:30.000000Z +e56eb5050edfe853fd96c4a2eca3c749 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g7.0 +file + + + + +2008-05-17T15:47:39.000000Z +85ed1ed1e6f164ffea7ef137d363cb10 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +parameter6.call +file +1042 + + + +2008-05-19T17:33:29.000000Z +1265633d7de6b2d870ae79b1f20041de +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g1.call +file + + + + +2008-05-17T16:01:15.000000Z +53187b9d7adde68a9e5933499c8f922e +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h3.call +file + + + + +2008-05-17T18:13:11.000000Z +c7c83b1c157701d046b33a3a66956187 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f7.call +file + + + + +2008-05-17T15:55:30.000000Z +e8fddc19e3e601f8cc863dc7b144413c +2008-05-17T18:19:52.308468Z +1019 +paulchen + +algebra1.call +file +1042 + + + +2008-05-19T17:31:21.000000Z +cddcdc6d33203e7c02204531c0c5aa1d +2008-05-19T17:34:50.071196Z +1042 +paulchen + +tiefen1.0 +file +1042 + + + +2008-05-19T17:33:31.000000Z +20468ca960f31ebc7c20ccfade82a914 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h22.0 +file + + + + +2008-05-17T15:47:40.000000Z +374eb9995cbdb04b5220807a5a3f87b9 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g9.call +file + + + + +2008-05-17T16:02:21.000000Z +c8351778328bd6445197f503b8139d17 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +forum_05.3 +file +1042 + + + +2008-05-19T17:32:47.000000Z +ec3a03b9d419323173761bfd14e4a342 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +algebran4.0 +file +1042 + + + +2008-05-19T17:31:22.000000Z +e38a1ef87d78932d67c67aa84e1ccf75 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +fib.0 +file + + + + +2008-05-17T18:18:00.000000Z +b968dfc49c1042155cf7df90e7f8e5ad +2008-05-17T18:19:52.308468Z +1019 +paulchen + +ag_g.3 +file +1042 + + + +2008-05-19T17:31:20.000000Z +20534b17025920c73825550fb87ce080 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +parameter3.0 +file +1042 + + + +2008-05-19T17:33:27.000000Z +a84451fa9cf4a391d17e8644f8178316 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro03.3 +file +1042 + + + +2008-05-19T17:33:17.000000Z +44d577a75f88e2050610bfdfbd14c6be +2008-05-19T17:34:50.071196Z +1042 +paulchen + +ag_k.3 +file +1042 + + + +2008-05-19T17:31:20.000000Z +e65008728ffa41f53928dffb28f6c94b +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h10.call +file + + + + +2008-05-17T18:14:08.000000Z +2c485b4998bfadced17db390161a05bb +2008-05-17T18:19:52.308468Z +1019 +paulchen + +test4.2 +file +1042 + + + +2008-05-19T17:33:30.000000Z +261f08f201d000da065a3b6e0e4fe522 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +my_f.call +file +1042 + + + +2008-05-19T17:33:23.000000Z +0a039d15f089d3b7e1e83741ad4fcf00 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +f1.0 +file + + + + +2008-05-17T15:47:39.000000Z +d00a3189324e0dc908bc4c9ca337b874 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h22.call +file + + + + +2008-05-17T18:16:19.000000Z +a6ffd7bcd611b80ef7dc135af39112c1 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +malandro07.3 +file +1042 + + + +2008-05-19T17:33:18.000000Z +c7d7f7ab7fc7362e4f89df7180f12e63 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +tiefen1.call +file +1042 + + + +2008-05-19T17:33:31.000000Z +267076ac0db282a9e63d3da134d02ac5 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h2.0 +file + + + + +2008-05-17T15:47:40.000000Z +35959e8c523c6f4174e6b55ab6b4c8c5 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f5.0 +file + + + + +2008-05-17T15:47:39.000000Z +569ee2be6fb5c62ef86cd3629cac5f3f +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h18.call +file + + + + +2008-05-17T18:15:47.000000Z +a9a81170498be8f908b88064fd921651 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h6.0 +file + + + + +2008-05-17T15:47:40.000000Z +6278e991fa97d2fe44a6b667bf5ce8ce +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f9.0 +file + + + + +2008-05-17T15:47:39.000000Z +cacb3a1b2234ad40bb5845121342ecc5 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +parameter3.call +file +1042 + + + +2008-05-19T17:33:27.000000Z +b83655ced953bc57f27e16d99a375090 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +f4.call +file + + + + +2008-05-17T15:55:14.000000Z +86cb296fb35261183e0b7cb47da376ac +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_a.0 +file +1042 + + + +2008-05-19T17:33:21.000000Z +3bffa81589a4257a11d417591113c422 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +f10.0 +file + + + + +2008-05-17T15:47:39.000000Z +2279bf66cdd77b388d7891edd286797c +2008-05-17T18:19:52.308468Z +1019 +paulchen + +forumx_07.2 +file +1042 + + + +2008-05-19T17:32:49.000000Z +2eff768369bb8c5041b9f7d6472e6c09 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g6.call +file + + + + +2008-05-17T16:02:02.000000Z +194d639fa1d782d72d1c44fc2078f323 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h10.0 +file + + + + +2008-05-17T15:47:39.000000Z +920dd8ceaaccf2467646b2131bb4cbe8 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g12.0 +file + + + + +2008-05-17T15:47:39.000000Z +06094e77abc9ec03ec903a3e24e6b665 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_e.0 +file +1042 + + + +2008-05-19T17:33:23.000000Z +8bb24c7ef08877bec6d85c61c7f11486 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h8.call +file + + + + +2008-05-17T18:13:51.000000Z +ddca9b6763b65ae5d4446c3ce803a4a0 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h14.0 +file + + + + +2008-05-17T15:47:39.000000Z +60bf3f187d9a1dbbb3a2465912fe3051 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h18.0 +file + + + + +2008-05-17T15:47:40.000000Z +9c1ecac2a855e2fa6a5e099d7785a7c9 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_i.3 +file +1042 + + + +2008-05-19T17:33:24.000000Z +87e2ed0079b335710ad819a032522b7f +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g10.call +file + + + + +2008-05-17T16:02:56.000000Z +771617f03dfcc89cecf5527b6598eb51 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +malandro12.3 +file +1042 + + + +2008-05-19T17:33:20.000000Z +aa0e79272f940413edf4d665c6bf1b13 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +my_c.call +file +1042 + + + +2008-05-19T17:33:22.000000Z +8b6e3530f1036c37b21714cbdabc01c2 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro16.3 +file +1042 + + + +2008-05-19T17:33:20.000000Z +dd6cb8db3847a3b5b61dd7472759e41e +2008-05-19T17:34:50.071196Z +1042 +paulchen + +regfehler.4 +file +1042 + + + +2008-05-19T17:33:29.000000Z +05069199bbd9dcebcc33a29331a5ad2e +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h15.call +file + + + + +2008-05-17T18:14:59.000000Z +6b6c982647c1a7f22e564dd174368033 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g4.0 +file + + + + +2008-05-17T15:47:39.000000Z +9034560365c27619e90055b4da8e5372 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +tiefen.0 +file +1042 + + + +2008-05-19T17:33:31.000000Z +894857a81390988f155cfc843435b294 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +my_k.call +file +1042 + + + +2008-05-19T17:33:24.000000Z +865f8ec640f631c4f6402456858abdca +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g8.0 +file + + + + +2008-05-17T15:47:39.000000Z +fe8d7c2e7823e6bdd1c8fc28605bd9f2 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f1.call +file + + + + +2008-05-17T15:54:59.000000Z +53fc6b9768c09b7c293a1be97bccbbc8 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +negterm1.0 +file +1042 + + + +2008-05-19T17:33:25.000000Z +1988fa90318ee8b68449221ce78c241b +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g3.call +file + + + + +2008-05-17T16:01:37.000000Z +e24b4fb290f801e18a3bf96d00461914 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h5.call +file + + + + +2008-05-17T18:13:27.000000Z +d592a3082cc9d79acd5c6156405522e0 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f9.call +file + + + + +2008-05-17T15:55:40.000000Z +9450201506a4516e5e1b1c9fda7c9bab +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h23.0 +file + + + + +2008-05-17T15:47:40.000000Z +f2dc8cde2ccfc3b28c646d065432a62a +2008-05-17T18:19:52.308468Z +1019 +paulchen + +algebran1.0 +file +1042 + + + +2008-05-19T17:31:21.000000Z +690865c2dd5b4b91db769c1da6d25140 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +forum_06.3 +file +1042 + + + +2008-05-19T17:32:48.000000Z +90f2ef946fd9ef28fcf94df027e89e56 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +ag_h.3 +file +1042 + + + +2008-05-19T17:31:20.000000Z +650875eb5a2f896670989d5eb855cb15 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +f10.call +file + + + + +2008-05-17T15:55:45.000000Z +f01c2a5bfad5e7cbe354daa82f38bf67 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +test1.3 +file +1042 + + + +2008-05-19T17:33:29.000000Z +cf01830ebe0eea03c1eaa4b62661d921 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro04.3 +file +1042 + + + +2008-05-19T17:33:17.000000Z +2d2e211032ee1340a92a0c1047c6118b +2008-05-19T17:34:50.071196Z +1042 +paulchen + +parameter4.0 +file +1042 + + + +2008-05-19T17:33:28.000000Z +ad9b196b5359debf25e96b7d89594a10 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h12.call +file + + + + +2008-05-17T18:14:31.000000Z +6215af599791dd3c552445d220889a9a +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f2.0 +file + + + + +2008-05-17T15:47:39.000000Z +29979069993c3662a4e9ddde5923a4b4 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_h.call +file +1042 + + + +2008-05-19T17:33:24.000000Z +e089414c1c9493efaa9df2ee7a9c5fca +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h24.call +file + + + + +2008-05-17T18:16:31.000000Z +dfb11c2012a60887f5f3be302c327154 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +algebran2.call +file +1042 + + + +2008-05-19T17:31:21.000000Z +b9bdb8dfee8630bde64f5e468a27ab83 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h3.0 +file + + + + +2008-05-17T15:47:40.000000Z +40c8a6988c2d1e144c1925fe9c5f5656 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f6.0 +file + + + + +2008-05-17T15:47:39.000000Z +ff8ef2815c929123b8b399719f7d74f9 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +tiefemax.call +file +1042 + + + +2008-05-19T17:33:31.000000Z +89db20d22c0c8952c78b02832a1d6890 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h7.0 +file + + + + +2008-05-17T15:47:40.000000Z +0e9afe918174f0bc89b1808f03e33c05 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +parameter5.call +file +1042 + + + +2008-05-19T17:33:29.000000Z +ec07056887a720babfb611b28d880856 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h2.call +file + + + + +2008-05-17T18:13:01.000000Z +822191cbe70a0099adee9b3f9e2c86d8 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_b.0 +file +1042 + + + +2008-05-19T17:33:21.000000Z +a146ace45773876d04625ec0ff58a056 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +forumx_04.3 +file +1042 + + + +2008-05-19T17:32:48.000000Z +53d9c7e2e53e504ed29147e475c198ca +2008-05-19T17:34:50.071196Z +1042 +paulchen + +f6.call +file + + + + +2008-05-17T15:55:25.000000Z +b2fa8363b75b105954deedddefba509f +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h11.0 +file + + + + +2008-05-17T15:47:39.000000Z +dff54389b093db24b8108199477d278c +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_f.0 +file +1042 + + + +2008-05-19T17:33:23.000000Z +0651ad5f3f0b89ff295418768ee0f9b9 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +forumx_08.3 +file +1042 + + + +2008-05-19T17:32:50.000000Z +79467ccded17f71ad439c95f808fcc2b +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g8.call +file + + + + +2008-05-17T16:02:15.000000Z +563ca6eb8935a8ea48110d8fe29569c1 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h15.0 +file + + + + +2008-05-17T15:47:39.000000Z +c80e471f2847784226fc2037a551dcd4 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_j.0 +file +1042 + + + +2008-05-19T17:33:24.000000Z +1ca4a232bb8d070c35c51fcaeb343760 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro.3 +file +1042 + + + +2008-05-19T17:33:21.000000Z +841850e2a940609318a3b8cfbcea5ae6 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h19.0 +file + + + + +2008-05-17T15:47:40.000000Z +c61fd976033fc4e9663e7e918282db3e +2008-05-17T18:19:52.308468Z +1019 +paulchen + +malandro13.3 +file +1042 + + + +2008-05-19T17:33:20.000000Z +65c411aa64afeeff2977743f66888419 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g12.call +file + + + + +2008-05-17T16:03:24.000000Z +453b2d8fe412acc52b23bc2508816687 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_e.call +file +1042 + + + +2008-05-19T17:33:23.000000Z +aadf182e68032bd4d62184ec98f22f96 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h21.call +file + + + + +2008-05-17T18:16:13.000000Z +c69e8ba6d274d469dd2633b623f4f2c9 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g1.0 +file + + + + +2008-05-17T15:47:39.000000Z +82a9ac30d92f5afc92769af75534e5ce +2008-05-17T18:19:52.308468Z +1019 +paulchen + +algebra.call +file +1042 + + + +2008-05-19T17:31:21.000000Z +3017bb3923bd9e6e82471364aaa815b5 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h17.call +file + + + + +2008-05-17T18:15:18.000000Z +53dfbeab7dcdad7ba8b38eccd01fa8ca +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g5.0 +file + + + + +2008-05-17T15:47:39.000000Z +8aef877a7ce8f2b3b26fd597d526b14c +2008-05-17T18:19:52.308468Z +1019 +paulchen + +parameter2.call +file +1042 + + + +2008-05-19T17:33:26.000000Z +e7d734676b659257758b46640ed1edbe +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g9.0 +file + + + + +2008-05-17T15:47:39.000000Z +2bf1172b55d9c98b19fc64ebf4ef5013 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f3.call +file + + + + +2008-05-17T15:56:50.000000Z +9f74f6b9a2f2bb52089896cfd60dd342 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +localx01.3 +file +1042 + + + +2008-05-19T17:33:15.000000Z +dca62f2af71a71eb7ed4e232e530befc +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g5.call +file + + + + +2008-05-17T16:01:55.000000Z +fea54a4aeac466fba2b371477119ade2 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h20.0 +file + + + + +2008-05-17T15:47:40.000000Z +31285e1e83984533b1a302c077efb47d +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h7.call +file + + + + +2008-05-17T18:13:44.000000Z +6e1158562af63768dd7619dc10803233 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h24.0 +file + + + + +2008-05-17T15:47:40.000000Z +6fe5899c44e3d873842fdc4e62f5bda2 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +algebran2.0 +file +1042 + + + +2008-05-19T17:31:21.000000Z +6f66742e13551edc693253c2fab30c31 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +ag_e.3 +file +1042 + + + +2008-05-19T17:31:20.000000Z +3c2167748f53462c0b1db85d36117cab +2008-05-19T17:34:50.071196Z +1042 +paulchen + +forum_07.2 +file +1042 + + + +2008-05-19T17:32:48.000000Z +2eff768369bb8c5041b9f7d6472e6c09 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro01.3 +file +1042 + + + +2008-05-19T17:33:16.000000Z +8d38fe618dc92f98cbddb87c0819c8cb +2008-05-19T17:34:50.071196Z +1042 +paulchen + +negterm.0 +file +1042 + + + +2008-05-19T17:33:25.000000Z +1988fa90318ee8b68449221ce78c241b +2008-05-19T17:34:50.071196Z +1042 +paulchen + +parameter1.0 +file +1042 + + + +2008-05-19T17:33:26.000000Z +1261f0301022d7e1842bc892c067907e +2008-05-19T17:34:50.071196Z +1042 +paulchen + +ag_i.3 +file +1042 + + + +2008-05-19T17:31:20.000000Z +e7c3efc4c07c5fd29267e8dd51cc3837 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +my_b.call +file +1042 + + + +2008-05-19T17:33:22.000000Z +cf8ce2070e9a5e0209f878697a46df1b +2008-05-19T17:34:50.071196Z +1042 +paulchen + +testscriptx03.3 +file +1042 + + + +2008-05-19T17:33:30.000000Z +d2168be28160d4fef8250aa5fd68cfe1 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +test2.3 +file +1042 + + + +2008-05-19T17:33:30.000000Z +00abfc26a30c3aab6fc57a21d46ceb2b +2008-05-19T17:34:50.071196Z +1042 +paulchen + +parameter5.0 +file +1042 + + + +2008-05-19T17:33:28.000000Z +5486f00b73c73fe463a8eed28381154c +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro05.3 +file +1042 + + + +2008-05-19T17:33:18.000000Z +1de8dca763ece7a0cee3a5089cf76270 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +f3.0 +file + + + + +2008-05-17T15:47:39.000000Z +775d933d70fbc9bf5b376ab7c7ff27a7 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h14.call +file + + + + +2008-05-17T18:14:50.000000Z +fbad72a47632903211179624698f35d1 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +malandro09.3 +file +1042 + + + +2008-05-19T17:33:19.000000Z +0609d00302341b6cf4740d436bb87ad0 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +my_j.call +file +1042 + + + +2008-05-19T17:33:24.000000Z +1be4fc525da884e37231e897d8df9153 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h4.0 +file + + + + +2008-05-17T15:47:40.000000Z +4426579c1fb1c0be99974b7118572ab1 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +algebran4.call +file +1042 + + + +2008-05-19T17:31:22.000000Z +1bbb58f1e36e4916cd12fb28254a749e +2008-05-19T17:34:50.071196Z +1042 +paulchen + +f7.0 +file + + + + +2008-05-17T15:47:39.000000Z +3dc7d7476bc4d0b46d5fb184022adb52 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h8.0 +file + + + + +2008-05-17T15:47:40.000000Z +7fc0ad824e5fd175879cf626dd56f0dc +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g2.call +file + + + + +2008-05-17T16:01:27.000000Z +b445b24b77fdf47000fc1a23d9471e8c +2008-05-17T18:19:52.308468Z +1019 +paulchen + +forumx_05.3 +file +1042 + + + +2008-05-19T17:32:49.000000Z +e8e353ae2a690dc40e3de8029c7543cb +2008-05-19T17:34:50.071196Z +1042 +paulchen + +my_c.0 +file +1042 + + + +2008-05-19T17:33:22.000000Z +b4d20db97a644172a90852ab1de2188b +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h4.call +file + + + + +2008-05-17T18:13:17.000000Z +031adf99ed7c33e89db84c87a4392f69 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g10.0 +file + + + + +2008-05-17T15:47:39.000000Z +02cf0f938b64a2e5a50835b4d707b4b1 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f8.call +file + + + + +2008-05-17T15:55:35.000000Z +b6e9fa907dbb258fad6cead558e7f9df +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h12.0 +file + + + + +2008-05-17T15:47:39.000000Z +34605d216eab69393ba1ead08a982d22 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_g.0 +file +1042 + + + +2008-05-19T17:33:24.000000Z +733f1c17fd48c5ceb9a8195302a25c7e +2008-05-19T17:34:50.071196Z +1042 +paulchen + +algebra.0 +file +1042 + + + +2008-05-19T17:31:20.000000Z +717629790b90ca013c291ef1bb3a95a0 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +local01.3 +file +1042 + + + +2008-05-19T17:33:14.000000Z +dca62f2af71a71eb7ed4e232e530befc +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h16.0 +file + + + + +2008-05-17T15:47:39.000000Z +566b21ab8cab3072352b9e18a4ed3fed +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_k.0 +file +1042 + + + +2008-05-19T17:33:24.000000Z +debe02b8fb99a1b6c2bcb67b01cb6239 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro10.3 +file +1042 + + + +2008-05-19T17:33:19.000000Z +b3b87392dfb554fa731b5e109e83717d +2008-05-19T17:34:50.071196Z +1042 +paulchen + +tiefemax.0 +file +1042 + + + +2008-05-19T17:33:31.000000Z +6d11b557ca68eb04e5c719a4545b8c04 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h11.call +file + + + + +2008-05-17T18:14:18.000000Z +aa4a6c331e36040999fdc6091a86de53 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +malandro14.3 +file +1042 + + + +2008-05-19T17:33:20.000000Z +cdf5c8269940d7e8c2728eab2f130ddf +2008-05-19T17:34:50.071196Z +1042 +paulchen + +my_g.call +file +1042 + + + +2008-05-19T17:33:24.000000Z +a825f985690e62f5e01807e59c4c7482 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h23.call +file + + + + +2008-05-17T18:16:26.000000Z +c51b55fe9488292f6a77ea71d4d4aecb +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g2.0 +file + + + + +2008-05-17T15:47:39.000000Z +5e8c78dd741ff50ea614da54efa537b6 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +algebran1.call +file +1042 + + + +2008-05-19T17:31:21.000000Z +b63ea91bf59174863748baf043bf7ad6 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g6.0 +file + + + + +2008-05-17T15:47:39.000000Z +5ab93cfbb449b62c2cd53515f9df4be3 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h19.call +file + + + + +2008-05-17T18:15:58.000000Z +4406ad63d0375889d65f96ed4e97d39b +2008-05-17T18:19:52.308468Z +1019 +paulchen + +parameter4.call +file +1042 + + + +2008-05-19T17:33:28.000000Z +3f3ffcf35a86b82feb72cdd985ca1e1f +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h1.call +file +1022 + + + +2008-05-17T18:33:40.000000Z +be6040170888395b1ae70ab05a943484 +2008-05-17T18:33:50.153407Z +1022 +paulchen + +f5.call +file + + + + +2008-05-17T15:55:21.000000Z +8ff3de3a86a2bf00b8c8785e39034592 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +g7.call +file + + + + +2008-05-17T16:02:09.000000Z +a6393c3b308f83f522919b795b69b1cd +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h21.0 +file + + + + +2008-05-17T15:47:40.000000Z +26f0e09fdf5c2ca9f2ec6444d21a68c8 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +ag_b.3 +file +1042 + + + +2008-05-19T17:31:20.000000Z +32a248c9ddfc007209d982212d49f258 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h9.call +file + + + + +2008-05-17T18:13:58.000000Z +1be02f3e94466102b74b448d10ec04ba +2008-05-17T18:19:52.308468Z +1019 +paulchen + +forum_04.3 +file +1042 + + + +2008-05-19T17:32:47.000000Z +d83d32ffa882e4ec405476b4f6adcd3e +2008-05-19T17:34:50.071196Z +1042 +paulchen + +algebran3.0 +file +1042 + + + +2008-05-19T17:31:21.000000Z +b1363161ef4a8deedb9ed90241d931d8 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro02.3 +file +1042 + + + +2008-05-19T17:33:17.000000Z +945b02b282475aeffab4cd808c0b878c +2008-05-19T17:34:50.071196Z +1042 +paulchen + +forum_08.3 +file +1042 + + + +2008-05-19T17:32:48.000000Z +c613ec3ddb7ac662168c2b225a0b3297 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +parameter2.0 +file +1042 + + + +2008-05-19T17:33:26.000000Z +549d406f0bafaf114784f2be8988aab0 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +ag_j.3 +file +1042 + + + +2008-05-19T17:31:20.000000Z +d6e7caf90136e29dd91e2c7d1c93f93a +2008-05-19T17:34:50.071196Z +1042 +paulchen + +g11.call +file + + + + +2008-05-17T16:03:11.000000Z +d0ff54d3ff20c20e847a49f57c771142 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_d.call +file +1042 + + + +2008-05-19T17:33:22.000000Z +7dc483abb732b281b49edee6cdcbc30d +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h20.call +file + + + + +2008-05-17T18:16:06.000000Z +521a7a78c92ca8cf48afffe8360e44c3 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +test3.3 +file +1042 + + + +2008-05-19T17:33:30.000000Z +47c8c25fbe3227587a7f10ef1937af2c +2008-05-19T17:34:50.071196Z +1042 +paulchen + +malandro06.3 +file +1042 + + + +2008-05-19T17:33:18.000000Z +c568b31541a0c2fc3d705a83ae0d48b2 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +parameter6.0 +file +1042 + + + +2008-05-19T17:33:29.000000Z +d8e483e11fd68ef30c00164967a3a084 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h1.0 +file + + + + +2008-05-17T15:47:39.000000Z +7ba7182884f0c9d735e9faaac7dfc7f1 +2008-05-17T18:19:52.308468Z +1019 +paulchen + +f4.0 +file + + + + +2008-05-17T15:47:39.000000Z +9184146efc94eceb80f1041fa1d276ce +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h16.call +file + + + + +2008-05-17T18:15:09.000000Z +0653628e8d663327ddff45fd4eab19ee +2008-05-17T18:19:52.308468Z +1019 +paulchen + +h5.0 +file + + + + +2008-05-17T15:47:40.000000Z +84f8654c81a880f99dc7e3f55b9081ad +2008-05-17T18:19:52.308468Z +1019 +paulchen + +my_l.call +file +1042 + + + +2008-05-19T17:33:25.000000Z +bccf20fd3bc6ceb1985ed3b2573f103d +2008-05-19T17:34:50.071196Z +1042 +paulchen + +f8.0 +file + + + + +2008-05-17T15:47:39.000000Z +9af62ae20a4a815560b5259d1a43f5af +2008-05-17T18:19:52.308468Z +1019 +paulchen + +negterm.call +file +1042 + + + +2008-05-19T17:33:25.000000Z +bdad2e18de2d65822773cd8c924155f1 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +parameter1.call +file +1042 + + + +2008-05-19T17:33:26.000000Z +ec51e4a1adc8afa59fd5160c332b9645 +2008-05-19T17:34:50.071196Z +1042 +paulchen + +algebra1.0 +file +1042 + + + +2008-05-19T17:31:20.000000Z +6ff960ca78782ddb093e1d5ed4887afa +2008-05-19T17:34:50.071196Z +1042 +paulchen + +h9.0 +file + + + + +2008-05-17T15:47:40.000000Z +e177856e7e23dc023d0b82bbd086be47 +2008-05-17T18:19:52.308468Z +1019 +paulchen + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/format b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/format new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/format @@ -0,0 +1 @@ +8 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_b.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_b.3.svn-base new file mode 100644 index 0000000..aa221b6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_b.3.svn-base @@ -0,0 +1,6 @@ +func f() + var a := 1; + var b := 2; + + c := 5; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_e.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_e.3.svn-base new file mode 100644 index 0000000..130f8db --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_e.3.svn-base @@ -0,0 +1,9 @@ +func f(x,y) + var a := 1; + var b := 2; + if a = b then + a := 3; + x := z; + end; + b := x; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_g.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_g.3.svn-base new file mode 100644 index 0000000..e9786b8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_g.3.svn-base @@ -0,0 +1,9 @@ +struct a b a end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + return g(off,bound,add); +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_h.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_h.3.svn-base new file mode 100644 index 0000000..c27e6fb --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_h.3.svn-base @@ -0,0 +1,5 @@ +func f() + off := 7; + var off:=5; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_i.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_i.3.svn-base new file mode 100644 index 0000000..205e1ab --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_i.3.svn-base @@ -0,0 +1,13 @@ +struct a b end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + if (1=1) then + var x :=17; + else + return x; + end; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_j.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_j.3.svn-base new file mode 100644 index 0000000..3402eaa --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_j.3.svn-base @@ -0,0 +1,12 @@ +struct a b end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + if (1=1) then + var x :=17; + end; + return x; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_k.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_k.3.svn-base new file mode 100644 index 0000000..56757a8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/ag_k.3.svn-base @@ -0,0 +1,6 @@ +struct a b end; + +func f() + var s := 2; + s.c := 17; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra.0.svn-base new file mode 100644 index 0000000..0e42821 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra.0.svn-base @@ -0,0 +1,3 @@ +func test(a, b) + return a + 2 + ( 3 * b); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra.call.svn-base new file mode 100644 index 0000000..32ab0ce --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 2 + 2 + (3 * 4)==test(2,4)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra1.0.svn-base new file mode 100644 index 0000000..0825f1b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra1.0.svn-base @@ -0,0 +1,3 @@ +func test(a, b) + return a + b + ( a * b); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra1.call.svn-base new file mode 100644 index 0000000..8ed0c06 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebra1.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 2 + 4 + (2 * 4)==test(2,4)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran1.0.svn-base new file mode 100644 index 0000000..a9391c8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran1.0.svn-base @@ -0,0 +1,3 @@ +func test() + return 1 + 2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran1.call.svn-base new file mode 100644 index 0000000..c9261fc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran1.call.svn-base @@ -0,0 +1,2 @@ +extern long test (); +return ( 3==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran2.0.svn-base new file mode 100644 index 0000000..4eb74e9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran2.0.svn-base @@ -0,0 +1,3 @@ +func test() + return 1 * 2; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran2.call.svn-base new file mode 100644 index 0000000..c537d9b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran2.call.svn-base @@ -0,0 +1,2 @@ +extern long test (); +return ( 2==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran3.0.svn-base new file mode 100644 index 0000000..78ff632 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran3.0.svn-base @@ -0,0 +1,3 @@ +func test() + return 1 * 2 * ( 3 + 4 ); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran3.call.svn-base new file mode 100644 index 0000000..b0dc2a6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran3.call.svn-base @@ -0,0 +1,2 @@ +extern long test (); +return ( 14==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran4.0.svn-base new file mode 100644 index 0000000..22c8cca --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran4.0.svn-base @@ -0,0 +1,3 @@ +func test() + return 1 * 2 * ( 3 + 4 ) * ( 1 + 2 + 3 + ( 2 * 4 )); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran4.call.svn-base new file mode 100644 index 0000000..daca892 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/algebran4.call.svn-base @@ -0,0 +1,2 @@ +extern long test (); +return ( 196==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f1.0.svn-base new file mode 100644 index 0000000..4851858 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f1.0.svn-base @@ -0,0 +1 @@ +func f1(a) if a=0 then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f1.call.svn-base new file mode 100644 index 0000000..a671bc9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f1.call.svn-base @@ -0,0 +1,4 @@ +extern long f1(long a); + +return f1(0)==0 && f1(1)==1 && f1(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f10.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f10.0.svn-base new file mode 100644 index 0000000..eb43918 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f10.0.svn-base @@ -0,0 +1 @@ +func f10(a) if (not (not (not (a=0)))) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f10.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f10.call.svn-base new file mode 100644 index 0000000..368d3b6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f10.call.svn-base @@ -0,0 +1,4 @@ +extern long f10(long a); + +return f10(0)==1 && f10(1)==0 && f10(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f2.0.svn-base new file mode 100644 index 0000000..d5d4e9d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f2.0.svn-base @@ -0,0 +1 @@ +func f2(a) if a=0 or a=1 then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f2.call.svn-base new file mode 100644 index 0000000..84dd655 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f2.call.svn-base @@ -0,0 +1,4 @@ +extern long f2(long a); + +return f2(0)==0 && f2(1)==0 && f2(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f3.0.svn-base new file mode 100644 index 0000000..f555661 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f3.0.svn-base @@ -0,0 +1 @@ +func f3(a) if not (a=0) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f3.call.svn-base new file mode 100644 index 0000000..2c41e97 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f3.call.svn-base @@ -0,0 +1,4 @@ +extern long f3(long a); + +return f3(0)==1 && f3(1)==0 && f3(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f4.0.svn-base new file mode 100644 index 0000000..f938299 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f4.0.svn-base @@ -0,0 +1 @@ +func f4(a) if (a=0) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f4.call.svn-base new file mode 100644 index 0000000..4e50571 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f4.call.svn-base @@ -0,0 +1,4 @@ +extern long f4(long a); + +return f4(0)==0 && f4(1)==1 && f4(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f5.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f5.0.svn-base new file mode 100644 index 0000000..f955fa4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f5.0.svn-base @@ -0,0 +1 @@ +func f5(a) if (a=0 or a=1) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f5.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f5.call.svn-base new file mode 100644 index 0000000..57b065c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f5.call.svn-base @@ -0,0 +1,4 @@ +extern long f5(long a); + +return f5(0)==0 && f5(1)==0 && f5(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f6.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f6.0.svn-base new file mode 100644 index 0000000..1509257 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f6.0.svn-base @@ -0,0 +1 @@ +func f6(a) if (not (a=0)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f6.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f6.call.svn-base new file mode 100644 index 0000000..00f1f0c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f6.call.svn-base @@ -0,0 +1,4 @@ +extern long f6(long a); + +return f6(0)==1 && f6(1)==0 && f6(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f7.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f7.0.svn-base new file mode 100644 index 0000000..9e82cf8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f7.0.svn-base @@ -0,0 +1 @@ +func f7(a) if not (not (a=0)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f7.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f7.call.svn-base new file mode 100644 index 0000000..7e32c70 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f7.call.svn-base @@ -0,0 +1,4 @@ +extern long f7(long a); + +return f7(0)==0 && f7(1)==1 && f7(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f8.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f8.0.svn-base new file mode 100644 index 0000000..0e098b2 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f8.0.svn-base @@ -0,0 +1 @@ +func f8(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f8.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f8.call.svn-base new file mode 100644 index 0000000..32ef9f5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f8.call.svn-base @@ -0,0 +1,4 @@ +extern long f8(long a); + +return f8(0)==0 && f8(1)==0 && f8(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f9.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f9.0.svn-base new file mode 100644 index 0000000..8d582d5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f9.0.svn-base @@ -0,0 +1 @@ +func f9(a) if not ((not (a=0)) or (not (a=1))) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f9.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f9.call.svn-base new file mode 100644 index 0000000..6cd0459 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/f9.call.svn-base @@ -0,0 +1,4 @@ +extern long f9(long a); + +return f9(0)==1 && f9(1)==1 && f9(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/fib.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/fib.0.svn-base new file mode 100644 index 0000000..1e1c7c4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/fib.0.svn-base @@ -0,0 +1,17 @@ +func fib(n) + if 1 >= n then return n; end; + var fib_n := 1; (* fib(n) *) + var fib_n1 := 0; (* fib(n-1) *) + var r := 0; + + while n >= 2 do + (* calculate fib(n+1) *) + r := fib_n + fib_n1; + (* update fib(n-1) and fib(n) *) + fib_n1 := fib_n; + fib_n := r; + n := n + (-1); + end; + return r; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/fib.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/fib.call.svn-base new file mode 100644 index 0000000..3ab7260 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/fib.call.svn-base @@ -0,0 +1,4 @@ +unsigned long fib(unsigned long n); + +return fib(7)+fib(8)==fib(9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_04.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_04.3.svn-base new file mode 100644 index 0000000..4ff470c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_04.3.svn-base @@ -0,0 +1,2 @@ +(* a2 wird 2 mal definiert *) +struct a1 a2 a2 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_05.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_05.3.svn-base new file mode 100644 index 0000000..ee0fef4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_05.3.svn-base @@ -0,0 +1,3 @@ +(* a2 wird 2 mal definiert *) +struct a1 a2 a3 end; +struct a4 a5 a2 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_06.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_06.3.svn-base new file mode 100644 index 0000000..4c7d201 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_06.3.svn-base @@ -0,0 +1,4 @@ +func bla() +abs.a1 := 100; +ert.a1 := 200; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_07.2.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_07.2.svn-base new file mode 100644 index 0000000..ea4c6dc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_07.2.svn-base @@ -0,0 +1 @@ +123.a1 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_08.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_08.3.svn-base new file mode 100644 index 0000000..e1af2b8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forum_08.3.svn-base @@ -0,0 +1,9 @@ +func f(x, y) + if x = y then + var a := y; + a := x; + end; + + (* zugriff auf a nicht mehr erlaubt *) + a := x; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_04.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_04.3.svn-base new file mode 100644 index 0000000..0ace8af --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_04.3.svn-base @@ -0,0 +1,5 @@ +(* a2 wird 2 mal definiert *) +struct end; +struct a1 a2 a2 end; +struct end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_05.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_05.3.svn-base new file mode 100644 index 0000000..96ba1fc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_05.3.svn-base @@ -0,0 +1,5 @@ +(* a2 wird 2 mal definiert *) +struct end; +struct a1 a2 a3 end; +struct a4 a5 a2 end; +struct end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_06.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_06.3.svn-base new file mode 100644 index 0000000..4c7d201 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_06.3.svn-base @@ -0,0 +1,4 @@ +func bla() +abs.a1 := 100; +ert.a1 := 200; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_07.2.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_07.2.svn-base new file mode 100644 index 0000000..ea4c6dc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_07.2.svn-base @@ -0,0 +1 @@ +123.a1 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_08.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_08.3.svn-base new file mode 100644 index 0000000..518e626 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/forumx_08.3.svn-base @@ -0,0 +1,11 @@ +func f(x, y) + if x = y then + var a := y; + a.t := x; + end; + + (* zugriff auf a nicht mehr erlaubt *) + (* a := x; *) +end; + +struct b end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g1.0.svn-base new file mode 100644 index 0000000..3e1aa7b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g1.0.svn-base @@ -0,0 +1 @@ +func g1(a,b) if (a=0 or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g1.call.svn-base new file mode 100644 index 0000000..4a51316 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g1.call.svn-base @@ -0,0 +1,18 @@ +extern long g1(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g1[2][2]={{1,1},{1,0}}; + +return check_arg2(g1,ret_g1); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g10.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g10.0.svn-base new file mode 100644 index 0000000..c36451f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g10.0.svn-base @@ -0,0 +1 @@ +func g10(a,b) if not (not ((not (a=0)) or b=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g10.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g10.call.svn-base new file mode 100644 index 0000000..4e23018 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g10.call.svn-base @@ -0,0 +1,18 @@ +extern long g10(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g10[2][2]={{1,0},{1,1}}; + +return check_arg2(g10,ret_g10); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g11.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g11.0.svn-base new file mode 100644 index 0000000..e9126ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g11.0.svn-base @@ -0,0 +1 @@ +func g11(a,b) if not (not (a=0 or (not (b=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g11.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g11.call.svn-base new file mode 100644 index 0000000..92174ff --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g11.call.svn-base @@ -0,0 +1,18 @@ +extern long g11(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g11[2][2]={{1,1},{0,1}}; + +return check_arg2(g11,ret_g11); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g12.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g12.0.svn-base new file mode 100644 index 0000000..86e62c6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g12.0.svn-base @@ -0,0 +1 @@ +func g12(a,b) if not (not ((not (a=0)) or (not (b=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g12.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g12.call.svn-base new file mode 100644 index 0000000..bb34e88 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g12.call.svn-base @@ -0,0 +1,18 @@ +extern long g12(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g12[2][2]={{0,1},{1,1}}; + +return check_arg2(g12,ret_g12); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g2.0.svn-base new file mode 100644 index 0000000..5751378 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g2.0.svn-base @@ -0,0 +1 @@ +func g2(a,b) if ((not (a=0)) or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g2.call.svn-base new file mode 100644 index 0000000..186e1ef --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g2.call.svn-base @@ -0,0 +1,18 @@ +extern long g2(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g2[2][2]={{1,0},{1,1}}; + +return check_arg2(g2,ret_g2); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g3.0.svn-base new file mode 100644 index 0000000..39f38e6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g3.0.svn-base @@ -0,0 +1 @@ +func g3(a,b) if (a=0 or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g3.call.svn-base new file mode 100644 index 0000000..42b0114 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g3.call.svn-base @@ -0,0 +1,18 @@ +extern long g3(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g3[2][2]={{1,1},{0,1}}; + +return check_arg2(g3,ret_g3); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g4.0.svn-base new file mode 100644 index 0000000..1903693 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g4.0.svn-base @@ -0,0 +1 @@ +func g4(a,b) if ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g4.call.svn-base new file mode 100644 index 0000000..d8abf9d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g4.call.svn-base @@ -0,0 +1,18 @@ +extern long g4(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g4[2][2]={{0,1},{1,1}}; + +return check_arg2(g4,ret_g4); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g5.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g5.0.svn-base new file mode 100644 index 0000000..1848063 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g5.0.svn-base @@ -0,0 +1 @@ +func g5(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g5.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g5.call.svn-base new file mode 100644 index 0000000..c0d02bd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g5.call.svn-base @@ -0,0 +1,18 @@ +extern long g5(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g5[2][2]={{0,0},{0,1}}; + +return check_arg2(g5,ret_g5); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g6.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g6.0.svn-base new file mode 100644 index 0000000..19a197b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g6.0.svn-base @@ -0,0 +1 @@ +func g6(a,b) if not ((not (a=0)) or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g6.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g6.call.svn-base new file mode 100644 index 0000000..0a0dae8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g6.call.svn-base @@ -0,0 +1,18 @@ +extern long g6(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g6[2][2]={{0,1},{0,0}}; + +return check_arg2(g6,ret_g6); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g7.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g7.0.svn-base new file mode 100644 index 0000000..f926ddc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g7.0.svn-base @@ -0,0 +1 @@ +func g7(a,b) if not (a=0 or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g7.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g7.call.svn-base new file mode 100644 index 0000000..f7a2e29 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g7.call.svn-base @@ -0,0 +1,18 @@ +extern long g7(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g7[2][2]={{0,0},{1,0}}; + +return check_arg2(g7,ret_g7); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g8.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g8.0.svn-base new file mode 100644 index 0000000..0265f42 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g8.0.svn-base @@ -0,0 +1 @@ +func g8(a,b) if not ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g8.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g8.call.svn-base new file mode 100644 index 0000000..c580630 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g8.call.svn-base @@ -0,0 +1,18 @@ +extern long g8(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g8[2][2]={{1,0},{0,0}}; + +return check_arg2(g8,ret_g8); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g9.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g9.0.svn-base new file mode 100644 index 0000000..29290d1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g9.0.svn-base @@ -0,0 +1 @@ +func g9(a,b) if not (not (a=0 or b=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g9.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g9.call.svn-base new file mode 100644 index 0000000..5f4ca1d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/g9.call.svn-base @@ -0,0 +1,18 @@ +extern long g9(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g9[2][2]={{1,1},{1,0}}; + +return check_arg2(g9,ret_g9); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h1.0.svn-base new file mode 100644 index 0000000..daa0824 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h1.0.svn-base @@ -0,0 +1 @@ +func h1(a,b,c,d) if (a=0 or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h1.call.svn-base new file mode 100644 index 0000000..4c7b92e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h1.call.svn-base @@ -0,0 +1,21 @@ +extern long h1(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h1[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + +return check_arg4(h1,ret_h1); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h10.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h10.0.svn-base new file mode 100644 index 0000000..309c891 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h10.0.svn-base @@ -0,0 +1 @@ +func h10(a,b,c,d) if not (((not (a=0)) or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h10.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h10.call.svn-base new file mode 100644 index 0000000..3c4b8be --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h10.call.svn-base @@ -0,0 +1,21 @@ +extern long h10(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h10[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,1}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h10,ret_h10); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h11.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h11.0.svn-base new file mode 100644 index 0000000..428ed7b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h11.0.svn-base @@ -0,0 +1 @@ +func h11(a,b,c,d) if not ((a=0 or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h11.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h11.call.svn-base new file mode 100644 index 0000000..4ef296d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h11.call.svn-base @@ -0,0 +1,21 @@ +extern long h11(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h11[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,1}},{{0,0},{0,0}}}}; + +return check_arg4(h11,ret_h11); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h12.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h12.0.svn-base new file mode 100644 index 0000000..b76853b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h12.0.svn-base @@ -0,0 +1 @@ +func h12(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h12.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h12.call.svn-base new file mode 100644 index 0000000..72c4540 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h12.call.svn-base @@ -0,0 +1,21 @@ +extern long h12(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h12[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,1},{0,0}}}}; + +return check_arg4(h12,ret_h12); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h13.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h13.0.svn-base new file mode 100644 index 0000000..78a4d46 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h13.0.svn-base @@ -0,0 +1 @@ +func h13(a,b,c,d) if not ((a=0 or b=0) or (c=0 or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h13.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h13.call.svn-base new file mode 100644 index 0000000..050e5d9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h13.call.svn-base @@ -0,0 +1,21 @@ +extern long h13(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h13[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{1,0}}}}; + +return check_arg4(h13,ret_h13); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h14.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h14.0.svn-base new file mode 100644 index 0000000..010e6ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h14.0.svn-base @@ -0,0 +1 @@ +func h14(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h14.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h14.call.svn-base new file mode 100644 index 0000000..c050ddf --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h14.call.svn-base @@ -0,0 +1,21 @@ +extern long h14(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h14[2][2][2][2]={{{{0,0},{0,1}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h14,ret_h14); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h15.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h15.0.svn-base new file mode 100644 index 0000000..6fc3e63 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h15.0.svn-base @@ -0,0 +1 @@ +func h15(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h15.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h15.call.svn-base new file mode 100644 index 0000000..b85a6b4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h15.call.svn-base @@ -0,0 +1,21 @@ +extern long h15(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h15[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{1,0},{0,0}}}}; + +return check_arg4(h15,ret_h15); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h16.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h16.0.svn-base new file mode 100644 index 0000000..a286b04 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h16.0.svn-base @@ -0,0 +1 @@ +func h16(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h16.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h16.call.svn-base new file mode 100644 index 0000000..e42a601 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h16.call.svn-base @@ -0,0 +1,21 @@ +extern long h16(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h16[2][2][2][2]={{{{1,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h16,ret_h16); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h17.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h17.0.svn-base new file mode 100644 index 0000000..7c19502 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h17.0.svn-base @@ -0,0 +1 @@ +func h17(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h17.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h17.call.svn-base new file mode 100644 index 0000000..ca17563 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h17.call.svn-base @@ -0,0 +1,21 @@ +extern long h17(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h17[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + +return check_arg4(h17,ret_h17); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h18.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h18.0.svn-base new file mode 100644 index 0000000..399f8f1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h18.0.svn-base @@ -0,0 +1 @@ +func h18(a,b,c,d) if not (not (((not (a=0)) or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h18.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h18.call.svn-base new file mode 100644 index 0000000..70a5084 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h18.call.svn-base @@ -0,0 +1,21 @@ +extern long h18(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h18[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h18,ret_h18); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h19.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h19.0.svn-base new file mode 100644 index 0000000..983d956 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h19.0.svn-base @@ -0,0 +1 @@ +func h19(a,b,c,d) if not (not ((a=0 or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h19.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h19.call.svn-base new file mode 100644 index 0000000..476667c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h19.call.svn-base @@ -0,0 +1,21 @@ +extern long h19(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h19[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + +return check_arg4(h19,ret_h19); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h2.0.svn-base new file mode 100644 index 0000000..640c05c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h2.0.svn-base @@ -0,0 +1 @@ +func h2(a,b,c,d) if ((not (a=0)) or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h2.call.svn-base new file mode 100644 index 0000000..d3795d0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h2.call.svn-base @@ -0,0 +1,21 @@ +extern long h2(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h2[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h2,ret_h2); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h20.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h20.0.svn-base new file mode 100644 index 0000000..a04974b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h20.0.svn-base @@ -0,0 +1 @@ +func h20(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h20.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h20.call.svn-base new file mode 100644 index 0000000..6232c65 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h20.call.svn-base @@ -0,0 +1,21 @@ +extern long h20(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h20[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + +return check_arg4(h20,ret_h20); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h21.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h21.0.svn-base new file mode 100644 index 0000000..ce11b58 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h21.0.svn-base @@ -0,0 +1 @@ +func h21(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h21.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h21.call.svn-base new file mode 100644 index 0000000..30f2d4e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h21.call.svn-base @@ -0,0 +1,21 @@ +extern long h21(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h21[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + +return check_arg4(h21,ret_h21); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h22.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h22.0.svn-base new file mode 100644 index 0000000..2bd2f23 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h22.0.svn-base @@ -0,0 +1 @@ +func h22(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h22.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h22.call.svn-base new file mode 100644 index 0000000..36ce291 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h22.call.svn-base @@ -0,0 +1,21 @@ +extern long h22(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h22[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h22,ret_h22); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h23.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h23.0.svn-base new file mode 100644 index 0000000..6bfbf0f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h23.0.svn-base @@ -0,0 +1 @@ +func h23(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h23.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h23.call.svn-base new file mode 100644 index 0000000..8344b04 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h23.call.svn-base @@ -0,0 +1,21 @@ +extern long h23(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h23[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + +return check_arg4(h23,ret_h23); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h24.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h24.0.svn-base new file mode 100644 index 0000000..957d280 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h24.0.svn-base @@ -0,0 +1 @@ +func h24(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h24.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h24.call.svn-base new file mode 100644 index 0000000..129ee96 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h24.call.svn-base @@ -0,0 +1,21 @@ +extern long h24(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h24[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h24,ret_h24); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h3.0.svn-base new file mode 100644 index 0000000..2e3edd0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h3.0.svn-base @@ -0,0 +1 @@ +func h3(a,b,c,d) if (a=0 or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h3.call.svn-base new file mode 100644 index 0000000..5267fa0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h3.call.svn-base @@ -0,0 +1,21 @@ +extern long h3(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h3[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + +return check_arg4(h3,ret_h3); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h4.0.svn-base new file mode 100644 index 0000000..b157f3f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h4.0.svn-base @@ -0,0 +1 @@ +func h4(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h4.call.svn-base new file mode 100644 index 0000000..84a49ba --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h4.call.svn-base @@ -0,0 +1,21 @@ +extern long h4(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h4[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + +return check_arg4(h4,ret_h4); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h5.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h5.0.svn-base new file mode 100644 index 0000000..3df3a8b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h5.0.svn-base @@ -0,0 +1 @@ +func h5(a,b,c,d) if (a=0 or b=0) or (c=0 or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h5.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h5.call.svn-base new file mode 100644 index 0000000..b2d1b60 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h5.call.svn-base @@ -0,0 +1,21 @@ +extern long h5(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h5[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + +return check_arg4(h5,ret_h5); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h6.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h6.0.svn-base new file mode 100644 index 0000000..ab0cffe --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h6.0.svn-base @@ -0,0 +1 @@ +func h6(a,b,c,d) if ((not (a=0)) or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h6.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h6.call.svn-base new file mode 100644 index 0000000..4b87331 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h6.call.svn-base @@ -0,0 +1,21 @@ +extern long h6(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h6[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h6,ret_h6); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h7.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h7.0.svn-base new file mode 100644 index 0000000..f1670e4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h7.0.svn-base @@ -0,0 +1 @@ +func h7(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h7.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h7.call.svn-base new file mode 100644 index 0000000..f92ed4b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h7.call.svn-base @@ -0,0 +1,21 @@ +extern long h7(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h7[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + +return check_arg4(h7,ret_h7); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h8.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h8.0.svn-base new file mode 100644 index 0000000..341f7d0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h8.0.svn-base @@ -0,0 +1 @@ +func h8(a,b,c,d) if ((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h8.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h8.call.svn-base new file mode 100644 index 0000000..147aa92 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h8.call.svn-base @@ -0,0 +1,21 @@ +extern long h8(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h8[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h8,ret_h8); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h9.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h9.0.svn-base new file mode 100644 index 0000000..ac07344 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h9.0.svn-base @@ -0,0 +1 @@ +func h9(a,b,c,d) if not ((a=0 or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h9.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h9.call.svn-base new file mode 100644 index 0000000..6b6b634 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/h9.call.svn-base @@ -0,0 +1,21 @@ +extern long h9(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h9[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,1}}}}; + +return check_arg4(h9,ret_h9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/local01.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/local01.3.svn-base new file mode 100644 index 0000000..eeaa4b5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/local01.3.svn-base @@ -0,0 +1,7 @@ + +struct a1 a2 a3 end; + +(* ein Name darf nur einmal im Programm als Feldname definiert werden: + * a2, a3 werden hier nochmals definiert *) +struct b1 a2 a3 end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/localx01.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/localx01.3.svn-base new file mode 100644 index 0000000..eeaa4b5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/localx01.3.svn-base @@ -0,0 +1,7 @@ + +struct a1 a2 a3 end; + +(* ein Name darf nur einmal im Programm als Feldname definiert werden: + * a2, a3 werden hier nochmals definiert *) +struct b1 a2 a3 end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro.3.svn-base new file mode 100644 index 0000000..c68d7f6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro.3.svn-base @@ -0,0 +1,14 @@ +struct a1 a2 a1 end; +struct b1 b2 b3 end; + +func f(x,y) + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro01.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro01.3.svn-base new file mode 100644 index 0000000..0cbc8e7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro01.3.svn-base @@ -0,0 +1,5 @@ +func g(x,y) + y:=0; + return y+z; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro02.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro02.3.svn-base new file mode 100644 index 0000000..2087a5f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro02.3.svn-base @@ -0,0 +1,6 @@ +func g(x,y) + y:=0; + z:=5; + return y; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro03.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro03.3.svn-base new file mode 100644 index 0000000..1ae94f6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro03.3.svn-base @@ -0,0 +1,21 @@ +(*no se si esto de verdad deberia de dar erro :) ahora si*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + var e:=5; + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return e; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro04.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro04.3.svn-base new file mode 100644 index 0000000..0263da5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro04.3.svn-base @@ -0,0 +1,24 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro05.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro05.3.svn-base new file mode 100644 index 0000000..c7f99f5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro05.3.svn-base @@ -0,0 +1,28 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + + + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro06.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro06.3.svn-base new file mode 100644 index 0000000..369409e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro06.3.svn-base @@ -0,0 +1,27 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.d2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + + + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro07.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro07.3.svn-base new file mode 100644 index 0000000..c2c1d85 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro07.3.svn-base @@ -0,0 +1,26 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return x; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.c1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro09.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro09.3.svn-base new file mode 100644 index 0000000..cd873c9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro09.3.svn-base @@ -0,0 +1,27 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return x; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + +struct c1 c2 c3 end; +struct b1 b2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro10.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro10.3.svn-base new file mode 100644 index 0000000..aec69c5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro10.3.svn-base @@ -0,0 +1,13 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + d:=x.b2; + + + return d; +end; + + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro11.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro11.3.svn-base new file mode 100644 index 0000000..bebc86e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro11.3.svn-base @@ -0,0 +1,24 @@ +(*esto no deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + d:=x.a2; + + + return d; +end; + + +struct b1 b2 b3 end; + + + + +func f(x,y) + var a:=1; + a:=x.b2; + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro12.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro12.3.svn-base new file mode 100644 index 0000000..2881360 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro12.3.svn-base @@ -0,0 +1,55 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar erro g no esta definida*) + var d:=1; + if d = g then + d:=x.a1; + else + d:=x.a2; + end; + return d; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + var a:=1; + a:=x.f1; + + return a; +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro13.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro13.3.svn-base new file mode 100644 index 0000000..fbe767d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro13.3.svn-base @@ -0,0 +1,56 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar error t no visible*) + var d:=1; + if d = g then + var t:=5; + t:=x.a1; + else + d:=x.a2; + end; + return t; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + var a:=1; + a:=x.f1; + + return a; +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro14.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro14.3.svn-base new file mode 100644 index 0000000..e066ffd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro14.3.svn-base @@ -0,0 +1,62 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar error t no visible*) + var d:=1; + if d = g then + var t:=5; + t:=x.a1; + else + d:=x.a2; + end; + return t; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + + var g:=8; + if d = g then + var t:=5; + t:=x.a1; + else + g:=x.a2; + end; + return g; + +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro15.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro15.3.svn-base new file mode 100644 index 0000000..12ebc35 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro15.3.svn-base @@ -0,0 +1,23 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 a4 end; + +func f(a1,a2) + + var a3:=1; + var a4:=1; + a4:=a2.a2; + return a1; + +(*esto deberia de dar error t no visible*) + if a1 = a3 then + a4:=a1.a1; + else + a4:=a2.a2; + end; + return a4; + + +end; + + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro16.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro16.3.svn-base new file mode 100644 index 0000000..472dcea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/malandro16.3.svn-base @@ -0,0 +1,19 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + + var g:=1; + var d:=1; + if d = g then + var t:=5; + d:=x.a1; + else + t:=x.a2; + end; + return t; + + +end; + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_a.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_a.0.svn-base new file mode 100644 index 0000000..cd57308 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_a.0.svn-base @@ -0,0 +1,3 @@ +func f() + return -2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_a.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_a.call.svn-base new file mode 100644 index 0000000..4b2cd63 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_a.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return ( -2==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_b.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_b.0.svn-base new file mode 100644 index 0000000..8d81d42 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_b.0.svn-base @@ -0,0 +1,5 @@ + +func f() + return 1+2+3+4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_b.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_b.call.svn-base new file mode 100644 index 0000000..02205cd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_b.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return (10==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_c.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_c.0.svn-base new file mode 100644 index 0000000..522ce1b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_c.0.svn-base @@ -0,0 +1,5 @@ + +func f() + return 1+(2*3)+4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_c.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_c.call.svn-base new file mode 100644 index 0000000..97f1369 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_c.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return (11==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_d.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_d.0.svn-base new file mode 100644 index 0000000..a67a076 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_d.0.svn-base @@ -0,0 +1,5 @@ + +func f() + return 1*2*3*4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_d.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_d.call.svn-base new file mode 100644 index 0000000..93a5f48 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_d.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return (24==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_e.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_e.0.svn-base new file mode 100644 index 0000000..76a4e1d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_e.0.svn-base @@ -0,0 +1,4 @@ +func f() + return (1*((-2)+5))+(-1)+(((-2)+2)*17)+3; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_e.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_e.call.svn-base new file mode 100644 index 0000000..5c3992a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_e.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return (5==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_f.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_f.0.svn-base new file mode 100644 index 0000000..810ee86 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_f.0.svn-base @@ -0,0 +1,4 @@ +func f(x) + return x; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_f.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_f.call.svn-base new file mode 100644 index 0000000..c1f6158 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_f.call.svn-base @@ -0,0 +1,3 @@ +extern long f(long); +return (5==f((long)5)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_g.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_g.0.svn-base new file mode 100644 index 0000000..4d66d0a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_g.0.svn-base @@ -0,0 +1,4 @@ +func f(x,y) + return x+y; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_g.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_g.call.svn-base new file mode 100644 index 0000000..602cc85 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_g.call.svn-base @@ -0,0 +1,3 @@ +extern long f(long, long); +return (12==f(5,7)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_h.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_h.0.svn-base new file mode 100644 index 0000000..38bc6a7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_h.0.svn-base @@ -0,0 +1,8 @@ +func f(x,y,z) + return x+y+1+z+1; +end; + +func g(z) + return z+3; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_h.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_h.call.svn-base new file mode 100644 index 0000000..6a10bbb --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_h.call.svn-base @@ -0,0 +1,4 @@ +extern long f(long, long, long); +extern long g(long); +return (15==f(5,7,1) && 7==g(4)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_i.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_i.3.svn-base new file mode 100644 index 0000000..b9dc472 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_i.3.svn-base @@ -0,0 +1,8 @@ +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func g(a1) + var x := 5; + return x.a1; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_j.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_j.0.svn-base new file mode 100644 index 0000000..e01b5e7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_j.0.svn-base @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s,s) + return s.a+s.b; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_j.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_j.call.svn-base new file mode 100644 index 0000000..78ed0b0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_j.call.svn-base @@ -0,0 +1,5 @@ +struct S {long a1; long a2; long a3;} s={10,20,30}; +struct T {long a1; long a2; long a3;} t={1,2,3}; +extern long f(long*,long*); + +return ( 3==f((long*)&s, (long*)&t)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_k.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_k.0.svn-base new file mode 100644 index 0000000..45e0e2a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_k.0.svn-base @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s,s,s,s,t,s) + return s.a+s.b+t.c; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_k.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_k.call.svn-base new file mode 100644 index 0000000..a353792 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_k.call.svn-base @@ -0,0 +1,9 @@ +struct A {long a1; long a2; long a3;} a={10,20,30}; +struct B {long a1; long a2; long a3;} b={10,20,30}; +struct C {long a1; long a2; long a3;} c={10,20,30}; +struct D {long a1; long a2; long a3;} d={10,20,30}; +struct E {long a1; long a2; long a3;} e={10,20,30}; +struct T {long a1; long a2; long a3;} t={1,2,3}; +extern long f(long*,long*,long*,long*,long*,long*); + +return ( 33==f((long*)&a, (long*)&b, (long*)&c, (long*)&d, (long*)&e, (long*)&t)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_l.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_l.0.svn-base new file mode 100644 index 0000000..38d9ff1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_l.0.svn-base @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s) + return s.a.a+((-3)*s.b.c)+s.c.b; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_l.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_l.call.svn-base new file mode 100644 index 0000000..7bdddf9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/my_l.call.svn-base @@ -0,0 +1,7 @@ +struct A {long a1; long a2; long a3;} a={1,2,3}; +struct B {long a1; long a2; long a3;} b={10,20,30}; +struct C {long a1; long a2; long a3;} c={100,200,300}; +struct S {long a1; long a2; long a3;} s={(long*)&a,(long*)&b,(long*)&c}; +extern long f(long*); + +return ( 111==f((long*)&s)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm.0.svn-base new file mode 100644 index 0000000..03eda66 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm.0.svn-base @@ -0,0 +1,3 @@ +func test(a) + return -a; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm.call.svn-base new file mode 100644 index 0000000..7726e38 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long); +return (-5==test(5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm1.0.svn-base new file mode 100644 index 0000000..03eda66 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm1.0.svn-base @@ -0,0 +1,3 @@ +func test(a) + return -a; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm1.call.svn-base new file mode 100644 index 0000000..6af387d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/negterm1.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long); +return (5==test(-5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter1.0.svn-base new file mode 100644 index 0000000..98c634a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter1.0.svn-base @@ -0,0 +1,3 @@ +func test(a, b) + return a + b; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter1.call.svn-base new file mode 100644 index 0000000..9b5ae8f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter1.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 34==test(29,5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter2.0.svn-base new file mode 100644 index 0000000..adb30ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter2.0.svn-base @@ -0,0 +1,3 @@ +func test(a, b, c, d, e, f) + return a + b + c + d + e + f; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter2.call.svn-base new file mode 100644 index 0000000..d9f04fd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter2.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long,long,long,long,long,long); +return ( 21==test(1,2,3,4,5,6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter3.0.svn-base new file mode 100644 index 0000000..35bfa51 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter3.0.svn-base @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return s1.a1 + s2.a2 + s3.a3 + s4.a1 + s5.a2 + s6.a3 ; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter3.call.svn-base new file mode 100644 index 0000000..7609412 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter3.call.svn-base @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( (10+50+90+100+140+180)==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter4.0.svn-base new file mode 100644 index 0000000..e611e82 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter4.0.svn-base @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return s1.a1 * s2.a2 * s3.a3 * s4.a1 * s5.a2 * s6.a3 ; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter4.call.svn-base new file mode 100644 index 0000000..beb0013 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter4.call.svn-base @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( (10L*50L*90L*100L*140L*180L)==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter5.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter5.0.svn-base new file mode 100644 index 0000000..6392d8e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter5.0.svn-base @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2) + return s1.a1 * s2.a2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter5.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter5.call.svn-base new file mode 100644 index 0000000..b6c8eaa --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter5.call.svn-base @@ -0,0 +1,7 @@ +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; + +extern long test(long*,long*); + +return ( (10*50)==test((long*)&s1,(long*)&s2)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter6.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter6.0.svn-base new file mode 100644 index 0000000..6c4e304 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter6.0.svn-base @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return (s1.a1 * s2.a2) + ( s3.a3 * s4.a1) +( s5.a2 * s6.a3 ); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter6.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter6.call.svn-base new file mode 100644 index 0000000..300a941 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/parameter6.call.svn-base @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( ((10L*50L)+(90L*100L)+(140L*180L))==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/regfehler.4.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/regfehler.4.svn-base new file mode 100644 index 0000000..ca4f4e9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/regfehler.4.svn-base @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b * ( a + b + ( a * b * (a + b)))))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test1.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test1.3.svn-base new file mode 100644 index 0000000..634a79e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test1.3.svn-base @@ -0,0 +1,19 @@ +struct f1 f2 end; + +func f(p1) + var fx:=p1; + p1:=1; + (* f1 not defined *) + f1:=4; + (* shoult throw one of + - f1 not defined + - field access not allowed (var fx exists) + - field fx not defined + *) + f1.fx:=p1; + p1.f1:=p1.f2; + f(p1,p1.f2).f3:=0AFFEH; + var f1:=3; +end; + +struct f3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test2.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test2.3.svn-base new file mode 100644 index 0000000..eb9e51b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test2.3.svn-base @@ -0,0 +1,10 @@ +func test() + var v1:=1; + if 1=1 then + v1:=2; + var v2:=1; + end; + + (* v2 not visible *) + v2:=3; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test3.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test3.3.svn-base new file mode 100644 index 0000000..5a54492 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test3.3.svn-base @@ -0,0 +1,6 @@ +struct f end; + +func x() + (* f is a field, not a variable *) + f := 4; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test4.2.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test4.2.svn-base new file mode 100644 index 0000000..9c5de0d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/test4.2.svn-base @@ -0,0 +1,8 @@ + +func x() + var z:=3; + (* field feld not defined *) + z.feld:=x(4,5,a); + (* syntax error *) + return z+z*z; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/testscriptx03.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/testscriptx03.3.svn-base new file mode 100644 index 0000000..dde46ed --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/testscriptx03.3.svn-base @@ -0,0 +1,19 @@ +func g(x,y,z) + var res:=0; + res:=x; + while y>=0 or (not x=z) do + y:=y+(-1); + res:=res+z; + end; + return res; +end; + +struct end; + +func f() + var off:=10 + (xx * 3); + var bound:= -test.c5; + var add:= g(test.c5) + 2; + return g(off,bound,add); +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefemax.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefemax.0.svn-base new file mode 100644 index 0000000..4e9bb50 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefemax.0.svn-base @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b * ( a + b + ( a * b))))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefemax.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefemax.call.svn-base new file mode 100644 index 0000000..b5d6800 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefemax.call.svn-base @@ -0,0 +1,2 @@ +extern long test(long,long); +return ((3 * 8) + (3 * 8 * ( 3 + 8 + ( 3 * 8 * ( 3 + 8 + ( 3 * 8 ))))) == test(3,8)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen.0.svn-base new file mode 100644 index 0000000..133e82b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen.0.svn-base @@ -0,0 +1,4 @@ + +func test(a,b,c,d,e,f) + return (a * b) + ( c * d) + (e * f ); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen.call.svn-base new file mode 100644 index 0000000..d2b3f14 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen.call.svn-base @@ -0,0 +1,4 @@ + +extern long test(long,long, long, long, long, long); + +return ( ( 1 * 2 ) + (3 * 4) + ( 5 * 6 ) == test(1,2,3,4,5,6)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen1.0.svn-base new file mode 100644 index 0000000..2b56241 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen1.0.svn-base @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen1.call.svn-base new file mode 100644 index 0000000..62fba13 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/.svn/text-base/tiefen1.call.svn-base @@ -0,0 +1,4 @@ + +extern long test(long,long); + +return ( ( 3 * 5 ) + ( 3 * 5 * (3 + 5 + ( 3 * 5))) == test(3,5)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_b.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_b.3 new file mode 100644 index 0000000..aa221b6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_b.3 @@ -0,0 +1,6 @@ +func f() + var a := 1; + var b := 2; + + c := 5; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_e.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_e.3 new file mode 100644 index 0000000..130f8db --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_e.3 @@ -0,0 +1,9 @@ +func f(x,y) + var a := 1; + var b := 2; + if a = b then + a := 3; + x := z; + end; + b := x; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_g.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_g.3 new file mode 100644 index 0000000..e9786b8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_g.3 @@ -0,0 +1,9 @@ +struct a b a end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + return g(off,bound,add); +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_h.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_h.3 new file mode 100644 index 0000000..c27e6fb --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_h.3 @@ -0,0 +1,5 @@ +func f() + off := 7; + var off:=5; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_i.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_i.3 new file mode 100644 index 0000000..205e1ab --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_i.3 @@ -0,0 +1,13 @@ +struct a b end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + if (1=1) then + var x :=17; + else + return x; + end; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_j.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_j.3 new file mode 100644 index 0000000..3402eaa --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_j.3 @@ -0,0 +1,12 @@ +struct a b end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + if (1=1) then + var x :=17; + end; + return x; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_k.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_k.3 new file mode 100644 index 0000000..56757a8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/ag_k.3 @@ -0,0 +1,6 @@ +struct a b end; + +func f() + var s := 2; + s.c := 17; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra.0 new file mode 100644 index 0000000..0e42821 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra.0 @@ -0,0 +1,3 @@ +func test(a, b) + return a + 2 + ( 3 * b); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra.call new file mode 100644 index 0000000..32ab0ce --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra.call @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 2 + 2 + (3 * 4)==test(2,4)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra1.0 new file mode 100644 index 0000000..0825f1b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra1.0 @@ -0,0 +1,3 @@ +func test(a, b) + return a + b + ( a * b); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra1.call new file mode 100644 index 0000000..8ed0c06 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebra1.call @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 2 + 4 + (2 * 4)==test(2,4)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran1.0 new file mode 100644 index 0000000..a9391c8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran1.0 @@ -0,0 +1,3 @@ +func test() + return 1 + 2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran1.call new file mode 100644 index 0000000..c9261fc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran1.call @@ -0,0 +1,2 @@ +extern long test (); +return ( 3==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran2.0 new file mode 100644 index 0000000..4eb74e9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran2.0 @@ -0,0 +1,3 @@ +func test() + return 1 * 2; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran2.call new file mode 100644 index 0000000..c537d9b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran2.call @@ -0,0 +1,2 @@ +extern long test (); +return ( 2==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran3.0 new file mode 100644 index 0000000..78ff632 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran3.0 @@ -0,0 +1,3 @@ +func test() + return 1 * 2 * ( 3 + 4 ); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran3.call new file mode 100644 index 0000000..b0dc2a6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran3.call @@ -0,0 +1,2 @@ +extern long test (); +return ( 14==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran4.0 new file mode 100644 index 0000000..22c8cca --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran4.0 @@ -0,0 +1,3 @@ +func test() + return 1 * 2 * ( 3 + 4 ) * ( 1 + 2 + 3 + ( 2 * 4 )); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran4.call new file mode 100644 index 0000000..daca892 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/algebran4.call @@ -0,0 +1,2 @@ +extern long test (); +return ( 196==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f1.0 new file mode 100644 index 0000000..4851858 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f1.0 @@ -0,0 +1 @@ +func f1(a) if a=0 then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f1.call new file mode 100644 index 0000000..a671bc9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f1.call @@ -0,0 +1,4 @@ +extern long f1(long a); + +return f1(0)==0 && f1(1)==1 && f1(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f10.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f10.0 new file mode 100644 index 0000000..eb43918 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f10.0 @@ -0,0 +1 @@ +func f10(a) if (not (not (not (a=0)))) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f10.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f10.call new file mode 100644 index 0000000..368d3b6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f10.call @@ -0,0 +1,4 @@ +extern long f10(long a); + +return f10(0)==1 && f10(1)==0 && f10(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f2.0 new file mode 100644 index 0000000..d5d4e9d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f2.0 @@ -0,0 +1 @@ +func f2(a) if a=0 or a=1 then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f2.call new file mode 100644 index 0000000..84dd655 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f2.call @@ -0,0 +1,4 @@ +extern long f2(long a); + +return f2(0)==0 && f2(1)==0 && f2(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f3.0 new file mode 100644 index 0000000..f555661 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f3.0 @@ -0,0 +1 @@ +func f3(a) if not (a=0) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f3.call new file mode 100644 index 0000000..2c41e97 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f3.call @@ -0,0 +1,4 @@ +extern long f3(long a); + +return f3(0)==1 && f3(1)==0 && f3(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f4.0 new file mode 100644 index 0000000..f938299 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f4.0 @@ -0,0 +1 @@ +func f4(a) if (a=0) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f4.call new file mode 100644 index 0000000..4e50571 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f4.call @@ -0,0 +1,4 @@ +extern long f4(long a); + +return f4(0)==0 && f4(1)==1 && f4(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f5.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f5.0 new file mode 100644 index 0000000..f955fa4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f5.0 @@ -0,0 +1 @@ +func f5(a) if (a=0 or a=1) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f5.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f5.call new file mode 100644 index 0000000..57b065c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f5.call @@ -0,0 +1,4 @@ +extern long f5(long a); + +return f5(0)==0 && f5(1)==0 && f5(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f6.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f6.0 new file mode 100644 index 0000000..1509257 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f6.0 @@ -0,0 +1 @@ +func f6(a) if (not (a=0)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f6.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f6.call new file mode 100644 index 0000000..00f1f0c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f6.call @@ -0,0 +1,4 @@ +extern long f6(long a); + +return f6(0)==1 && f6(1)==0 && f6(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f7.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f7.0 new file mode 100644 index 0000000..9e82cf8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f7.0 @@ -0,0 +1 @@ +func f7(a) if not (not (a=0)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f7.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f7.call new file mode 100644 index 0000000..7e32c70 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f7.call @@ -0,0 +1,4 @@ +extern long f7(long a); + +return f7(0)==0 && f7(1)==1 && f7(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f8.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f8.0 new file mode 100644 index 0000000..0e098b2 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f8.0 @@ -0,0 +1 @@ +func f8(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f8.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f8.call new file mode 100644 index 0000000..32ef9f5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f8.call @@ -0,0 +1,4 @@ +extern long f8(long a); + +return f8(0)==0 && f8(1)==0 && f8(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f9.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f9.0 new file mode 100644 index 0000000..8d582d5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f9.0 @@ -0,0 +1 @@ +func f9(a) if not ((not (a=0)) or (not (a=1))) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f9.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f9.call new file mode 100644 index 0000000..6cd0459 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/f9.call @@ -0,0 +1,4 @@ +extern long f9(long a); + +return f9(0)==1 && f9(1)==1 && f9(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/fib.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/fib.0 new file mode 100644 index 0000000..1e1c7c4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/fib.0 @@ -0,0 +1,17 @@ +func fib(n) + if 1 >= n then return n; end; + var fib_n := 1; (* fib(n) *) + var fib_n1 := 0; (* fib(n-1) *) + var r := 0; + + while n >= 2 do + (* calculate fib(n+1) *) + r := fib_n + fib_n1; + (* update fib(n-1) and fib(n) *) + fib_n1 := fib_n; + fib_n := r; + n := n + (-1); + end; + return r; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/fib.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/fib.call new file mode 100644 index 0000000..3ab7260 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/fib.call @@ -0,0 +1,4 @@ +unsigned long fib(unsigned long n); + +return fib(7)+fib(8)==fib(9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_04.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_04.3 new file mode 100644 index 0000000..4ff470c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_04.3 @@ -0,0 +1,2 @@ +(* a2 wird 2 mal definiert *) +struct a1 a2 a2 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_05.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_05.3 new file mode 100644 index 0000000..ee0fef4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_05.3 @@ -0,0 +1,3 @@ +(* a2 wird 2 mal definiert *) +struct a1 a2 a3 end; +struct a4 a5 a2 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_06.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_06.3 new file mode 100644 index 0000000..4c7d201 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_06.3 @@ -0,0 +1,4 @@ +func bla() +abs.a1 := 100; +ert.a1 := 200; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_07.2 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_07.2 new file mode 100644 index 0000000..ea4c6dc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_07.2 @@ -0,0 +1 @@ +123.a1 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_08.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_08.3 new file mode 100644 index 0000000..e1af2b8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forum_08.3 @@ -0,0 +1,9 @@ +func f(x, y) + if x = y then + var a := y; + a := x; + end; + + (* zugriff auf a nicht mehr erlaubt *) + a := x; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_04.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_04.3 new file mode 100644 index 0000000..0ace8af --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_04.3 @@ -0,0 +1,5 @@ +(* a2 wird 2 mal definiert *) +struct end; +struct a1 a2 a2 end; +struct end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_05.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_05.3 new file mode 100644 index 0000000..96ba1fc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_05.3 @@ -0,0 +1,5 @@ +(* a2 wird 2 mal definiert *) +struct end; +struct a1 a2 a3 end; +struct a4 a5 a2 end; +struct end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_06.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_06.3 new file mode 100644 index 0000000..4c7d201 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_06.3 @@ -0,0 +1,4 @@ +func bla() +abs.a1 := 100; +ert.a1 := 200; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_07.2 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_07.2 new file mode 100644 index 0000000..ea4c6dc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_07.2 @@ -0,0 +1 @@ +123.a1 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_08.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_08.3 new file mode 100644 index 0000000..518e626 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/forumx_08.3 @@ -0,0 +1,11 @@ +func f(x, y) + if x = y then + var a := y; + a.t := x; + end; + + (* zugriff auf a nicht mehr erlaubt *) + (* a := x; *) +end; + +struct b end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g1.0 new file mode 100644 index 0000000..3e1aa7b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g1.0 @@ -0,0 +1 @@ +func g1(a,b) if (a=0 or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g1.call new file mode 100644 index 0000000..4a51316 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g1.call @@ -0,0 +1,18 @@ +extern long g1(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g1[2][2]={{1,1},{1,0}}; + +return check_arg2(g1,ret_g1); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g10.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g10.0 new file mode 100644 index 0000000..c36451f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g10.0 @@ -0,0 +1 @@ +func g10(a,b) if not (not ((not (a=0)) or b=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g10.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g10.call new file mode 100644 index 0000000..4e23018 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g10.call @@ -0,0 +1,18 @@ +extern long g10(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g10[2][2]={{1,0},{1,1}}; + +return check_arg2(g10,ret_g10); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g11.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g11.0 new file mode 100644 index 0000000..e9126ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g11.0 @@ -0,0 +1 @@ +func g11(a,b) if not (not (a=0 or (not (b=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g11.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g11.call new file mode 100644 index 0000000..92174ff --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g11.call @@ -0,0 +1,18 @@ +extern long g11(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g11[2][2]={{1,1},{0,1}}; + +return check_arg2(g11,ret_g11); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g12.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g12.0 new file mode 100644 index 0000000..86e62c6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g12.0 @@ -0,0 +1 @@ +func g12(a,b) if not (not ((not (a=0)) or (not (b=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g12.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g12.call new file mode 100644 index 0000000..bb34e88 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g12.call @@ -0,0 +1,18 @@ +extern long g12(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g12[2][2]={{0,1},{1,1}}; + +return check_arg2(g12,ret_g12); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g2.0 new file mode 100644 index 0000000..5751378 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g2.0 @@ -0,0 +1 @@ +func g2(a,b) if ((not (a=0)) or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g2.call new file mode 100644 index 0000000..186e1ef --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g2.call @@ -0,0 +1,18 @@ +extern long g2(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g2[2][2]={{1,0},{1,1}}; + +return check_arg2(g2,ret_g2); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g3.0 new file mode 100644 index 0000000..39f38e6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g3.0 @@ -0,0 +1 @@ +func g3(a,b) if (a=0 or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g3.call new file mode 100644 index 0000000..42b0114 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g3.call @@ -0,0 +1,18 @@ +extern long g3(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g3[2][2]={{1,1},{0,1}}; + +return check_arg2(g3,ret_g3); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g4.0 new file mode 100644 index 0000000..1903693 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g4.0 @@ -0,0 +1 @@ +func g4(a,b) if ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g4.call new file mode 100644 index 0000000..d8abf9d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g4.call @@ -0,0 +1,18 @@ +extern long g4(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g4[2][2]={{0,1},{1,1}}; + +return check_arg2(g4,ret_g4); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g5.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g5.0 new file mode 100644 index 0000000..1848063 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g5.0 @@ -0,0 +1 @@ +func g5(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g5.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g5.call new file mode 100644 index 0000000..c0d02bd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g5.call @@ -0,0 +1,18 @@ +extern long g5(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g5[2][2]={{0,0},{0,1}}; + +return check_arg2(g5,ret_g5); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g6.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g6.0 new file mode 100644 index 0000000..19a197b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g6.0 @@ -0,0 +1 @@ +func g6(a,b) if not ((not (a=0)) or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g6.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g6.call new file mode 100644 index 0000000..0a0dae8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g6.call @@ -0,0 +1,18 @@ +extern long g6(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g6[2][2]={{0,1},{0,0}}; + +return check_arg2(g6,ret_g6); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g7.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g7.0 new file mode 100644 index 0000000..f926ddc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g7.0 @@ -0,0 +1 @@ +func g7(a,b) if not (a=0 or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g7.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g7.call new file mode 100644 index 0000000..f7a2e29 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g7.call @@ -0,0 +1,18 @@ +extern long g7(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g7[2][2]={{0,0},{1,0}}; + +return check_arg2(g7,ret_g7); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g8.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g8.0 new file mode 100644 index 0000000..0265f42 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g8.0 @@ -0,0 +1 @@ +func g8(a,b) if not ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g8.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g8.call new file mode 100644 index 0000000..c580630 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g8.call @@ -0,0 +1,18 @@ +extern long g8(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g8[2][2]={{1,0},{0,0}}; + +return check_arg2(g8,ret_g8); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g9.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g9.0 new file mode 100644 index 0000000..29290d1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g9.0 @@ -0,0 +1 @@ +func g9(a,b) if not (not (a=0 or b=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g9.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g9.call new file mode 100644 index 0000000..5f4ca1d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/g9.call @@ -0,0 +1,18 @@ +extern long g9(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g9[2][2]={{1,1},{1,0}}; + +return check_arg2(g9,ret_g9); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h1.0 new file mode 100644 index 0000000..daa0824 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h1.0 @@ -0,0 +1 @@ +func h1(a,b,c,d) if (a=0 or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h1.call new file mode 100644 index 0000000..4c7b92e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h1.call @@ -0,0 +1,21 @@ +extern long h1(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h1[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + +return check_arg4(h1,ret_h1); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h10.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h10.0 new file mode 100644 index 0000000..309c891 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h10.0 @@ -0,0 +1 @@ +func h10(a,b,c,d) if not (((not (a=0)) or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h10.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h10.call new file mode 100644 index 0000000..3c4b8be --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h10.call @@ -0,0 +1,21 @@ +extern long h10(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h10[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,1}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h10,ret_h10); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h11.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h11.0 new file mode 100644 index 0000000..428ed7b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h11.0 @@ -0,0 +1 @@ +func h11(a,b,c,d) if not ((a=0 or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h11.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h11.call new file mode 100644 index 0000000..4ef296d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h11.call @@ -0,0 +1,21 @@ +extern long h11(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h11[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,1}},{{0,0},{0,0}}}}; + +return check_arg4(h11,ret_h11); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h12.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h12.0 new file mode 100644 index 0000000..b76853b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h12.0 @@ -0,0 +1 @@ +func h12(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h12.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h12.call new file mode 100644 index 0000000..72c4540 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h12.call @@ -0,0 +1,21 @@ +extern long h12(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h12[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,1},{0,0}}}}; + +return check_arg4(h12,ret_h12); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h13.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h13.0 new file mode 100644 index 0000000..78a4d46 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h13.0 @@ -0,0 +1 @@ +func h13(a,b,c,d) if not ((a=0 or b=0) or (c=0 or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h13.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h13.call new file mode 100644 index 0000000..050e5d9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h13.call @@ -0,0 +1,21 @@ +extern long h13(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h13[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{1,0}}}}; + +return check_arg4(h13,ret_h13); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h14.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h14.0 new file mode 100644 index 0000000..010e6ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h14.0 @@ -0,0 +1 @@ +func h14(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h14.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h14.call new file mode 100644 index 0000000..c050ddf --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h14.call @@ -0,0 +1,21 @@ +extern long h14(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h14[2][2][2][2]={{{{0,0},{0,1}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h14,ret_h14); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h15.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h15.0 new file mode 100644 index 0000000..6fc3e63 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h15.0 @@ -0,0 +1 @@ +func h15(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h15.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h15.call new file mode 100644 index 0000000..b85a6b4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h15.call @@ -0,0 +1,21 @@ +extern long h15(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h15[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{1,0},{0,0}}}}; + +return check_arg4(h15,ret_h15); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h16.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h16.0 new file mode 100644 index 0000000..a286b04 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h16.0 @@ -0,0 +1 @@ +func h16(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h16.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h16.call new file mode 100644 index 0000000..e42a601 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h16.call @@ -0,0 +1,21 @@ +extern long h16(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h16[2][2][2][2]={{{{1,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h16,ret_h16); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h17.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h17.0 new file mode 100644 index 0000000..7c19502 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h17.0 @@ -0,0 +1 @@ +func h17(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h17.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h17.call new file mode 100644 index 0000000..ca17563 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h17.call @@ -0,0 +1,21 @@ +extern long h17(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h17[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + +return check_arg4(h17,ret_h17); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h18.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h18.0 new file mode 100644 index 0000000..399f8f1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h18.0 @@ -0,0 +1 @@ +func h18(a,b,c,d) if not (not (((not (a=0)) or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h18.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h18.call new file mode 100644 index 0000000..70a5084 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h18.call @@ -0,0 +1,21 @@ +extern long h18(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h18[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h18,ret_h18); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h19.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h19.0 new file mode 100644 index 0000000..983d956 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h19.0 @@ -0,0 +1 @@ +func h19(a,b,c,d) if not (not ((a=0 or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h19.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h19.call new file mode 100644 index 0000000..476667c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h19.call @@ -0,0 +1,21 @@ +extern long h19(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h19[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + +return check_arg4(h19,ret_h19); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h2.0 new file mode 100644 index 0000000..640c05c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h2.0 @@ -0,0 +1 @@ +func h2(a,b,c,d) if ((not (a=0)) or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h2.call new file mode 100644 index 0000000..d3795d0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h2.call @@ -0,0 +1,21 @@ +extern long h2(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h2[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h2,ret_h2); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h20.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h20.0 new file mode 100644 index 0000000..a04974b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h20.0 @@ -0,0 +1 @@ +func h20(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h20.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h20.call new file mode 100644 index 0000000..6232c65 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h20.call @@ -0,0 +1,21 @@ +extern long h20(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h20[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + +return check_arg4(h20,ret_h20); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h21.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h21.0 new file mode 100644 index 0000000..ce11b58 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h21.0 @@ -0,0 +1 @@ +func h21(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h21.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h21.call new file mode 100644 index 0000000..30f2d4e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h21.call @@ -0,0 +1,21 @@ +extern long h21(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h21[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + +return check_arg4(h21,ret_h21); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h22.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h22.0 new file mode 100644 index 0000000..2bd2f23 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h22.0 @@ -0,0 +1 @@ +func h22(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h22.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h22.call new file mode 100644 index 0000000..36ce291 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h22.call @@ -0,0 +1,21 @@ +extern long h22(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h22[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h22,ret_h22); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h23.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h23.0 new file mode 100644 index 0000000..6bfbf0f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h23.0 @@ -0,0 +1 @@ +func h23(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h23.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h23.call new file mode 100644 index 0000000..8344b04 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h23.call @@ -0,0 +1,21 @@ +extern long h23(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h23[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + +return check_arg4(h23,ret_h23); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h24.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h24.0 new file mode 100644 index 0000000..957d280 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h24.0 @@ -0,0 +1 @@ +func h24(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h24.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h24.call new file mode 100644 index 0000000..129ee96 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h24.call @@ -0,0 +1,21 @@ +extern long h24(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h24[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h24,ret_h24); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h3.0 new file mode 100644 index 0000000..2e3edd0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h3.0 @@ -0,0 +1 @@ +func h3(a,b,c,d) if (a=0 or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h3.call new file mode 100644 index 0000000..5267fa0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h3.call @@ -0,0 +1,21 @@ +extern long h3(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h3[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + +return check_arg4(h3,ret_h3); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h4.0 new file mode 100644 index 0000000..b157f3f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h4.0 @@ -0,0 +1 @@ +func h4(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h4.call new file mode 100644 index 0000000..84a49ba --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h4.call @@ -0,0 +1,21 @@ +extern long h4(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h4[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + +return check_arg4(h4,ret_h4); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h5.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h5.0 new file mode 100644 index 0000000..3df3a8b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h5.0 @@ -0,0 +1 @@ +func h5(a,b,c,d) if (a=0 or b=0) or (c=0 or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h5.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h5.call new file mode 100644 index 0000000..b2d1b60 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h5.call @@ -0,0 +1,21 @@ +extern long h5(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h5[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + +return check_arg4(h5,ret_h5); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h6.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h6.0 new file mode 100644 index 0000000..ab0cffe --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h6.0 @@ -0,0 +1 @@ +func h6(a,b,c,d) if ((not (a=0)) or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h6.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h6.call new file mode 100644 index 0000000..4b87331 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h6.call @@ -0,0 +1,21 @@ +extern long h6(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h6[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h6,ret_h6); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h7.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h7.0 new file mode 100644 index 0000000..f1670e4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h7.0 @@ -0,0 +1 @@ +func h7(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h7.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h7.call new file mode 100644 index 0000000..f92ed4b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h7.call @@ -0,0 +1,21 @@ +extern long h7(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h7[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + +return check_arg4(h7,ret_h7); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h8.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h8.0 new file mode 100644 index 0000000..341f7d0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h8.0 @@ -0,0 +1 @@ +func h8(a,b,c,d) if ((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h8.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h8.call new file mode 100644 index 0000000..147aa92 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h8.call @@ -0,0 +1,21 @@ +extern long h8(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h8[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h8,ret_h8); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h9.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h9.0 new file mode 100644 index 0000000..ac07344 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h9.0 @@ -0,0 +1 @@ +func h9(a,b,c,d) if not ((a=0 or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h9.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h9.call new file mode 100644 index 0000000..6b6b634 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/h9.call @@ -0,0 +1,21 @@ +extern long h9(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h9[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,1}}}}; + +return check_arg4(h9,ret_h9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/local01.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/local01.3 new file mode 100644 index 0000000..eeaa4b5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/local01.3 @@ -0,0 +1,7 @@ + +struct a1 a2 a3 end; + +(* ein Name darf nur einmal im Programm als Feldname definiert werden: + * a2, a3 werden hier nochmals definiert *) +struct b1 a2 a3 end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/localx01.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/localx01.3 new file mode 100644 index 0000000..eeaa4b5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/localx01.3 @@ -0,0 +1,7 @@ + +struct a1 a2 a3 end; + +(* ein Name darf nur einmal im Programm als Feldname definiert werden: + * a2, a3 werden hier nochmals definiert *) +struct b1 a2 a3 end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro.3 new file mode 100644 index 0000000..c68d7f6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro.3 @@ -0,0 +1,14 @@ +struct a1 a2 a1 end; +struct b1 b2 b3 end; + +func f(x,y) + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro01.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro01.3 new file mode 100644 index 0000000..0cbc8e7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro01.3 @@ -0,0 +1,5 @@ +func g(x,y) + y:=0; + return y+z; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro02.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro02.3 new file mode 100644 index 0000000..2087a5f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro02.3 @@ -0,0 +1,6 @@ +func g(x,y) + y:=0; + z:=5; + return y; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro03.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro03.3 new file mode 100644 index 0000000..1ae94f6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro03.3 @@ -0,0 +1,21 @@ +(*no se si esto de verdad deberia de dar erro :) ahora si*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + var e:=5; + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return e; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro04.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro04.3 new file mode 100644 index 0000000..0263da5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro04.3 @@ -0,0 +1,24 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro05.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro05.3 new file mode 100644 index 0000000..c7f99f5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro05.3 @@ -0,0 +1,28 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + + + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro06.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro06.3 new file mode 100644 index 0000000..369409e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro06.3 @@ -0,0 +1,27 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.d2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + + + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro07.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro07.3 new file mode 100644 index 0000000..c2c1d85 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro07.3 @@ -0,0 +1,26 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return x; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.c1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro09.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro09.3 new file mode 100644 index 0000000..cd873c9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro09.3 @@ -0,0 +1,27 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return x; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + +struct c1 c2 c3 end; +struct b1 b2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro10.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro10.3 new file mode 100644 index 0000000..aec69c5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro10.3 @@ -0,0 +1,13 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + d:=x.b2; + + + return d; +end; + + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro11.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro11.3 new file mode 100644 index 0000000..bebc86e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro11.3 @@ -0,0 +1,24 @@ +(*esto no deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + d:=x.a2; + + + return d; +end; + + +struct b1 b2 b3 end; + + + + +func f(x,y) + var a:=1; + a:=x.b2; + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro12.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro12.3 new file mode 100644 index 0000000..2881360 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro12.3 @@ -0,0 +1,55 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar erro g no esta definida*) + var d:=1; + if d = g then + d:=x.a1; + else + d:=x.a2; + end; + return d; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + var a:=1; + a:=x.f1; + + return a; +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro13.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro13.3 new file mode 100644 index 0000000..fbe767d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro13.3 @@ -0,0 +1,56 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar error t no visible*) + var d:=1; + if d = g then + var t:=5; + t:=x.a1; + else + d:=x.a2; + end; + return t; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + var a:=1; + a:=x.f1; + + return a; +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro14.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro14.3 new file mode 100644 index 0000000..e066ffd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro14.3 @@ -0,0 +1,62 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar error t no visible*) + var d:=1; + if d = g then + var t:=5; + t:=x.a1; + else + d:=x.a2; + end; + return t; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + + var g:=8; + if d = g then + var t:=5; + t:=x.a1; + else + g:=x.a2; + end; + return g; + +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro15.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro15.3 new file mode 100644 index 0000000..12ebc35 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro15.3 @@ -0,0 +1,23 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 a4 end; + +func f(a1,a2) + + var a3:=1; + var a4:=1; + a4:=a2.a2; + return a1; + +(*esto deberia de dar error t no visible*) + if a1 = a3 then + a4:=a1.a1; + else + a4:=a2.a2; + end; + return a4; + + +end; + + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro16.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro16.3 new file mode 100644 index 0000000..472dcea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/malandro16.3 @@ -0,0 +1,19 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + + var g:=1; + var d:=1; + if d = g then + var t:=5; + d:=x.a1; + else + t:=x.a2; + end; + return t; + + +end; + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_a.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_a.0 new file mode 100644 index 0000000..cd57308 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_a.0 @@ -0,0 +1,3 @@ +func f() + return -2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_a.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_a.call new file mode 100644 index 0000000..4b2cd63 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_a.call @@ -0,0 +1,3 @@ +extern long f(); +return ( -2==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_b.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_b.0 new file mode 100644 index 0000000..8d81d42 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_b.0 @@ -0,0 +1,5 @@ + +func f() + return 1+2+3+4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_b.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_b.call new file mode 100644 index 0000000..02205cd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_b.call @@ -0,0 +1,3 @@ +extern long f(); +return (10==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_c.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_c.0 new file mode 100644 index 0000000..522ce1b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_c.0 @@ -0,0 +1,5 @@ + +func f() + return 1+(2*3)+4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_c.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_c.call new file mode 100644 index 0000000..97f1369 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_c.call @@ -0,0 +1,3 @@ +extern long f(); +return (11==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_d.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_d.0 new file mode 100644 index 0000000..a67a076 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_d.0 @@ -0,0 +1,5 @@ + +func f() + return 1*2*3*4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_d.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_d.call new file mode 100644 index 0000000..93a5f48 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_d.call @@ -0,0 +1,3 @@ +extern long f(); +return (24==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_e.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_e.0 new file mode 100644 index 0000000..76a4e1d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_e.0 @@ -0,0 +1,4 @@ +func f() + return (1*((-2)+5))+(-1)+(((-2)+2)*17)+3; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_e.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_e.call new file mode 100644 index 0000000..5c3992a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_e.call @@ -0,0 +1,3 @@ +extern long f(); +return (5==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_f.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_f.0 new file mode 100644 index 0000000..810ee86 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_f.0 @@ -0,0 +1,4 @@ +func f(x) + return x; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_f.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_f.call new file mode 100644 index 0000000..c1f6158 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_f.call @@ -0,0 +1,3 @@ +extern long f(long); +return (5==f((long)5)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_g.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_g.0 new file mode 100644 index 0000000..4d66d0a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_g.0 @@ -0,0 +1,4 @@ +func f(x,y) + return x+y; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_g.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_g.call new file mode 100644 index 0000000..602cc85 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_g.call @@ -0,0 +1,3 @@ +extern long f(long, long); +return (12==f(5,7)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_h.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_h.0 new file mode 100644 index 0000000..38bc6a7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_h.0 @@ -0,0 +1,8 @@ +func f(x,y,z) + return x+y+1+z+1; +end; + +func g(z) + return z+3; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_h.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_h.call new file mode 100644 index 0000000..6a10bbb --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_h.call @@ -0,0 +1,4 @@ +extern long f(long, long, long); +extern long g(long); +return (15==f(5,7,1) && 7==g(4)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_i.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_i.3 new file mode 100644 index 0000000..b9dc472 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_i.3 @@ -0,0 +1,8 @@ +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func g(a1) + var x := 5; + return x.a1; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_j.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_j.0 new file mode 100644 index 0000000..e01b5e7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_j.0 @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s,s) + return s.a+s.b; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_j.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_j.call new file mode 100644 index 0000000..78ed0b0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_j.call @@ -0,0 +1,5 @@ +struct S {long a1; long a2; long a3;} s={10,20,30}; +struct T {long a1; long a2; long a3;} t={1,2,3}; +extern long f(long*,long*); + +return ( 3==f((long*)&s, (long*)&t)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_k.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_k.0 new file mode 100644 index 0000000..45e0e2a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_k.0 @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s,s,s,s,t,s) + return s.a+s.b+t.c; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_k.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_k.call new file mode 100644 index 0000000..a353792 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_k.call @@ -0,0 +1,9 @@ +struct A {long a1; long a2; long a3;} a={10,20,30}; +struct B {long a1; long a2; long a3;} b={10,20,30}; +struct C {long a1; long a2; long a3;} c={10,20,30}; +struct D {long a1; long a2; long a3;} d={10,20,30}; +struct E {long a1; long a2; long a3;} e={10,20,30}; +struct T {long a1; long a2; long a3;} t={1,2,3}; +extern long f(long*,long*,long*,long*,long*,long*); + +return ( 33==f((long*)&a, (long*)&b, (long*)&c, (long*)&d, (long*)&e, (long*)&t)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_l.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_l.0 new file mode 100644 index 0000000..38d9ff1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_l.0 @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s) + return s.a.a+((-3)*s.b.c)+s.c.b; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_l.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_l.call new file mode 100644 index 0000000..7bdddf9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/my_l.call @@ -0,0 +1,7 @@ +struct A {long a1; long a2; long a3;} a={1,2,3}; +struct B {long a1; long a2; long a3;} b={10,20,30}; +struct C {long a1; long a2; long a3;} c={100,200,300}; +struct S {long a1; long a2; long a3;} s={(long*)&a,(long*)&b,(long*)&c}; +extern long f(long*); + +return ( 111==f((long*)&s)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm.0 new file mode 100644 index 0000000..03eda66 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm.0 @@ -0,0 +1,3 @@ +func test(a) + return -a; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm.call new file mode 100644 index 0000000..7726e38 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm.call @@ -0,0 +1,2 @@ +extern long test (long); +return (-5==test(5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm1.0 new file mode 100644 index 0000000..03eda66 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm1.0 @@ -0,0 +1,3 @@ +func test(a) + return -a; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm1.call new file mode 100644 index 0000000..6af387d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/negterm1.call @@ -0,0 +1,2 @@ +extern long test (long); +return (5==test(-5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter1.0 new file mode 100644 index 0000000..98c634a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter1.0 @@ -0,0 +1,3 @@ +func test(a, b) + return a + b; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter1.call new file mode 100644 index 0000000..9b5ae8f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter1.call @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 34==test(29,5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter2.0 new file mode 100644 index 0000000..adb30ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter2.0 @@ -0,0 +1,3 @@ +func test(a, b, c, d, e, f) + return a + b + c + d + e + f; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter2.call new file mode 100644 index 0000000..d9f04fd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter2.call @@ -0,0 +1,2 @@ +extern long test (long,long,long,long,long,long); +return ( 21==test(1,2,3,4,5,6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter3.0 new file mode 100644 index 0000000..35bfa51 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter3.0 @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return s1.a1 + s2.a2 + s3.a3 + s4.a1 + s5.a2 + s6.a3 ; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter3.call new file mode 100644 index 0000000..7609412 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter3.call @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( (10+50+90+100+140+180)==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter4.0 new file mode 100644 index 0000000..e611e82 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter4.0 @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return s1.a1 * s2.a2 * s3.a3 * s4.a1 * s5.a2 * s6.a3 ; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter4.call new file mode 100644 index 0000000..beb0013 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter4.call @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( (10L*50L*90L*100L*140L*180L)==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter5.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter5.0 new file mode 100644 index 0000000..6392d8e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter5.0 @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2) + return s1.a1 * s2.a2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter5.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter5.call new file mode 100644 index 0000000..b6c8eaa --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter5.call @@ -0,0 +1,7 @@ +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; + +extern long test(long*,long*); + +return ( (10*50)==test((long*)&s1,(long*)&s2)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter6.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter6.0 new file mode 100644 index 0000000..6c4e304 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter6.0 @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return (s1.a1 * s2.a2) + ( s3.a3 * s4.a1) +( s5.a2 * s6.a3 ); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter6.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter6.call new file mode 100644 index 0000000..300a941 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/parameter6.call @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( ((10L*50L)+(90L*100L)+(140L*180L))==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/regfehler.4 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/regfehler.4 new file mode 100644 index 0000000..ca4f4e9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/regfehler.4 @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b * ( a + b + ( a * b * (a + b)))))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test1.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test1.3 new file mode 100644 index 0000000..634a79e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test1.3 @@ -0,0 +1,19 @@ +struct f1 f2 end; + +func f(p1) + var fx:=p1; + p1:=1; + (* f1 not defined *) + f1:=4; + (* shoult throw one of + - f1 not defined + - field access not allowed (var fx exists) + - field fx not defined + *) + f1.fx:=p1; + p1.f1:=p1.f2; + f(p1,p1.f2).f3:=0AFFEH; + var f1:=3; +end; + +struct f3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test2.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test2.3 new file mode 100644 index 0000000..eb9e51b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test2.3 @@ -0,0 +1,10 @@ +func test() + var v1:=1; + if 1=1 then + v1:=2; + var v2:=1; + end; + + (* v2 not visible *) + v2:=3; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test3.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test3.3 new file mode 100644 index 0000000..5a54492 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test3.3 @@ -0,0 +1,6 @@ +struct f end; + +func x() + (* f is a field, not a variable *) + f := 4; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test4.2 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test4.2 new file mode 100644 index 0000000..9c5de0d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/test4.2 @@ -0,0 +1,8 @@ + +func x() + var z:=3; + (* field feld not defined *) + z.feld:=x(4,5,a); + (* syntax error *) + return z+z*z; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/testscriptx03.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/testscriptx03.3 new file mode 100644 index 0000000..dde46ed --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/testscriptx03.3 @@ -0,0 +1,19 @@ +func g(x,y,z) + var res:=0; + res:=x; + while y>=0 or (not x=z) do + y:=y+(-1); + res:=res+z; + end; + return res; +end; + +struct end; + +func f() + var off:=10 + (xx * 3); + var bound:= -test.c5; + var add:= g(test.c5) + 2; + return g(off,bound,add); +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefemax.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefemax.0 new file mode 100644 index 0000000..4e9bb50 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefemax.0 @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b * ( a + b + ( a * b))))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefemax.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefemax.call new file mode 100644 index 0000000..b5d6800 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefemax.call @@ -0,0 +1,2 @@ +extern long test(long,long); +return ((3 * 8) + (3 * 8 * ( 3 + 8 + ( 3 * 8 * ( 3 + 8 + ( 3 * 8 ))))) == test(3,8)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen.0 new file mode 100644 index 0000000..133e82b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen.0 @@ -0,0 +1,4 @@ + +func test(a,b,c,d,e,f) + return (a * b) + ( c * d) + (e * f ); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen.call new file mode 100644 index 0000000..d2b3f14 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen.call @@ -0,0 +1,4 @@ + +extern long test(long,long, long, long, long, long); + +return ( ( 1 * 2 ) + (3 * 4) + ( 5 * 6 ) == test(1,2,3,4,5,6)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen1.0 new file mode 100644 index 0000000..2b56241 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen1.0 @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen1.call new file mode 100644 index 0000000..62fba13 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/testcases/tiefen1.call @@ -0,0 +1,4 @@ + +extern long test(long,long); + +return ( ( 3 * 5 ) + ( 3 * 5 * (3 + 5 + ( 3 * 5))) == test(3,5)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/tree.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/tree.c new file mode 100755 index 0000000..c3e0a44 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/tree.c @@ -0,0 +1,157 @@ +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* new_node: create "standard node" with one or two children and + * given operation + */ +treenode *new_node(int op, treenode *left, treenode *right) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_node_value: create "standard node" with one or two children and + * given operation and the given value + */ +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_leaf: create leaf - node with no children */ +treenode *new_leaf(int op) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_leaf: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_named_leaf: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf(int op, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + + return new; +} + +/* new_named_leaf_value: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf_value(int op, char *name, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf_value: %i (%s), %s, %li\n",op,rule_names[op],name,value); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_named_node: create node with one or two children and a name (can be + * used for storing a procedure's name) + */ +treenode *new_named_node(int op, treenode *left, treenode *right, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_node: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=name; + + return new; +} + +void write_indent(int indent) { + int a; + for(a=0;aop],node->name,node->reg); + if(node->kids[0]!=(treenode *)NULL || node->kids[1]!=(treenode *)NULL) { + if(node->kids[0]!=(treenode *)NULL) { + write_tree(node->kids[0], indent+1); + } + if(node->kids[1]!=(treenode *)NULL) { + write_tree(node->kids[1], indent+1); + } + } +} + +treenode *new_number_leaf(long value) { + treenode *node; + + if(value==0) { + node=new_leaf(OP_Zero); + } + else if(value==1) { + node=new_leaf(OP_One); + } + else { + node=new_leaf(OP_Number); + } + + node->value=value; + + return node; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/tree.h b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/tree.h new file mode 100755 index 0000000..a9f6d1c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/codeb/tree.h @@ -0,0 +1,94 @@ +#ifndef __TREE_H_ +#define __TREE_H_ + +#ifndef CODE +typedef struct burm_state *STATEPTR_TYPE; +#endif + +enum { + OP_Not=1, + OP_Negation, + OP_Addition, + OP_Multiplication, + OP_Disjunction, + OP_Greater, + OP_Equal, + OP_ID, + OP_Number, + OP_Field, + OP_Return, + OP_Zero, + OP_One, + OP_Exprs, + OP_Call, + OP_Assign, + OP_If, + OP_Stats, + OP_Empty, + OP_Ifstats, + OP_While +}; + +static char rule_names[100][100]={ + "", + "OP_Not", + "OP_Negation", + "OP_Addition", + "OP_Multiplication", + "OP_Disjunction", + "OP_Greater", + "OP_Equal", + "OP_ID", + "OP_Number", + "OP_Field", + "OP_Return", + "OP_Zero", + "OP_One", + "OP_Exprs", + "OP_Call", + "OP_Assign", + "OP_If", + "OP_Stats", + "OP_Empty", + "OP_Ifstats", + "OP_While" +}; + + +/* struct for the tree build by ox for iburg */ +typedef struct treenode { + int op; + struct treenode *kids[2]; + STATEPTR_TYPE label; + char *name; + long value; + char *reg; + struct treenode *parent; + int skip_reg; + int param_index; /* -1 if not a parameter */ +} treenode; + +typedef treenode *treenodep; + +/* macros for iburg being able to traverse the tree */ +#define NODEPTR_TYPE treenodep +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->label) +#define PANIC printf + +/* see tree.c for description about these procedures */ +treenode *new_node(int op, treenode *left, treenode *right); +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param); +treenode *new_leaf(int op); +treenode *new_number_leaf(long value); +treenode *new_named_leaf(int op, char *name); +treenode *new_named_leaf_value(int op, char *name, long value, int param); +treenode *new_named_node(int op, treenode *left, treenode *right, char *name); + +void write_indent(int indent); +void write_tree(treenode *node, int indent); + +#endif /* __TREE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/all-wcprops b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/all-wcprops new file mode 100644 index 0000000..db7c255 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/all-wcprops @@ -0,0 +1,77 @@ +K 25 +svn:wc:ra_dav:version-url +V 39 +/svn/private/!svn/ver/774/ublu08/gesamt +END +scanner.lex +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/private/!svn/ver/774/ublu08/gesamt/scanner.lex +END +test.c +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/private/!svn/ver/774/ublu08/gesamt/test.c +END +tree.c +K 25 +svn:wc:ra_dav:version-url +V 47 +/svn/private/!svn/ver/1023/ublu08/gesamt/tree.c +END +symbol_table.h +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1023/ublu08/gesamt/symbol_table.h +END +parser.y +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/private/!svn/ver/1209/ublu08/gesamt/parser.y +END +code_gen.c +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/private/!svn/ver/1209/ublu08/gesamt/code_gen.c +END +code.bfe +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/private/!svn/ver/1209/ublu08/gesamt/code.bfe +END +tree.h +K 25 +svn:wc:ra_dav:version-url +V 47 +/svn/private/!svn/ver/1023/ublu08/gesamt/tree.h +END +code_gen.h +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/private/!svn/ver/1209/ublu08/gesamt/code_gen.h +END +Makefile +K 25 +svn:wc:ra_dav:version-url +V 49 +/svn/private/!svn/ver/1039/ublu08/gesamt/Makefile +END +symbol_table.c +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1203/ublu08/gesamt/symbol_table.c +END +test.input +K 25 +svn:wc:ra_dav:version-url +V 50 +/svn/private/!svn/ver/774/ublu08/gesamt/test.input +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/entries b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/entries new file mode 100644 index 0000000..91aa273 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/entries @@ -0,0 +1,192 @@ +8 + +dir +774 +http://localhost/svn/private/ublu08/gesamt +http://localhost/svn/private + + + +2008-04-12T18:48:48.845570Z +774 +paulchen + + +svn:special svn:externals svn:needs-lock + +scanner.lex +file + + + + +2008-06-14T15:59:25.000000Z +e5193bdf0f2e3175afb5173efc7ac4ec +2008-04-12T18:48:48.845570Z +774 +paulchen + +tree.c +file +1023 + + + +2008-06-14T15:59:25.000000Z +ef665922d0ae02b671453df7d0864e46 +2008-05-17T18:34:11.290176Z +1023 +paulchen +has-props + +test.c +file + + + + +2008-04-12T18:47:12.000000Z +786bf407e40a331f56122d346a7d9f58 +2008-04-12T18:48:48.845570Z +774 +paulchen + +symbol_table.h +file +1023 + + + +2008-06-14T15:59:25.000000Z +a09966463523b8d5b80a106a9f546831 +2008-05-17T18:34:11.290176Z +1023 +paulchen +has-props + +parser.y +file +1209 + + + +2008-06-14T15:59:24.000000Z +3d7898a48f8dd3716587c42f355eec66 +2008-06-14T15:59:36.988491Z +1209 +paulchen + +code_gen.c +file +1209 + + + +2008-06-14T15:59:24.000000Z +180200b2225ce36b5c34c4a49c3531f9 +2008-06-14T15:59:36.988491Z +1209 +paulchen + +tree.h +file +1023 + + + +2008-06-14T15:59:25.000000Z +c49aaeebea85333816c84c38e382f1a7 +2008-05-17T18:34:11.290176Z +1023 +paulchen +has-props + +code.bfe +file +1209 + + + +2008-06-14T15:59:24.000000Z +a0c3f55d27285d4502f379edc2ceb350 +2008-06-14T15:59:36.988491Z +1209 +paulchen +has-props + +code_gen.h +file +1209 + + + +2008-06-14T15:59:24.000000Z +25a38059196df1fe92fe793da90c564c +2008-06-14T15:59:36.988491Z +1209 +paulchen + +svn-commit.tmp +file +775 + + + + + + + + + + + + + + + + + + + +deleted + +symbol_table.c +file +1203 + + + +2008-06-14T15:59:25.000000Z +b453aa450374c10280eb6fa5888bff27 +2008-05-29T18:44:14.114779Z +1203 +paulchen +has-props + +Makefile +file +1039 + + + +2008-06-14T15:59:24.000000Z +30ad7389bf3ba50050f0cc0d63ae702e +2008-05-19T16:45:22.394235Z +1039 +paulchen + +test.input +file + + + + +2008-04-12T18:26:57.000000Z +50083309858f4c96c0b9c0873e407393 +2008-04-12T18:48:48.845570Z +774 +paulchen + +testcases +dir + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/format b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/format new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/format @@ -0,0 +1 @@ +8 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/code.bfe.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/code.bfe.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/code.bfe.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/symbol_table.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/symbol_table.c.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/symbol_table.c.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/symbol_table.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/symbol_table.h.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/symbol_table.h.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/tree.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/tree.c.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/tree.c.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/tree.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/tree.h.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/prop-base/tree.h.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/Makefile.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/Makefile.svn-base new file mode 100644 index 0000000..a3bcbd4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/Makefile.svn-base @@ -0,0 +1,38 @@ +all: gesamt + +scanner.c: oxout.l + flex -oscanner.c oxout.l + +scanner.o: scanner.c parser.h symbol_table.h + gcc -g -c -ansi -pedantic scanner.c -D_GNU_SOURCE + +gesamt: scanner.o parser.o symbol_table.o code_gen.o tree.o code.o + gcc -o gesamt symbol_table.o scanner.o parser.o code_gen.o tree.o code.o -lfl + +tree.o: tree.c tree.h + gcc -g -c -ansi -pedantic -Wall tree.c + +code_gen.o: code_gen.c code_gen.h + gcc -g -c -ansi -pedantic -Wall code_gen.c -D_GNU_SOURCE + +symbol_table.o: symbol_table.c symbol_table.h + gcc -g -c -ansi -pedantic -Wall symbol_table.c -D_GNU_SOURCE + +parser.o: parser.c symbol_table.h code_gen.h tree.h + gcc -g -c -ansi -pedantic parser.c + +parser.c parser.h: oxout.y + yacc -d oxout.y -o parser.c + +oxout.y oxout.l: parser.y scanner.lex + ox parser.y scanner.lex + +code.o: code.c tree.h + gcc -g -ansi -c code.c + +code.c: code.bfe + bfe < code.bfe | iburg > code.c + +clean: + rm -f gesamt scanner.o scanner.c parser.h parser.c parser.o oxout.y oxout.l symbol_table.o code_gen.o tree.o code.c code.o testgesamt* a.out + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code.bfe.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code.bfe.svn-base new file mode 100644 index 0000000..69de53b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code.bfe.svn-base @@ -0,0 +1,88 @@ +%{ +/* vim: filetype=c + */ +#define CODE + +#include +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* TODO (-a)+b */ +/* TODO imul -> imulq, add -> addq */ +/* TODO bugs - hopefully fixed: + * func f(a,b,c,d) return ((a+1)+(b+1))+((c+1)+(d+1)); end; + * func f(a,b,c,d) var b:=a; var c:=b; var d:=c; return a+b+c+d; end; + * mul, add etc. with direct memory access + */ +/* TODO immediate values in assignments */ +/* TODO assignment with immediate value/variable on RHS */ +/* TODO immediate values in boolean expressions */ +/* TODO optimize boolean expressions */ +/* FIXME if_then label not inserted */ +%} + +%start stat +%term OP_Not=1 OP_Negation=2 OP_Addition=3 OP_Multiplication=4 OP_Disjunction=5 OP_Greater=6 OP_Equal=7 OP_ID=8 OP_Number=9 OP_Field=10 OP_Return=11 OP_Zero=12 OP_One=13 OP_Exprs=14 OP_Call=15 OP_Assign=16 OP_If=17 OP_Stats=18 OP_Empty=19 OP_Ifstats=20 OP_While=21 OP_CallNoParam=22 OP_Arg=23 + +%% + +stat: ret # 0 # +stat: assign # 0 # +stat: bexpr # 0 # +stat: expr # 0 # + +assign: OP_Assign(OP_ID, expr) # 1 # if(bnode->kids[0]->param_index!=-1 && !call) { printf("\tmovq %%%s, %%%s /* x */\n", bnode->reg, get_param_reg(bnode->kids[0]->param_index)); } else if(bnode->kids[0]->param_index!=-1 && call) { printf("\tmovq %%%s, %i(%%rsp) /* y */\n", bnode->reg, 8*(variables-bnode->kids[0]->param_index)); } else { printf("\tmovq %%%s, %i(%%rsp) /* z */\n", bnode->reg, bnode->kids[0]->value); } +assign: OP_Assign(OP_Field(expr,OP_ID), expr) # 1 # printf("\tmovq %%%s, %li(%%%s)\n", bnode->kids[1]->reg, 8*bnode->kids[0]->value, bnode->kids[0]->reg); + +ret: OP_Return(expr) # 1 # move(bnode->reg, "rax"); ret(); + +expr: OP_ID # 1 # if(bnode->param_index!=-1 && !call) { move(get_param_reg(bnode->param_index), bnode->reg); } else if(bnode->param_index!=-1 && call) { printf("\tmov %i(%%rsp), %%%s\n", 8*(variables-bnode->param_index), bnode->reg); } else { printf("\tmovq %i(%%rsp), %%%s\n", bnode->value, bnode->reg); } +expr: imm # 1 # printf("\tmovq $%li, %%%s\n", bnode->value, bnode->reg); +expr: call # 0 # +expr: OP_Negation(expr) # 1 # printf("\tnegq %%%s\n", bnode->reg); +expr: OP_Addition(expr,expr) # 1 # printf("\taddq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Addition(imm,expr) # 1 # printf("\taddq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Addition(expr,imm) # 1 # if(bnode->kids[0]->op==OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\taddq $%li, %%%s /* x2 */\n", bnode->kids[1]->value, bnode->reg); } else { printf("\taddq $%li, %%%s /* y2 */\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Multiplication(expr,expr) # 1 # printf("\timulq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Multiplication(imm,expr) # 1 # printf("\timulq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Multiplication(expr,imm) # 1 # if(bnode->kids[0]->op==OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Field(expr,OP_ID) # 2 # printf("\tmovq %li(%%%s), %%%s\n", 8*bnode->value, bnode->kids[0]->reg, bnode->reg); +expr: OP_Field(imm,OP_ID) # 1 # printf("\tmovq %li, %%%s\n", bnode->kids[0]->value+bnode->value*8, bnode->reg); + +call: OP_Call(exprs) # 0 # prepare_call(bnode->name, bnode->reg); /* reg_return=bnode->reg; */ do_call(bnode->name, bnode->reg); +call: OP_CallNoParam # 0 # # prepare_call(bnode->name, bnode->reg); /* reg_return=bnode->reg; */ /* prepare_call(bnode->name); */ do_call(bnode->name, bnode->reg); + +exprs: OP_Arg(expr) # 0 # /* reg_return=bnode->reg; function_name=bnode->name; */ /* prepare_call(bnode->name); */ +exprs: OP_Exprs(exprs,exprs) # 0 # + +zero: OP_Negation(zero) # 0 # +zero: OP_Zero # 0 # +zero: OP_Multiplication(zexpr,zero) # 0 # +zero: OP_Multiplication(zero,zexpr) # 0 # + +zexpr: zero # 0 # +zexpr: imm # 0 # +zexpr: OP_Negation(zexpr) # 0 # +zexpr: OP_Addition(zexpr,zexpr) # 0 # +zexpr: OP_Multiplication(zexpr,zexpr) # 0 # +zexpr: OP_Field(zexpr,OP_ID) # 0 # +zexpr: OP_ID # 0 # + +imm: zero # 0 # +imm: OP_Negation(imm) # 0 # bnode->value=-bnode->kids[0]->value; +imm: OP_Addition(imm,imm) # 0 # bnode->value=bnode->kids[0]->value+bnode->kids[1]->value; +imm: OP_Multiplication(imm,imm) # 0 # bnode->value=bnode->kids[0]->value*bnode->kids[1]->value; +imm: OP_Number # 0 # +imm: OP_Zero # 0 # +imm: OP_One # 0 # + +bexpr: OP_Disjunction(bexpr,bexpr) # 0 # +bexpr: OP_Not(bexpr) # 0 # +bexpr: OP_Greater(expr,expr) # 0 # +bexpr: OP_Equal(expr,expr) # 0 # + +%% + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code_gen.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code_gen.c.svn-base new file mode 100644 index 0000000..179dca5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code_gen.c.svn-base @@ -0,0 +1,104 @@ +#include +#include +#include "code_gen.h" + +int variables, call; +/* char *function_name; */ +/* char *reg_return; */ +extern char *saved_reg; + +char *reg_names[]={"rax", "r10", "r11", "r9", "r8", "rcx", "rdx", "rsi", "rdi"}; + +void function_header(char *name, int vars, int has_call, int num_pars) { + int a; + + variables = vars+(has_call ? num_pars : 0); + printf("# setting call to %i\n", has_call); + call = has_call; + + printf("\t.globl %s\n\t.type %s, @function\n%s:\n", name, name, name); + printf("# %i %i %i %i\n",vars,has_call,num_pars,(has_call ? num_pars : 0)); + if(vars+(has_call ? num_pars : 0)>0) { + printf("\tpushq %%rbp\n\tmovq %%rsp, %%rbp\n\tsubq $%i, %%rsp\n", 8*(vars+num_pars)); + if(num_pars>0 && has_call) { + for(a=0;a=0;a--) { + if(strcmp(reg_return,reg_names[a])) { + printf("\tpopq %%%s\n",reg_names[a]); + } + else { + printf("\taddq $8, %%rsp\n"); + } + } +} + +char *get_next_reg(char *name, int skip_reg) { + int index, a; + if(name==(char *)NULL) { + index=0; + } + else { + for(a=0;a<9;a++) { + if(!strcmp(name,reg_names[a])) { + index=a+1; + break; + } + } + } + if(skip_reg) { + index++; + } + if(index>8) { + return saved_reg; + } + return reg_names[index]; +} + +char *get_next_param_reg(char *reg) { + int a=1; + while(1) { + if(strcmp(get_param_reg(a),reg)==0) { + return get_param_reg(a+1); + } + a++; + } +} + +char *get_param_reg(long number) { + char *reg_names[]={"rdi", "rsi", "rdx", "rcx", "r8", "r9"}; + return reg_names[number-1]; +} + +void ret(void) { + if(variables>0) { + printf("\tleave\n"); + } + printf("\tret\n"); +} + +void move(char *src, char *dst) { + if(strcmp(src,dst)) { + printf("\tmovq %%%s, %%%s\n",src,dst); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code_gen.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code_gen.h.svn-base new file mode 100644 index 0000000..41ef621 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/code_gen.h.svn-base @@ -0,0 +1,18 @@ +#ifndef _CODE_GEN_H_ +#define _CODE_GEN_H_ + +void function_header(char *name, int vars, int has_call, int num_param); +char *get_next_reg(char *name, int skip_reg); +char *get_next_param_reg(char *reg); +char *get_param_reg(long number); +void ret(void); +void move(char *src, char *dest); +void do_call(char *function, char *reg_return); +void prepare_call(char *function, char *reg_return); + +/* extern char *function_name; */ +extern int call, variables; +/* extern char *reg_return; */ + +#endif /* _CODE_GEN_H_ */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/parser.y.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/parser.y.svn-base new file mode 100644 index 0000000..585b19b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/parser.y.svn-base @@ -0,0 +1,595 @@ +%{ + #include + #include + #include + #include "symbol_table.h" + #include "code_gen.h" + #include "tree.h" + + #define imm_prefix "$" + + char *saved_reg; + +/* TODO failed test case: func f(a) if not (a=0 or a=1) then return 0; end; end; */ +%} + +%start Input +%token FUNC END STRUCT VAR IF THEN ELSE WHILE DO RETURN OR NOT +%token ID NUM ASSIGN GREATER + +@autoinh symbols stack_offset all_pars if_in jump_true jump_false +@autosyn node defined_vars immediate if_out has_call + +@attributes { char *name; } ID +@attributes { long value; } NUM +@attributes { struct symbol_t *fields; struct symbol_t *symbols; int if_in; } Program +@attributes { struct symbol_t *fields; } Structdef +@attributes { struct symbol_t *fields; int offset; } Ids +@attributes { struct symbol_t *pars; int num_pars; int all_pars; } Pars +@attributes { struct symbol_t *symbols; int defined_vars; int if_in; int if_out; } Funcdef +@attributes { struct symbol_t *symbols; int defined_vars; int stack_offset; treenode *node; int if_in; int if_out; int has_call; } Stats +@attributes { struct symbol_t *symbols; treenode *node; int immediate; int has_call; } Expr Term Plusterm Malterm +@attributes { struct symbol_t *symbols; treenode *node; int has_call; } Call Lexpr Field Exprs +@attributes { struct symbol_t *symbols; treenode *node; char *jump_true; char *jump_false; int negated; int if_in; int if_out; int negated2; int top_level; int has_call; } Bool Orterm Subbool Bterm +@attributes { struct symbol_t *in_symbols; struct symbol_t *out_symbols; treenode *node; int defined_vars; int stack_offset; int if_in; int if_out; int has_call; } Stat +@attributes { struct symbol_t *symbols; treenode *node; int defined_vars; int stack_offset; int if_in; int if_out; int if_nr; int has_call; } Blubb + +@traversal @postorder check +@traversal @preorder reg +@traversal @preorder codegen + +%% + +Input: Program + @{ + @i @Program.symbols@ = @Program.fields@; + @i @Program.if_in@ = 0; + + @codegen printf("\t.text\n"); + @} + + ; + +Program: Funcdef ';' Program + @{ + @i @Program.fields@ = @Program.1.fields@; + @i @Program.1.if_in@ = @Funcdef.if_out@; + @} + + | Structdef ';' Program + @{ + @i @Program.fields@ = table_merge(@Structdef.fields@, @Program.1.fields@, 1); + @i @Program.1.symbols@ = @Program.0.symbols@; + @} + + | + @{ @i @Program.fields@ = new_table(); @} + + ; + +Funcdef: FUNC ID '(' Pars ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, @Pars.pars@, 0); + @i @Stats.stack_offset@ = 0; + @i @Pars.all_pars@ = @Pars.num_pars@; + + @codegen function_header(@ID.name@, @Funcdef.defined_vars@, @Stats.has_call@, @Pars.num_pars@); + @} + + | FUNC ID '(' ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, new_table(), 0); + @i @Stats.stack_offset@ = 0; + + @codegen function_header(@ID.name@, @Funcdef.defined_vars@, @Stats.has_call@, 0); + @} + + ; + +Structdef: STRUCT Ids END + @{ + @i @Structdef.fields@ = @Ids.fields@; + @i @Ids.offset@ = 0; + @} + + ; + +Ids: ID Ids + @{ + @i @Ids.fields@ = table_add_symbol(@Ids.1.fields@, @ID.name@, SYMBOL_TYPE_FIELD, 1, @Ids.offset@); + @i @Ids.1.offset@ = @Ids.offset@ + 1; + @} + + | + @{ @i @Ids.fields@ = new_table(); @} + + ; + +Pars: Pars ',' ID + @{ + @i @Pars.pars@ = table_add_param(@Pars.1.pars@, @ID.name@, @Pars.num_pars@); + @i @Pars.num_pars@ = @Pars.1.num_pars@ + 1; + @} + + | ID + @{ + @i @Pars.pars@ = table_add_param(new_table(), @ID.name@, 1); + @i @Pars.num_pars@ = 1; + @} + + ; + +Stats: Stat ';' Stats + @{ + @i @Stat.in_symbols@ = @Stats.symbols@; + @i @Stats.1.symbols@ = @Stat.out_symbols@; + @i @Stats.defined_vars@ = @Stat.defined_vars@ + @Stats.1.defined_vars@; + @i @Stats.1.stack_offset@ = @Stats.stack_offset@ + @Stat.defined_vars@ * 8; + @i @Stats.node@ = new_node(OP_Stats, @Stat.node@, @Stats.1.node@); + @i @Stat.if_in@ = @Stats.if_in@; + @i @Stats.1.if_in@ = @Stat.if_out@; + @i @Stats.if_out@ = @Stats.1.if_out@; + @i @Stats.has_call@ = @Stat.has_call@ || @Stats.1.has_call@; + @} + + | + @{ + @i @Stats.node@ = new_leaf(OP_Empty); /* TODO */ + @i @Stats.defined_vars@ = 0; + @i @Stats.if_out@ = @Stats.if_in@; + @i @Stats.has_call@ = 0; + @} + + ; + +Stat: VAR ID ASSIGN Expr /* Nodes necessary for IF, DO, ... ? */ + @{ + @i @Stat.out_symbols@ = table_add_symbol(clone_table(@Stat.in_symbols@), @ID.name@, SYMBOL_TYPE_VAR, 0, @Stat.stack_offset@); + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Assign, new_named_leaf_value(OP_ID, @ID.name@, @Stat.stack_offset@, -1), @Expr.node@); + @i @Stat.defined_vars@ = 1; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Expr.node@->reg = get_next_reg((char *)NULL, 0); @Stat.node@->reg = @Expr.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | Lexpr ASSIGN Expr + @{ + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Lexpr.symbols@ = @Stat.in_symbols@; + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Assign, @Lexpr.node@, @Expr.node@); + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + @i @Stat.has_call@ = @Lexpr.has_call@ || @Expr.has_call@; + + @reg @Lexpr.node@->reg = get_next_reg((char *)NULL, 0); @Expr.node@->reg = get_next_reg(@Lexpr.node@->reg, 0); @Stat.node@->reg = @Expr.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | IF Bool THEN Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_If, @Bool.node@, @Stats.node@); + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Stat.if_out@ = @Stats.if_out@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "if_then%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "if_end%i", @Stats.if_in@); + @i @Stat.has_call@ = @Bool.has_call@ || @Stats.has_call@; + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz if_end%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("if_end%i:\n", @Stats.if_in@); + @} + + | IF Bool THEN Stats Blubb END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Blubb.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Ifstats, @Stats.node@, @Blubb.node@); + @i @Stat.defined_vars@ = @Stats.defined_vars@ + @Blubb.defined_vars@; + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Blubb.if_in@ = @Stats.if_out@; + @i @Stat.if_out@ = @Blubb.if_out@; + @i @Blubb.if_nr@ = @Stats.if_in@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "if_then%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "if_else%i", @Stats.if_in@); + @i @Stat.has_call@ = @Bool.has_call@ || @Stats.has_call@ || @Blubb.has_call@; + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz if_else%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("if_end%i:\n", @Stats.if_in@); + @} + + | WHILE Bool DO Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_While, @Bool.node@, @Stats.node@); + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Stat.if_out@ = @Stats.if_out@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "do_enter%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "do_end%i", @Stats.if_in@); + @i @Stat.has_call@ = @Bool.has_call@ || @Stats.has_call@; + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen printf("do_start%i:\n", @Stats.if_in@); /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz do_end%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("\tjmp do_start%i\ndo_end%i:\n", @Stats.if_in@, @Stats.if_in@); + @} + + | Call + @{ + @i @Call.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Call.node@->reg = "rax"; + @} + + | RETURN Expr + @{ + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Return, @Expr.node@, (treenode *)NULL); + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg if(@Expr.node@->op == OP_Call) { @Stat.node@->reg = get_next_reg("rax", 0); } else { @Stat.node@->reg = get_next_reg((char *)NULL, 0); } @Expr.node@->reg = @Stat.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + ; + +Blubb: ELSE Stats + @{ + @codegen printf("\tjmp if_end%i\nif_else%i:\n", @Blubb.if_nr@, @Blubb.if_nr@); + @} + +Lexpr: ID + @{ + @i @Lexpr.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Lexpr.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Lexpr.symbols@, @ID.name@)->stack_offset, (table_lookup(@Lexpr.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Lexpr.symbols@, @ID.name@)->param_index); + + @i @Lexpr.has_call@ = 0; + @check check_variable(@Lexpr.symbols@, @ID.name@); + @} + + | Field + ; + +Expr: '-' Term + @{ + @i @Expr.node@ = new_node(OP_Negation, @Term.node@, (treenode *)NULL); + + @reg @Term.node@->reg = @Expr.node@->reg; + @} + + | Term + @{ @reg @Term.node@->reg = @Expr.node@->reg; @} + + | Term Plusterm + @{ + @i @Expr.node@ = new_node(OP_Addition, @Plusterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Plusterm.immediate@; + @i @Expr.has_call@ = @Term.has_call@ || @Plusterm.has_call@; + + @reg if(!@Plusterm.immediate@) { @Plusterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.node@->reg, @Expr.node@->skip_reg); @Plusterm.node@->skip_reg = 1; } else { @Term.node@->reg = @Expr.node@->reg; @Plusterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + | Term Malterm + @{ + @i @Expr.node@ = new_node(OP_Multiplication, @Malterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Malterm.immediate@; + @i @Expr.has_call@ = @Term.has_call@ || @Malterm.has_call@; + + @reg if(!@Malterm.immediate@) { @Malterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.node@->reg, @Expr.node@->skip_reg); @Malterm.node@->skip_reg = 1; } else { @Term.node@-> reg = @Expr.node@->reg; @Malterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + ; + +Plusterm: '+' Term Plusterm + @{ + @i @Plusterm.node@ = new_node(OP_Addition, @Plusterm.1.node@, @Term.node@); + @i @Plusterm.immediate@ = @Term.immediate@ && @Plusterm.1.immediate@; + @i @Plusterm.has_call@ = @Term.has_call@ || @Plusterm.1.has_call@; + + @reg @Plusterm.1.node@->reg = @Plusterm.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.1.node@->reg, @Plusterm.node@->skip_reg); + @} + + | '+' Term + @{ @reg @Term.node@->reg = @Plusterm.node@->reg; @} + + ; + +Malterm: '*' Term Malterm + @{ + @i @Malterm.node@ = new_node(OP_Multiplication, @Malterm.1.node@, @Term.node@); + @i @Malterm.immediate@ = @Term.immediate@ && @Malterm.1.immediate@; + @i @Malterm.has_call@ = @Term.has_call@ || @Malterm.1.has_call@; + + @reg @Malterm.1.node@->reg = @Malterm.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.1.node@->reg, @Malterm.node@->skip_reg); + @} + + | '*' Term + @{ @reg @Term.node@->reg = @Malterm.node@->reg; @} + + ; + +Term: '(' Expr ')' + @{ @reg @Expr.node@->reg = @Term.node@->reg; @} + + | ID + @{ + @i @Term.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->stack_offset, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->param_index); + @i @Term.immediate@ = 0; + @i @Term.has_call@ = 0; + + @check check_variable(@Term.symbols@, @ID.name@); + @} + + | NUM + @{ + @i @Term.node@ = new_number_leaf(@NUM.value@); + @i @Term.immediate@ = 1; + @i @Term.has_call@ = 0; + @} + + | Call + @{ + @i @Term.immediate@ = 0; + + @reg @Call.node@->reg = @Term.node@->reg; + @} + + | Field + @{ + @i @Term.immediate@ = 0; + + @reg @Field.node@->reg = @Term.node@->reg; + @} + + ; + +/* TODO replace by Bool -> Subbool */ +Bool: Bterm + @{ + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 0; + @i @Bterm.negated2@ = 0; + @i @Bool.top_level@ = 1; + @i @Bterm.top_level@ = 1; + + @codegen @revorder(1) if(@Bterm.node@->op!=OP_Disjunction) { printf("\tjmp %s # foo1\n", @Bool.jump_false@); } printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\n%s:\n", @Bool.jump_false@, @Bool.jump_true@); */ + @} + + | Bterm Orterm + @{ + @i @Bool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 0; + @i @Orterm.negated@ = 0; + @i @Bterm.negated2@ = 0; + @i @Orterm.negated2@ = 0; + @e Bterm.jump_true : Bool.negated Bool.jump_true Bool.if_in; if(!@Bool.negated@) { @Bterm.jump_true@ = malloc(100); sprintf(@Bterm.jump_true@, "bool_true%i", @Bool.if_in@); } else { @Bterm.jump_true@ = @Bool.jump_true@; } + @i @Orterm.jump_true@ = @Bterm.jump_true@; + @e Bterm.jump_false : Bool.negated Bool.jump_false Bool.if_in; if(@Bool.negated@) { @Bterm.jump_false@ = malloc(100); sprintf(@Bterm.jump_false@, "bool_false%i", @Bool.if_in@); } else { @Bterm.jump_false@ = @Bool.jump_false@; } + @i @Orterm.jump_false@ = @Bterm.jump_false@; + @i @Bterm.if_in@ = @Bool.if_in@ + 1; + @i @Orterm.if_in@ = @Bterm.if_out@; + @i @Bool.if_out@ = @Orterm.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.top_level@ = 0; + @i @Bool.top_level@ = 1; + @i @Bool.has_call@ = @Bterm.has_call@ || @Orterm.has_call@; + + @reg @Bterm.node@->reg = @Bool.node@->reg; @Orterm.node@->reg = @Bool.node@->reg; + + @codegen @revorder(1) printf("\tjmp %s # foo2\n", @Bool.jump_false@); printf(@Bool.negated@ ? "bool_false%i:\n" : "bool_true%i:\n", @Bool.if_in@); printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\n%s:\n", @Bool.jump_false@, @Bool.jump_true@); */ + @} + + | NOT Bterm + @{ + @i @Bool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); + @i @Bterm.jump_true@ = @Bool.jump_true@; + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 1; + @i @Bterm.negated2@ = 1; + @i @Bterm.top_level@ = 0; + @i @Bool.top_level@ = 1; + + @reg @Bterm.node@-> reg = @Bool.node@->reg; + + @codegen @revorder(1) if(@Bterm.node@->op!=OP_Not) { printf("\tjmp %s # foo3\n", @Bool.jump_false@); } printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\nnot_break%i:\n\tjmp %s\n%s:\n", @Bool.jump_true@, 0, @Bool.jump_false@, @Bool.jump_true@); */ + @} + + ; + +Subbool: Bterm + @{ + @i @Bterm.negated@ = @Subbool.negated@; + @i @Bterm.negated2@ = @Subbool.negated2@; + @i @Bterm.top_level@ = @Subbool.top_level@; + @codegen @revorder(1) /* printf("\tjmp %s\n%s:\n", @Subbool.jump_false@, @Subbool.jump_true@); */ + @} + + | Bterm Orterm + @{ + @i @Subbool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); + @i @Bterm.negated@ = @Subbool.negated@; + @i @Orterm.negated@ = @Subbool.negated@; + @i @Bterm.negated2@ = 0; + @i @Orterm.negated2@ = 0; + @e Bterm.jump_true : Subbool.negated Subbool.negated2 Subbool.jump_true Subbool.if_in; if(!@Subbool.negated@ && @Subbool.negated2@) { @Bterm.jump_true@ = malloc(100); sprintf(@Bterm.jump_true@, "bool_true%i", @Subbool.if_in@); } else { @Bterm.jump_true@ = @Subbool.jump_true@; } + @i @Orterm.jump_true@ = @Bterm.jump_true@; + @e Bterm.jump_false : Subbool.negated Subbool.negated2 Subbool.jump_false Subbool.if_in; if(@Subbool.negated@ && @Subbool.negated2@) { @Bterm.jump_false@ = malloc(100); sprintf(@Bterm.jump_false@, "bool_false%i", @Subbool.if_in@); } else { @Bterm.jump_false@ = @Subbool.jump_false@; } + @i @Orterm.jump_false@ = @Bterm.jump_false@; + @i @Bterm.if_in@ = @Subbool.if_in@ + 1; + @i @Orterm.if_in@ = @Bterm.if_out@; + @i @Subbool.if_out@ = @Orterm.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.top_level@ = 0; + @i @Subbool.has_call@ = @Bterm.has_call@ || @Orterm.has_call@; + + @reg @Bterm.node@->reg = @Subbool.node@->reg; @Orterm.node@->reg = @Subbool.node@->reg; + + @codegen @revorder(1) /* TODO output if on top level */ if(@Subbool.negated2@ || @Subbool.top_level@) { printf("\tjmp %s # foo4\n", @Subbool.negated2@ ? @Subbool.jump_true@ : @Subbool.jump_false@); } printf(!@Subbool.negated@ ? "bool_true%i:\n" : "bool_false%i:\n", @Subbool.if_in@); /* printf("\tjmp %s\n# %s:\n", @Subbool.jump_true@, @Subbool.jump_true@); */ + @} + + | NOT Bterm + @{ + @i @Subbool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); + @i @Bterm.jump_true@ = @Subbool.jump_true@; + @i @Bterm.negated@ = 1 - @Subbool.negated@; + @i @Bterm.negated2@ = 1 - @Subbool.negated2@; + @i @Bterm.top_level@ = 0; + + @reg @Bterm.node@-> reg = @Subbool.node@->reg; /* printf("%s, %s\n", @Bterm.jump_true@, @Subbool.jump_false@); */ + + @codegen @revorder(1) printf("# !!\n"); if(@Subbool.negated2@ || @Subbool.top_level@) { printf("\tjmp %s # foo9\n", @Subbool.negated2@ ? @Subbool.jump_false@ : @Subbool.jump_false@); } /* printf("\tjmp %s\nnot_break%i:\n", @Subbool.negated@ ? @Bterm.jump_true@ : @Subbool.jump_false@, 0); printf("\tjmp %s\n%s:\n", @Subbool.jump_false@, @Subbool.jump_true@); */ + @} + + ; + + +Orterm: OR Bterm Orterm + @{ + @i @Orterm.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.1.node@); + @i @Bterm.negated@ = @Orterm.negated@; + @i @Orterm.1.negated@ = @Orterm.negated@; + @i @Bterm.negated2@ = 0; + @i @Orterm.1.negated2@ = 0; + @i @Orterm.1.if_in@ = @Bterm.if_out@; + @i @Orterm.if_out@ = @Orterm.1.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.1.top_level@ = 0; + @i @Orterm.has_call@ = @Bterm.has_call@ || @Orterm.1.has_call@; + + @reg @Bterm.node@->reg = @Orterm.node@->reg; @Orterm.1.node@->reg = @Orterm.node@->reg; + @} + + | OR Bterm + @{ + @i @Bterm.negated@ = @Orterm.negated@; + @i @Bterm.negated2@ = @Orterm.negated2@; + @i @Bterm.top_level@ = 0; + @} + + ; + +Bterm: Term GREATER Term + @{ + @i @Bterm.node@ = new_node(OP_Greater, @Term.node@, @Term.1.node@); + @i @Bterm.if_out@ = @Bterm.if_in@; + @i @Bterm.has_call@ = @Term.has_call@ || @Term.1.has_call@; + + @reg @Term.node@->reg = @Bterm.node@->reg; @Term.1.node@->reg = get_next_reg(@Bterm.node@->reg, 0); + + @codegen /* write_tree(@Term.node@, 0); */ burm_label(@Term.node@); burm_reduce(@Term.node@, 1); /* write_tree(@Term.1.node@, 0); */ burm_label(@Term.1.node@); burm_reduce(@Term.1.node@, 1); printf(@Bterm.negated2@ ? "\tcmp %%%s, %%%s\n\tjs %s # %s %s %i %i\n" : "\tcmp %%%s, %%%s\n\tjns %s # %s %s %i %i\n", @Term.1.node@->reg, @Term.node@->reg, ((@Bterm.negated2@ ^ @Bterm.negated@)) ? @Bterm.jump_false@ : @Bterm.jump_true@, @Bterm.jump_true@, @Bterm.jump_false@, @Bterm.negated2@, @Bterm.negated@); + @} + + | Term '=' Term + @{ + @i @Bterm.node@ = new_node(OP_Equal, @Term.node@, @Term.1.node@); + @i @Bterm.if_out@ = @Bterm.if_in@; + @i @Bterm.has_call@ = @Term.has_call@ || @Term.1.has_call@; + + @reg @Term.node@->reg = @Bterm.node@->reg; @Term.1.node@->reg = get_next_reg(@Bterm.node@->reg, 0); + + @codegen /* write_tree(@Term.node@, 0); */ burm_label(@Term.node@); burm_reduce(@Term.node@, 1); /* write_tree(@Term.1.node@, 0); */ burm_label(@Term.1.node@); burm_reduce(@Term.1.node@, 1); printf(@Bterm.negated2@ ? "\tcmp %%%s, %%%s\n\tjnz %s # %s %s %i %i\n" : "\tcmp %%%s, %%%s\n\tjz %s # %s %s %i %i\n", @Term.node@->reg, @Term.1.node@->reg, ((@Bterm.negated2@ ^ @Bterm.negated@)) ? @Bterm.jump_false@ : @Bterm.jump_true@, @Bterm.jump_true@, @Bterm.jump_false@, @Bterm.negated2@, @Bterm.negated@); + @} + + | '(' Subbool ')' + @{ + @i @Subbool.negated@ = @Bterm.negated@; + @i @Subbool.negated2@ = @Bterm.negated2@; + @i @Subbool.top_level@ = @Bterm.top_level@; + @} + + ; + +Field: Term '.' ID + @{ + @i @Field.node@ = new_node_value(OP_Field, @Term.node@, new_named_leaf(OP_ID, @ID.name@), table_lookup(@Field.symbols@, @ID.name@)==(struct symbol_t *)NULL ? 0 : table_lookup(@Field.symbols@, @ID.name@)->stack_offset, -1); + + @check check_field(@Field.symbols@, @ID.name@); + + @reg @Term.node@->reg = @Field.node@->reg; @Field.node@->kids[1]->reg = get_next_reg(@Field.node@->reg, 0); + @} + + ; + +Call: ID '(' Exprs ')' + @{ + @i @Call.node@ = new_named_node(OP_Call, @Exprs.node@, (treenode *)NULL, @ID.name@); + @i @Call.has_call@ = 1; + + @reg saved_reg = @Call.node@->reg; @Exprs.node@->reg = "rdi"; @Exprs.node@->name=@Call.node@->name; + + @codegen /* reg_return=@Call.node@->reg; function_name = @ID.name@; prepare_call(function_name); */ + @} + + | ID '(' ')' + @{ + @i @Call.node@ = new_node(OP_CallNoParam, (treenode *)NULL, (treenode *)NULL); + @i @Call.has_call@ = 1; + + @codegen /* reg_return=@Call.node@->reg; do_call(@ID.name@); */ + @} + + ; + +Exprs: Expr + @{ + @i @Exprs.node@ = new_node(OP_Arg, @Expr.node@, (treenode *)NULL); + + @reg @Expr.node@->reg = @Exprs.node@->reg; + + @codegen /* write_tree(@Expr.node@); */ /* burm_label(@Expr.node@); burm_reduce(@Expr.node@, 1); do_call(function_name); */ + @} + + | Expr ',' Exprs + @{ + @i @Exprs.node@ = new_node(OP_Exprs, new_node(OP_Arg, @Expr.node@, (treenode *)NULL), @Exprs.1.node@); + @i @Exprs.has_call@ = @Exprs.1.has_call@ || @Expr.has_call@; + + @reg @Expr.node@->reg = @Exprs.node@->reg; @Exprs.1.node@->reg = get_next_param_reg(@Exprs.node@->reg); @Exprs.node@->kids[0]->name = @Exprs.node@->name; @Exprs.1.node@->name = @Exprs.node@->name; + + @codegen /* write_tree(@Expr.node@); */ /* burm_label(@Expr.node@); burm_reduce(@Expr.node@, 1); */ + @} + + ; + +%% + +extern int yylex(); +extern int yylineno; + +int yyerror(char *error_text) { + fprintf(stderr,"Line %i: %s\n",yylineno, error_text); + exit(2); +} + +int main(int argc, char **argv) { + yyparse(); + return 0; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/scanner.lex.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/scanner.lex.svn-base new file mode 100644 index 0000000..5cf6520 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/scanner.lex.svn-base @@ -0,0 +1,67 @@ + #include + #include + #include + #include "parser.h" + #include "tree.h" + +KEYWORD func|end|struct|var|if|then|else|while|do|return|or|not +IDENTIFIER [[:alpha:]_][[:alnum:]_]* +NUMBER_HEX [0-9][0-9A-Fa-f]*H +NUMBER_DEC [0-9]+ +WHITESPACE [\t\n\r ] +COMMENT_START \(\* +COMMENT_END \*\) + +%x COMMENT +%option yylineno +%% + +{COMMENT_START} BEGIN(COMMENT); + +{COMMENT_END} BEGIN(INITIAL); + +{COMMENT_START} fprintf(stderr, "Possibly nested comment on line %i\n", yylineno); + +<> { fprintf(stderr, "Unterminated comment.\n"); exit(1); } + +{WHITESPACE} /* ignore */ + +. /* ignore everything inside comment */ + +func return(FUNC); +end return(END); +struct return(STRUCT); +var return(VAR); +if return(IF); +then return(THEN); +else return(ELSE); +while return(WHILE); +do return(DO); +return return(RETURN); +or return(OR); +not return(NOT); + +{IDENTIFIER} return(ID); @{ @ID.name@=strdup(yytext); @} + +{NUMBER_DEC} return(NUM); @{ @NUM.value@=strtol(yytext,(char **)NULL,10); @} +{NUMBER_HEX} return(NUM); @{ yytext[strlen(yytext)-1]='\0'; @NUM.value@=strtol(yytext,(char **)NULL,16); @} + +\:= return(ASSIGN); +>= return(GREATER); +\; return(';'); +\. return('.'); +\( return('('); +\) return(')'); +\, return(','); +\- return('-'); +\+ return('+'); +\* return('*'); += return('='); + +{WHITESPACE} /* ignore */ + +. { fprintf(stderr, "Lexical error on line %i\n", yylineno); exit(1); } + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/symbol_table.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/symbol_table.c.svn-base new file mode 100644 index 0000000..bf66a65 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/symbol_table.c.svn-base @@ -0,0 +1,192 @@ +#include +#include +#include +#include "symbol_table.h" + +struct symbol_t *new_table(void) { + return (struct symbol_t *)NULL; +} + +struct symbol_t *clone_table(struct symbol_t *table) { + struct symbol_t *element; + struct symbol_t *new_tablex; + + element=table; + new_tablex=new_table(); + while((struct symbol_t *)NULL!=element) { + /* check return value */ + if(element->param_index!=-1) { + new_tablex=table_add_param(new_tablex,element->identifier,element->param_index); + } + else { + new_tablex=table_add_symbol(new_tablex,element->identifier,element->type,0,element->stack_offset); + } + element=element->next; + } + + return new_tablex; +} + +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + if(check) { + fprintf(stderr,"Duplicate field %s.\n",identifier); + exit(3); + } + + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=type; + new_element->stack_offset=stack_offset; + new_element->param_index=-1; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=SYMBOL_TYPE_PARAM; + new_element->param_index=param_index; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + + element=table; + + if((struct symbol_t *)NULL==table) { + return (struct symbol_t *)NULL; + } + + if(strcmp(element->identifier,identifier)==0) { + return element; + } + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + if(strcmp(element->identifier,identifier)==0) { + return element; + } + } + + return (struct symbol_t *)NULL; +} + +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check) { + struct symbol_t *element; + struct symbol_t *new_table=clone_table(table); + + element=to_add; + while(element!=(struct symbol_t *)NULL) { + if(element->param_index!=-1) { + new_table=table_add_param(new_table,element->identifier,element->param_index); + } + else { + new_table=table_add_symbol(new_table,element->identifier,element->type,check,element->stack_offset); + } + element=element->next; + } + + return new_table; +} + +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + struct symbol_t *previous_element; + struct symbol_t *new_element; + + if((struct symbol_t *)NULL==table) { + return table; + } + + previous_element=(struct symbol_t *)NULL; + element=table; + + while((struct symbol_t *)NULL!=element) { + if(strcmp(element->identifier,identifier)==0) { + if((struct symbol_t *)NULL==previous_element) { + new_element=element->next; + } + else { + previous_element->next=element->next; + new_element=table; + } + (void)free(element->identifier); + (void)free(element); + return new_element; + } + previous_element=element; + element=element->next; + } + + return table; +} + +void check_variable(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_VAR && element->type!=SYMBOL_TYPE_PARAM) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + +void check_field(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_FIELD) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/symbol_table.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/symbol_table.h.svn-base new file mode 100644 index 0000000..f8f3687 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/symbol_table.h.svn-base @@ -0,0 +1,27 @@ +#ifndef SYMBOL_TABLE_H +#define SYMBOL_TABLE_H + +#define SYMBOL_TYPE_FIELD 1 +#define SYMBOL_TYPE_VAR 2 +#define SYMBOL_TYPE_PARAM 3 + +struct symbol_t { + char *identifier; + struct symbol_t *next; + short type; + int stack_offset; + int param_index; /* -1 if not a parameter */ +}; + +struct symbol_t *clone_table(struct symbol_t *table); +struct symbol_t *new_table(void); +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset); +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index); +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier); +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier); +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check); +void check_variable(struct symbol_t *table, char *identifier); +void check_field(struct symbol_t *table, char *identifier); + +#endif /* SYMBOL_TABLE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/test.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/test.c.svn-base new file mode 100644 index 0000000..7b38912 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/test.c.svn-base @@ -0,0 +1,187 @@ + #include + +extern long f1(long a); +extern long f2(long a); +extern long f3(long a); +extern long f4(long a); +extern long f5(long a); +extern long f6(long a); +extern long f7(long a); +extern long f8(long a); +extern long f9(long a); +extern long f10(long a); + +extern long g1(long a, long b); +extern long g2(long a, long b); +extern long g3(long a, long b); +extern long g4(long a, long b); +extern long g5(long a, long b); +extern long g6(long a, long b); +extern long g7(long a, long b); +extern long g8(long a, long b); +extern long g9(long a, long b); +extern long g10(long a, long b); +extern long g11(long a, long b); +extern long g12(long a, long b); + +extern long h1(long a, long b, long c, long d); +extern long h2(long a, long b, long c, long d); +extern long h3(long a, long b, long c, long d); +extern long h4(long a, long b, long c, long d); +extern long h5(long a, long b, long c, long d); +extern long h6(long a, long b, long c, long d); +extern long h7(long a, long b, long c, long d); +extern long h8(long a, long b, long c, long d); +extern long h9(long a, long b, long c, long d); +extern long h10(long a, long b, long c, long d); +extern long h11(long a, long b, long c, long d); +extern long h12(long a, long b, long c, long d); +extern long h13(long a, long b, long c, long d); +extern long h14(long a, long b, long c, long d); +extern long h15(long a, long b, long c, long d); +extern long h16(long a, long b, long c, long d); +extern long h17(long a, long b, long c, long d); +extern long h18(long a, long b, long c, long d); +extern long h19(long a, long b, long c, long d); +extern long h20(long a, long b, long c, long d); +extern long h21(long a, long b, long c, long d); +extern long h22(long a, long b, long c, long d); +extern long h23(long a, long b, long c, long d); +extern long h24(long a, long b, long c, long d); + +int check_arg1(char *name, long (*function)(long), long ret0, long ret1, long ret2) { + int ret; + ret=function(0)==ret0 && function(1)==ret1 && function(2)==ret2; + printf("%s: %li/%li, %li/%li, %li/%li - %s\n", name,function(0), ret0, function(1), ret1, function(2), ret2, ret ? "ok" : "FAIL"); + return ret; +} + +int check_arg2(char *name, long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + printf("%s - ", name); + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + printf("%li/%li ", function(a,b),blubb[a][b]); + } + } + printf("- %s\n", ret ? "ok" : "FAIL"); + return ret; +} + +int check_arg4(char *name, long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + printf("%s - ", name); + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + printf("%li/%li ", function(a,b,c,d),blubb[a][b][c][d]); + } + } + } + } + printf("- %s\n", ret ? "ok" : "FAIL"); + return ret; +} + +int main(int argc, char **argv) { + int ret; + + long ret_g1[2][2]={{1,1},{1,0}}; + long ret_g2[2][2]={{1,0},{1,1}}; + long ret_g3[2][2]={{1,1},{0,1}}; + long ret_g4[2][2]={{0,1},{1,1}}; + long ret_g5[2][2]={{0,0},{0,1}}; + long ret_g6[2][2]={{0,1},{0,0}}; + long ret_g7[2][2]={{0,0},{1,0}}; + long ret_g8[2][2]={{1,0},{0,0}}; + long ret_g9[2][2]={{1,1},{1,0}}; + long ret_g10[2][2]={{1,0},{1,1}}; + long ret_g11[2][2]={{1,1},{0,1}}; + long ret_g12[2][2]={{0,1},{1,1}}; + + long ret_h1[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + long ret_h2[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h3[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + long ret_h4[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + long ret_h5[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + + long ret_h6[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h7[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + long ret_h8[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + + long ret_h9[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,1}}}}; + long ret_h10[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,1}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + long ret_h11[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,1}},{{0,0},{0,0}}}}; + long ret_h12[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,1},{0,0}}}}; + long ret_h13[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{1,0}}}}; + long ret_h14[2][2][2][2]={{{{0,0},{0,1}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + long ret_h15[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{1,0},{0,0}}}}; + long ret_h16[2][2][2][2]={{{{1,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + + long ret_h17[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + long ret_h18[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h19[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + long ret_h20[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + long ret_h21[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + + long ret_h22[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h23[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + long ret_h24[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + + ret=check_arg1("f1",f1,0,1,1); + ret&=check_arg1("f2",f2,0,0,1); + ret&=check_arg1("f3",f3,1,0,0); + ret&=check_arg1("f4",f4,0,1,1); + ret&=check_arg1("f5",f5,0,0,1); + ret&=check_arg1("f6",f6,1,0,0); + ret&=check_arg1("f7",f7,0,1,1); + ret&=check_arg1("f8",f8,0,0,1); + ret&=check_arg1("f9",f9,1,1,1); + ret&=check_arg1("f10",f10,1,0,0); + + ret&=check_arg2("g1",g1,ret_g1); + ret&=check_arg2("g2",g2,ret_g2); + ret&=check_arg2("g3",g3,ret_g3); + ret&=check_arg2("g4",g4,ret_g4); + ret&=check_arg2("g5",g5,ret_g5); + ret&=check_arg2("g6",g6,ret_g6); + ret&=check_arg2("g7",g7,ret_g7); + ret&=check_arg2("g8",g8,ret_g8); + ret&=check_arg2("g9",g9,ret_g9); + ret&=check_arg2("g10",g10,ret_g10); + ret&=check_arg2("g11",g11,ret_g11); + ret&=check_arg2("g12",g12,ret_g12); + + ret&=check_arg4("h1",h1,ret_h1); + ret&=check_arg4("h2",h2,ret_h2); + ret&=check_arg4("h3",h3,ret_h3); + ret&=check_arg4("h4",h4,ret_h4); + ret&=check_arg4("h5",h5,ret_h5); + ret&=check_arg4("h6",h6,ret_h6); + ret&=check_arg4("h7",h7,ret_h7); + ret&=check_arg4("h8",h8,ret_h8); + ret&=check_arg4("h9",h9,ret_h9); + ret&=check_arg4("h10",h10,ret_h10); + ret&=check_arg4("h11",h11,ret_h11); + ret&=check_arg4("h12",h12,ret_h12); + ret&=check_arg4("h13",h13,ret_h13); + ret&=check_arg4("h14",h14,ret_h14); + ret&=check_arg4("h15",h15,ret_h15); + ret&=check_arg4("h16",h16,ret_h16); + ret&=check_arg4("h17",h17,ret_h17); + ret&=check_arg4("h18",h18,ret_h18); + ret&=check_arg4("h19",h19,ret_h19); + ret&=check_arg4("h20",h20,ret_h20); + ret&=check_arg4("h21",h21,ret_h21); + ret&=check_arg4("h22",h22,ret_h22); + ret&=check_arg4("h23",h23,ret_h23); + ret&=check_arg4("h24",h24,ret_h24); + + return !ret; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/test.input.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/test.input.svn-base new file mode 100644 index 0000000..54a2eae --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/test.input.svn-base @@ -0,0 +1,55 @@ +func f1(a) if a=0 then return 0; else return 1; end; end; +func f2(a) if a=0 or a=1 then return 0; else return 1; end; end; +func f3(a) if not (a=0) then return 0; else return 1; end; end; +func f4(a) if (a=0) then return 0; else return 1; end; end; +func f5(a) if (a=0 or a=1) then return 0; else return 1; end; end; +func f6(a) if (not (a=0)) then return 0; else return 1; end; end; +func f7(a) if not (not (a=0)) then return 0; else return 1; end; end; +func f8(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; +func f9(a) if not ((not (a=0)) or (not (a=1))) then return 0; else return 1; end; end; +func f10(a) if (not (not (not (a=0)))) then return 0; else return 1; end; end; + +func g1(a,b) if (a=0 or b=0) then return 1; else return 0; end; end; +func g2(a,b) if ((not (a=0)) or b=0) then return 1; else return 0; end; end; +func g3(a,b) if (a=0 or (not (b=0))) then return 1; else return 0; end; end; +func g4(a,b) if ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; +func g5(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; +func g6(a,b) if not ((not (a=0)) or b=0) then return 1; else return 0; end; end; +func g7(a,b) if not (a=0 or (not (b=0))) then return 1; else return 0; end; end; +func g8(a,b) if not ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; +func g9(a,b) if not (not (a=0 or b=0)) then return 1; else return 0; end; end; +func g10(a,b) if not (not ((not (a=0)) or b=0)) then return 1; else return 0; end; end; +func g11(a,b) if not (not (a=0 or (not (b=0)))) then return 1; else return 0; end; end; +func g12(a,b) if not (not ((not (a=0)) or (not (b=0)))) then return 1; else return 0; end; end; + +func h1(a,b,c,d) if (a=0 or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; +func h2(a,b,c,d) if ((not (a=0)) or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; +func h3(a,b,c,d) if (a=0 or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; +func h4(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or d=0) then return 1; else return 0; end; end; +func h5(a,b,c,d) if (a=0 or b=0) or (c=0 or (not (d=0))) then return 1; else return 0; end; end; +func h6(a,b,c,d) if ((not (a=0)) or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; +func h7(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; +func h8(a,b,c,d) if ((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; +func h9(a,b,c,d) if not ((a=0 or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h10(a,b,c,d) if not (((not (a=0)) or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h11(a,b,c,d) if not ((a=0 or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h12(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or d=0)) then return 1; else return 0; end; end; +func h13(a,b,c,d) if not ((a=0 or b=0) or (c=0 or (not (d=0)))) then return 1; else return 0; end; end; +func h14(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h15(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; +func h16(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; +func h17(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h18(a,b,c,d) if not (not (((not (a=0)) or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h19(a,b,c,d) if not (not ((a=0 or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h20(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or d=0))) then return 1; else return 0; end; end; +func h21(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or (not (d=0))))) then return 1; else return 0; end; end; +func h22(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h23(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; +func h24(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; + +func g(a) if (a=0 or a=1) then return 0; else return 1; end; end; +func h(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; +func i(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; +func j(a,b) if not ((not a=0) or (not b=0)) then return 0; else return 1; end; end; +func k(a,b,c,d) if not ((not (a=0 or b=0)) or (not (c=0 or d=0))) then return 1; else return 0; end; end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/tree.c.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/tree.c.svn-base new file mode 100644 index 0000000..c3e0a44 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/tree.c.svn-base @@ -0,0 +1,157 @@ +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* new_node: create "standard node" with one or two children and + * given operation + */ +treenode *new_node(int op, treenode *left, treenode *right) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_node_value: create "standard node" with one or two children and + * given operation and the given value + */ +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_leaf: create leaf - node with no children */ +treenode *new_leaf(int op) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_leaf: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_named_leaf: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf(int op, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + + return new; +} + +/* new_named_leaf_value: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf_value(int op, char *name, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf_value: %i (%s), %s, %li\n",op,rule_names[op],name,value); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_named_node: create node with one or two children and a name (can be + * used for storing a procedure's name) + */ +treenode *new_named_node(int op, treenode *left, treenode *right, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_node: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=name; + + return new; +} + +void write_indent(int indent) { + int a; + for(a=0;aop],node->name,node->reg); + if(node->kids[0]!=(treenode *)NULL || node->kids[1]!=(treenode *)NULL) { + if(node->kids[0]!=(treenode *)NULL) { + write_tree(node->kids[0], indent+1); + } + if(node->kids[1]!=(treenode *)NULL) { + write_tree(node->kids[1], indent+1); + } + } +} + +treenode *new_number_leaf(long value) { + treenode *node; + + if(value==0) { + node=new_leaf(OP_Zero); + } + else if(value==1) { + node=new_leaf(OP_One); + } + else { + node=new_leaf(OP_Number); + } + + node->value=value; + + return node; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/tree.h.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/tree.h.svn-base new file mode 100644 index 0000000..7ac2789 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/.svn/text-base/tree.h.svn-base @@ -0,0 +1,98 @@ +#ifndef __TREE_H_ +#define __TREE_H_ + +#ifndef CODE +typedef struct burm_state *STATEPTR_TYPE; +#endif + +enum { + OP_Not=1, + OP_Negation, + OP_Addition, + OP_Multiplication, + OP_Disjunction, + OP_Greater, + OP_Equal, + OP_ID, + OP_Number, + OP_Field, + OP_Return, + OP_Zero, + OP_One, + OP_Exprs, + OP_Call, + OP_Assign, + OP_If, + OP_Stats, + OP_Empty, + OP_Ifstats, + OP_While, + OP_CallNoParam, + OP_Arg +}; + +static char rule_names[100][100]={ + "", + "OP_Not", + "OP_Negation", + "OP_Addition", + "OP_Multiplication", + "OP_Disjunction", + "OP_Greater", + "OP_Equal", + "OP_ID", + "OP_Number", + "OP_Field", + "OP_Return", + "OP_Zero", + "OP_One", + "OP_Exprs", + "OP_Call", + "OP_Assign", + "OP_If", + "OP_Stats", + "OP_Empty", + "OP_Ifstats", + "OP_While", + "OP_CallNoParam", + "OP_Arg" +}; + + +/* struct for the tree build by ox for iburg */ +typedef struct treenode { + int op; + struct treenode *kids[2]; + STATEPTR_TYPE label; + char *name; + long value; + char *reg; + struct treenode *parent; + int skip_reg; + int param_index; /* -1 if not a parameter */ +} treenode; + +typedef treenode *treenodep; + +/* macros for iburg being able to traverse the tree */ +#define NODEPTR_TYPE treenodep +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->label) +#define PANIC printf + +/* see tree.c for description about these procedures */ +treenode *new_node(int op, treenode *left, treenode *right); +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param); +treenode *new_leaf(int op); +treenode *new_number_leaf(long value); +treenode *new_named_leaf(int op, char *name); +treenode *new_named_leaf_value(int op, char *name, long value, int param); +treenode *new_named_node(int op, treenode *left, treenode *right, char *name); + +void write_indent(int indent); +void write_tree(treenode *node, int indent); + +#endif /* __TREE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/Makefile b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/Makefile new file mode 100644 index 0000000..a3bcbd4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/Makefile @@ -0,0 +1,38 @@ +all: gesamt + +scanner.c: oxout.l + flex -oscanner.c oxout.l + +scanner.o: scanner.c parser.h symbol_table.h + gcc -g -c -ansi -pedantic scanner.c -D_GNU_SOURCE + +gesamt: scanner.o parser.o symbol_table.o code_gen.o tree.o code.o + gcc -o gesamt symbol_table.o scanner.o parser.o code_gen.o tree.o code.o -lfl + +tree.o: tree.c tree.h + gcc -g -c -ansi -pedantic -Wall tree.c + +code_gen.o: code_gen.c code_gen.h + gcc -g -c -ansi -pedantic -Wall code_gen.c -D_GNU_SOURCE + +symbol_table.o: symbol_table.c symbol_table.h + gcc -g -c -ansi -pedantic -Wall symbol_table.c -D_GNU_SOURCE + +parser.o: parser.c symbol_table.h code_gen.h tree.h + gcc -g -c -ansi -pedantic parser.c + +parser.c parser.h: oxout.y + yacc -d oxout.y -o parser.c + +oxout.y oxout.l: parser.y scanner.lex + ox parser.y scanner.lex + +code.o: code.c tree.h + gcc -g -ansi -c code.c + +code.c: code.bfe + bfe < code.bfe | iburg > code.c + +clean: + rm -f gesamt scanner.o scanner.c parser.h parser.c parser.o oxout.y oxout.l symbol_table.o code_gen.o tree.o code.c code.o testgesamt* a.out + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code.bfe b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code.bfe new file mode 100755 index 0000000..69de53b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code.bfe @@ -0,0 +1,88 @@ +%{ +/* vim: filetype=c + */ +#define CODE + +#include +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* TODO (-a)+b */ +/* TODO imul -> imulq, add -> addq */ +/* TODO bugs - hopefully fixed: + * func f(a,b,c,d) return ((a+1)+(b+1))+((c+1)+(d+1)); end; + * func f(a,b,c,d) var b:=a; var c:=b; var d:=c; return a+b+c+d; end; + * mul, add etc. with direct memory access + */ +/* TODO immediate values in assignments */ +/* TODO assignment with immediate value/variable on RHS */ +/* TODO immediate values in boolean expressions */ +/* TODO optimize boolean expressions */ +/* FIXME if_then label not inserted */ +%} + +%start stat +%term OP_Not=1 OP_Negation=2 OP_Addition=3 OP_Multiplication=4 OP_Disjunction=5 OP_Greater=6 OP_Equal=7 OP_ID=8 OP_Number=9 OP_Field=10 OP_Return=11 OP_Zero=12 OP_One=13 OP_Exprs=14 OP_Call=15 OP_Assign=16 OP_If=17 OP_Stats=18 OP_Empty=19 OP_Ifstats=20 OP_While=21 OP_CallNoParam=22 OP_Arg=23 + +%% + +stat: ret # 0 # +stat: assign # 0 # +stat: bexpr # 0 # +stat: expr # 0 # + +assign: OP_Assign(OP_ID, expr) # 1 # if(bnode->kids[0]->param_index!=-1 && !call) { printf("\tmovq %%%s, %%%s /* x */\n", bnode->reg, get_param_reg(bnode->kids[0]->param_index)); } else if(bnode->kids[0]->param_index!=-1 && call) { printf("\tmovq %%%s, %i(%%rsp) /* y */\n", bnode->reg, 8*(variables-bnode->kids[0]->param_index)); } else { printf("\tmovq %%%s, %i(%%rsp) /* z */\n", bnode->reg, bnode->kids[0]->value); } +assign: OP_Assign(OP_Field(expr,OP_ID), expr) # 1 # printf("\tmovq %%%s, %li(%%%s)\n", bnode->kids[1]->reg, 8*bnode->kids[0]->value, bnode->kids[0]->reg); + +ret: OP_Return(expr) # 1 # move(bnode->reg, "rax"); ret(); + +expr: OP_ID # 1 # if(bnode->param_index!=-1 && !call) { move(get_param_reg(bnode->param_index), bnode->reg); } else if(bnode->param_index!=-1 && call) { printf("\tmov %i(%%rsp), %%%s\n", 8*(variables-bnode->param_index), bnode->reg); } else { printf("\tmovq %i(%%rsp), %%%s\n", bnode->value, bnode->reg); } +expr: imm # 1 # printf("\tmovq $%li, %%%s\n", bnode->value, bnode->reg); +expr: call # 0 # +expr: OP_Negation(expr) # 1 # printf("\tnegq %%%s\n", bnode->reg); +expr: OP_Addition(expr,expr) # 1 # printf("\taddq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Addition(imm,expr) # 1 # printf("\taddq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Addition(expr,imm) # 1 # if(bnode->kids[0]->op==OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\taddq $%li, %%%s /* x2 */\n", bnode->kids[1]->value, bnode->reg); } else { printf("\taddq $%li, %%%s /* y2 */\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Multiplication(expr,expr) # 1 # printf("\timulq %%%s, %%%s\n", bnode->kids[1]->reg, bnode->kids[0]->reg); +expr: OP_Multiplication(imm,expr) # 1 # printf("\timulq $%li, %%%s\n", bnode->kids[0]->value, bnode->kids[1]->reg); move(bnode->kids[1]->reg, bnode->reg); +expr: OP_Multiplication(expr,imm) # 1 # if(bnode->kids[0]->op==OP_ID) { move(bnode->kids[0]->reg, bnode->reg); printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->reg); } else { printf("\timulq $%li, %%%s\n", bnode->kids[1]->value, bnode->kids[0]->reg); } +expr: OP_Field(expr,OP_ID) # 2 # printf("\tmovq %li(%%%s), %%%s\n", 8*bnode->value, bnode->kids[0]->reg, bnode->reg); +expr: OP_Field(imm,OP_ID) # 1 # printf("\tmovq %li, %%%s\n", bnode->kids[0]->value+bnode->value*8, bnode->reg); + +call: OP_Call(exprs) # 0 # prepare_call(bnode->name, bnode->reg); /* reg_return=bnode->reg; */ do_call(bnode->name, bnode->reg); +call: OP_CallNoParam # 0 # # prepare_call(bnode->name, bnode->reg); /* reg_return=bnode->reg; */ /* prepare_call(bnode->name); */ do_call(bnode->name, bnode->reg); + +exprs: OP_Arg(expr) # 0 # /* reg_return=bnode->reg; function_name=bnode->name; */ /* prepare_call(bnode->name); */ +exprs: OP_Exprs(exprs,exprs) # 0 # + +zero: OP_Negation(zero) # 0 # +zero: OP_Zero # 0 # +zero: OP_Multiplication(zexpr,zero) # 0 # +zero: OP_Multiplication(zero,zexpr) # 0 # + +zexpr: zero # 0 # +zexpr: imm # 0 # +zexpr: OP_Negation(zexpr) # 0 # +zexpr: OP_Addition(zexpr,zexpr) # 0 # +zexpr: OP_Multiplication(zexpr,zexpr) # 0 # +zexpr: OP_Field(zexpr,OP_ID) # 0 # +zexpr: OP_ID # 0 # + +imm: zero # 0 # +imm: OP_Negation(imm) # 0 # bnode->value=-bnode->kids[0]->value; +imm: OP_Addition(imm,imm) # 0 # bnode->value=bnode->kids[0]->value+bnode->kids[1]->value; +imm: OP_Multiplication(imm,imm) # 0 # bnode->value=bnode->kids[0]->value*bnode->kids[1]->value; +imm: OP_Number # 0 # +imm: OP_Zero # 0 # +imm: OP_One # 0 # + +bexpr: OP_Disjunction(bexpr,bexpr) # 0 # +bexpr: OP_Not(bexpr) # 0 # +bexpr: OP_Greater(expr,expr) # 0 # +bexpr: OP_Equal(expr,expr) # 0 # + +%% + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code_gen.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code_gen.c new file mode 100644 index 0000000..179dca5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code_gen.c @@ -0,0 +1,104 @@ +#include +#include +#include "code_gen.h" + +int variables, call; +/* char *function_name; */ +/* char *reg_return; */ +extern char *saved_reg; + +char *reg_names[]={"rax", "r10", "r11", "r9", "r8", "rcx", "rdx", "rsi", "rdi"}; + +void function_header(char *name, int vars, int has_call, int num_pars) { + int a; + + variables = vars+(has_call ? num_pars : 0); + printf("# setting call to %i\n", has_call); + call = has_call; + + printf("\t.globl %s\n\t.type %s, @function\n%s:\n", name, name, name); + printf("# %i %i %i %i\n",vars,has_call,num_pars,(has_call ? num_pars : 0)); + if(vars+(has_call ? num_pars : 0)>0) { + printf("\tpushq %%rbp\n\tmovq %%rsp, %%rbp\n\tsubq $%i, %%rsp\n", 8*(vars+num_pars)); + if(num_pars>0 && has_call) { + for(a=0;a=0;a--) { + if(strcmp(reg_return,reg_names[a])) { + printf("\tpopq %%%s\n",reg_names[a]); + } + else { + printf("\taddq $8, %%rsp\n"); + } + } +} + +char *get_next_reg(char *name, int skip_reg) { + int index, a; + if(name==(char *)NULL) { + index=0; + } + else { + for(a=0;a<9;a++) { + if(!strcmp(name,reg_names[a])) { + index=a+1; + break; + } + } + } + if(skip_reg) { + index++; + } + if(index>8) { + return saved_reg; + } + return reg_names[index]; +} + +char *get_next_param_reg(char *reg) { + int a=1; + while(1) { + if(strcmp(get_param_reg(a),reg)==0) { + return get_param_reg(a+1); + } + a++; + } +} + +char *get_param_reg(long number) { + char *reg_names[]={"rdi", "rsi", "rdx", "rcx", "r8", "r9"}; + return reg_names[number-1]; +} + +void ret(void) { + if(variables>0) { + printf("\tleave\n"); + } + printf("\tret\n"); +} + +void move(char *src, char *dst) { + if(strcmp(src,dst)) { + printf("\tmovq %%%s, %%%s\n",src,dst); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code_gen.h b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code_gen.h new file mode 100644 index 0000000..41ef621 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/code_gen.h @@ -0,0 +1,18 @@ +#ifndef _CODE_GEN_H_ +#define _CODE_GEN_H_ + +void function_header(char *name, int vars, int has_call, int num_param); +char *get_next_reg(char *name, int skip_reg); +char *get_next_param_reg(char *reg); +char *get_param_reg(long number); +void ret(void); +void move(char *src, char *dest); +void do_call(char *function, char *reg_return); +void prepare_call(char *function, char *reg_return); + +/* extern char *function_name; */ +extern int call, variables; +/* extern char *reg_return; */ + +#endif /* _CODE_GEN_H_ */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/optfib.s b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/optfib.s new file mode 100644 index 0000000..712bb1a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/optfib.s @@ -0,0 +1,351 @@ + .text +# setting call to 1 + .globl optfib + .type optfib, @function +optfib: +# 2 1 1 1 + pushq %rbp + movq %rsp, %rbp + subq $24, %rsp + movq %rdi, 16(%rsp) + movq $5000000, %rdi + pushq %rax + pushq %r10 + pushq %r11 + pushq %r9 + pushq %r8 + pushq %rcx + pushq %rdx + pushq %rsi + pushq %rdi + call sqr + popq %rdi + popq %rsi + popq %rdx + popq %rcx + popq %r8 + popq %r9 + popq %r11 + popq %r10 + addq $8, %rsp + movq %rax, 0(%rsp) /* z */ + movq 0(%rsp), %rdi + addq $1000000, %rdi + movq $2, %rsi + pushq %rax + pushq %r10 + pushq %r11 + pushq %r9 + pushq %r8 + pushq %rcx + pushq %rdx + pushq %rsi + pushq %rdi + call div + movq %rax, %rdi + addq $8, %rsp + popq %rsi + popq %rdx + popq %rcx + popq %r8 + popq %r9 + popq %r11 + popq %r10 + popq %rax + mov 16(%rsp), %rsi + pushq %rax + pushq %r10 + pushq %r11 + pushq %r9 + pushq %r8 + pushq %rcx + pushq %rdx + pushq %rsi + pushq %rdi + call power + movq %rax, %rdi + addq $8, %rsp + popq %rsi + popq %rdx + popq %rcx + popq %r8 + popq %r9 + popq %r11 + popq %r10 + popq %rax + imulq $1000000, %rdi + movq 0(%rsp), %rsi + pushq %rax + pushq %r10 + pushq %r11 + pushq %r9 + pushq %r8 + pushq %rcx + pushq %rdx + pushq %rsi + pushq %rdi + call div + popq %rdi + popq %rsi + popq %rdx + popq %rcx + popq %r8 + popq %r9 + popq %r11 + popq %r10 + addq $8, %rsp + addq $500000, %rax + movq %rax, 8(%rsp) /* z */ + movq 8(%rsp), %rdi + movq $1000000, %rsi + pushq %rax + pushq %r10 + pushq %r11 + pushq %r9 + pushq %r8 + pushq %rcx + pushq %rdx + pushq %rsi + pushq %rdi + call div + popq %rdi + popq %rsi + popq %rdx + popq %rcx + popq %r8 + popq %r9 + popq %r11 + popq %r10 + addq $8, %rsp + leave + ret +# setting call to 0 + .globl divslow + .type divslow, @function +divslow: +# 1 0 2 0 + pushq %rbp + movq %rsp, %rbp + subq $24, %rsp + movq $1, %rax + movq %rax, 0(%rsp) /* z */ +do_start1: + movq %rdi, %rax + movq %rsi, %r10 + movq 0(%rsp), %r11 + imulq %r11, %r10 + cmp %r10, %rax + jns do_enter1 # do_enter1 do_end1 0 0 + jmp do_end1 # foo1 +do_enter1: + movq 0(%rsp), %r10 + addq $1, %r10 + movq %r10, 0(%rsp) /* z */ + jmp do_start1 +do_end1: + movq 0(%rsp), %rax + addq $-1, %rax + leave + ret +# setting call to 1 + .globl div + .type div, @function +div: +# 2 1 2 2 + pushq %rbp + movq %rsp, %rbp + subq $32, %rsp + movq %rdi, 24(%rsp) + movq %rsi, 16(%rsp) + movq $1, %rax + movq %rax, 0(%rsp) /* z */ + movq $1000000, %rax + movq %rax, 8(%rsp) /* z */ +do_start2: + movq 8(%rsp), %rax + movq $1, %r10 + cmp %r10, %rax + jns do_enter2 # do_enter2 do_end2 0 0 + jmp do_end2 # foo1 +do_enter2: +do_start3: + mov 24(%rsp), %rax + mov 16(%rsp), %r10 + movq 0(%rsp), %r11 + imulq %r11, %r10 + cmp %r10, %rax + jns do_enter3 # do_enter3 do_end3 0 0 + jmp do_end3 # foo1 +do_enter3: + movq 8(%rsp), %r10 + movq 0(%rsp), %r11 + addq %r11, %r10 + movq %r10, 0(%rsp) /* z */ + jmp do_start3 +do_end3: + movq 8(%rsp), %r10 + negq %r10 + movq 0(%rsp), %r11 + addq %r11, %r10 + movq %r10, 0(%rsp) /* z */ + movq 8(%rsp), %rdi + movq $2, %rsi + pushq %rax + pushq %r10 + pushq %r11 + pushq %r9 + pushq %r8 + pushq %rcx + pushq %rdx + pushq %rsi + pushq %rdi + call divslow + movq %rax, %r10 + popq %rdi + popq %rsi + popq %rdx + popq %rcx + popq %r8 + popq %r9 + popq %r11 + addq $8, %rsp + popq %rax + movq %r10, 8(%rsp) /* z */ + jmp do_start2 +do_end2: + movq 0(%rsp), %rax + leave + ret +# setting call to 1 + .globl power + .type power, @function +power: +# 1 1 2 2 + pushq %rbp + movq %rsp, %rbp + subq $24, %rsp + movq %rdi, 16(%rsp) + movq %rsi, 8(%rsp) + mov 8(%rsp), %rax + movq $0, %r10 + cmp %rax, %r10 + jz if_then4 # if_then4 if_end4 0 0 + jmp if_end4 # foo1 +if_then4: + movq $1000000, %rax + leave + ret +if_end4: + mov 16(%rsp), %rax + movq %rax, 0(%rsp) /* z */ +do_start5: + mov 8(%rsp), %rax + movq $2, %r10 + cmp %r10, %rax + jns do_enter5 # do_enter5 do_end5 0 0 + jmp do_end5 # foo1 +do_enter5: + mov 16(%rsp), %rdi + movq 0(%rsp), %(null) + imulq %(null), %rdi + movq $1000000, %rsi + pushq %rax + pushq %r10 + pushq %r11 + pushq %r9 + pushq %r8 + pushq %rcx + pushq %rdx + pushq %rsi + pushq %rdi + call div + movq %rax, %r10 + popq %rdi + popq %rsi + popq %rdx + popq %rcx + popq %r8 + popq %r9 + popq %r11 + addq $8, %rsp + popq %rax + movq %r10, 0(%rsp) /* z */ + mov 8(%rsp), %r10 + addq $-1, %r10 + movq %r10, 8(%rsp) /* y */ + jmp do_start5 +do_end5: + movq 0(%rsp), %rax + leave + ret +# setting call to 1 + .globl sqr + .type sqr, @function +sqr: +# 2 1 1 1 + pushq %rbp + movq %rsp, %rbp + subq $24, %rsp + movq %rdi, 16(%rsp) + movq $1, %rax + movq %rax, 0(%rsp) /* z */ + movq $1000000, %rax + movq %rax, 8(%rsp) /* z */ + mov 16(%rsp), %r10 + imulq $1000000, %r10 + movq %r10, 16(%rsp) /* y */ +do_start6: + movq 8(%rsp), %rax + movq $1, %r10 + cmp %r10, %rax + jns do_enter6 # do_enter6 do_end6 0 0 + jmp do_end6 # foo1 +do_enter6: +do_start7: + mov 16(%rsp), %rax + movq 0(%rsp), %r10 + movq 0(%rsp), %r11 + imulq %r11, %r10 + cmp %r10, %rax + jns do_enter7 # do_enter7 do_end7 0 0 + jmp do_end7 # foo1 +do_enter7: + movq 8(%rsp), %r10 + movq 0(%rsp), %r11 + addq %r11, %r10 + movq %r10, 0(%rsp) /* z */ + jmp do_start7 +do_end7: + movq 8(%rsp), %r10 + negq %r10 + movq 0(%rsp), %r11 + addq %r11, %r10 + movq %r10, 0(%rsp) /* z */ + movq 8(%rsp), %rdi + movq $2, %rsi + pushq %rax + pushq %r10 + pushq %r11 + pushq %r9 + pushq %r8 + pushq %rcx + pushq %rdx + pushq %rsi + pushq %rdi + call div + movq %rax, %r10 + popq %rdi + popq %rsi + popq %rdx + popq %rcx + popq %r8 + popq %r9 + popq %r11 + addq $8, %rsp + popq %rax + movq %r10, 8(%rsp) /* z */ + jmp do_start6 +do_end6: + movq 0(%rsp), %rax + leave + ret diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/parser.y b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/parser.y new file mode 100644 index 0000000..585b19b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/parser.y @@ -0,0 +1,595 @@ +%{ + #include + #include + #include + #include "symbol_table.h" + #include "code_gen.h" + #include "tree.h" + + #define imm_prefix "$" + + char *saved_reg; + +/* TODO failed test case: func f(a) if not (a=0 or a=1) then return 0; end; end; */ +%} + +%start Input +%token FUNC END STRUCT VAR IF THEN ELSE WHILE DO RETURN OR NOT +%token ID NUM ASSIGN GREATER + +@autoinh symbols stack_offset all_pars if_in jump_true jump_false +@autosyn node defined_vars immediate if_out has_call + +@attributes { char *name; } ID +@attributes { long value; } NUM +@attributes { struct symbol_t *fields; struct symbol_t *symbols; int if_in; } Program +@attributes { struct symbol_t *fields; } Structdef +@attributes { struct symbol_t *fields; int offset; } Ids +@attributes { struct symbol_t *pars; int num_pars; int all_pars; } Pars +@attributes { struct symbol_t *symbols; int defined_vars; int if_in; int if_out; } Funcdef +@attributes { struct symbol_t *symbols; int defined_vars; int stack_offset; treenode *node; int if_in; int if_out; int has_call; } Stats +@attributes { struct symbol_t *symbols; treenode *node; int immediate; int has_call; } Expr Term Plusterm Malterm +@attributes { struct symbol_t *symbols; treenode *node; int has_call; } Call Lexpr Field Exprs +@attributes { struct symbol_t *symbols; treenode *node; char *jump_true; char *jump_false; int negated; int if_in; int if_out; int negated2; int top_level; int has_call; } Bool Orterm Subbool Bterm +@attributes { struct symbol_t *in_symbols; struct symbol_t *out_symbols; treenode *node; int defined_vars; int stack_offset; int if_in; int if_out; int has_call; } Stat +@attributes { struct symbol_t *symbols; treenode *node; int defined_vars; int stack_offset; int if_in; int if_out; int if_nr; int has_call; } Blubb + +@traversal @postorder check +@traversal @preorder reg +@traversal @preorder codegen + +%% + +Input: Program + @{ + @i @Program.symbols@ = @Program.fields@; + @i @Program.if_in@ = 0; + + @codegen printf("\t.text\n"); + @} + + ; + +Program: Funcdef ';' Program + @{ + @i @Program.fields@ = @Program.1.fields@; + @i @Program.1.if_in@ = @Funcdef.if_out@; + @} + + | Structdef ';' Program + @{ + @i @Program.fields@ = table_merge(@Structdef.fields@, @Program.1.fields@, 1); + @i @Program.1.symbols@ = @Program.0.symbols@; + @} + + | + @{ @i @Program.fields@ = new_table(); @} + + ; + +Funcdef: FUNC ID '(' Pars ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, @Pars.pars@, 0); + @i @Stats.stack_offset@ = 0; + @i @Pars.all_pars@ = @Pars.num_pars@; + + @codegen function_header(@ID.name@, @Funcdef.defined_vars@, @Stats.has_call@, @Pars.num_pars@); + @} + + | FUNC ID '(' ')' Stats END + @{ + @i @Stats.symbols@ = table_merge(@Funcdef.symbols@, new_table(), 0); + @i @Stats.stack_offset@ = 0; + + @codegen function_header(@ID.name@, @Funcdef.defined_vars@, @Stats.has_call@, 0); + @} + + ; + +Structdef: STRUCT Ids END + @{ + @i @Structdef.fields@ = @Ids.fields@; + @i @Ids.offset@ = 0; + @} + + ; + +Ids: ID Ids + @{ + @i @Ids.fields@ = table_add_symbol(@Ids.1.fields@, @ID.name@, SYMBOL_TYPE_FIELD, 1, @Ids.offset@); + @i @Ids.1.offset@ = @Ids.offset@ + 1; + @} + + | + @{ @i @Ids.fields@ = new_table(); @} + + ; + +Pars: Pars ',' ID + @{ + @i @Pars.pars@ = table_add_param(@Pars.1.pars@, @ID.name@, @Pars.num_pars@); + @i @Pars.num_pars@ = @Pars.1.num_pars@ + 1; + @} + + | ID + @{ + @i @Pars.pars@ = table_add_param(new_table(), @ID.name@, 1); + @i @Pars.num_pars@ = 1; + @} + + ; + +Stats: Stat ';' Stats + @{ + @i @Stat.in_symbols@ = @Stats.symbols@; + @i @Stats.1.symbols@ = @Stat.out_symbols@; + @i @Stats.defined_vars@ = @Stat.defined_vars@ + @Stats.1.defined_vars@; + @i @Stats.1.stack_offset@ = @Stats.stack_offset@ + @Stat.defined_vars@ * 8; + @i @Stats.node@ = new_node(OP_Stats, @Stat.node@, @Stats.1.node@); + @i @Stat.if_in@ = @Stats.if_in@; + @i @Stats.1.if_in@ = @Stat.if_out@; + @i @Stats.if_out@ = @Stats.1.if_out@; + @i @Stats.has_call@ = @Stat.has_call@ || @Stats.1.has_call@; + @} + + | + @{ + @i @Stats.node@ = new_leaf(OP_Empty); /* TODO */ + @i @Stats.defined_vars@ = 0; + @i @Stats.if_out@ = @Stats.if_in@; + @i @Stats.has_call@ = 0; + @} + + ; + +Stat: VAR ID ASSIGN Expr /* Nodes necessary for IF, DO, ... ? */ + @{ + @i @Stat.out_symbols@ = table_add_symbol(clone_table(@Stat.in_symbols@), @ID.name@, SYMBOL_TYPE_VAR, 0, @Stat.stack_offset@); + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Assign, new_named_leaf_value(OP_ID, @ID.name@, @Stat.stack_offset@, -1), @Expr.node@); + @i @Stat.defined_vars@ = 1; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Expr.node@->reg = get_next_reg((char *)NULL, 0); @Stat.node@->reg = @Expr.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | Lexpr ASSIGN Expr + @{ + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Lexpr.symbols@ = @Stat.in_symbols@; + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Assign, @Lexpr.node@, @Expr.node@); + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + @i @Stat.has_call@ = @Lexpr.has_call@ || @Expr.has_call@; + + @reg @Lexpr.node@->reg = get_next_reg((char *)NULL, 0); @Expr.node@->reg = get_next_reg(@Lexpr.node@->reg, 0); @Stat.node@->reg = @Expr.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + | IF Bool THEN Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_If, @Bool.node@, @Stats.node@); + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Stat.if_out@ = @Stats.if_out@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "if_then%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "if_end%i", @Stats.if_in@); + @i @Stat.has_call@ = @Bool.has_call@ || @Stats.has_call@; + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz if_end%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("if_end%i:\n", @Stats.if_in@); + @} + + | IF Bool THEN Stats Blubb END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Blubb.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Ifstats, @Stats.node@, @Blubb.node@); + @i @Stat.defined_vars@ = @Stats.defined_vars@ + @Blubb.defined_vars@; + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Blubb.if_in@ = @Stats.if_out@; + @i @Stat.if_out@ = @Blubb.if_out@; + @i @Blubb.if_nr@ = @Stats.if_in@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "if_then%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "if_else%i", @Stats.if_in@); + @i @Stat.has_call@ = @Bool.has_call@ || @Stats.has_call@ || @Blubb.has_call@; + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz if_else%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("if_end%i:\n", @Stats.if_in@); + @} + + | WHILE Bool DO Stats END + @{ + @i @Bool.symbols@ = @Stat.in_symbols@; + @i @Stats.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_While, @Bool.node@, @Stats.node@); + @i @Bool.if_in@ = @Stat.if_in@ + 1; + @i @Stats.if_in@ = @Bool.if_out@; + @i @Stat.if_out@ = @Stats.if_out@; + @e Bool.jump_true : Stats.if_in; @Bool.jump_true@ = malloc(100); sprintf(@Bool.jump_true@, "do_enter%i", @Stats.if_in@); + @e Bool.jump_false : Stats.if_in; @Bool.jump_false@ = malloc(100); sprintf(@Bool.jump_false@, "do_end%i", @Stats.if_in@); + @i @Stat.has_call@ = @Bool.has_call@ || @Stats.has_call@; + + @reg @Bool.node@->reg = get_next_reg((char *)NULL, 0); + + @codegen printf("do_start%i:\n", @Stats.if_in@); /* write_tree(@Bool.node@, 0); burm_label(@Bool.node@); burm_reduce(@Bool.node@, 1); printf("\ttest %s1, %%%s\n\tjz do_end%i\n", imm_prefix, @Bool.node@->reg, @Stats.if_in@); */ + @codegen @revorder(1) printf("\tjmp do_start%i\ndo_end%i:\n", @Stats.if_in@, @Stats.if_in@); + @} + + | Call + @{ + @i @Call.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = (treenode *)NULL; + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg @Call.node@->reg = "rax"; + @} + + | RETURN Expr + @{ + @i @Expr.symbols@ = @Stat.in_symbols@; + @i @Stat.out_symbols@ = @Stat.in_symbols@; + @i @Stat.node@ = new_node(OP_Return, @Expr.node@, (treenode *)NULL); + @i @Stat.defined_vars@ = 0; + @i @Stat.if_out@ = @Stat.if_in@; + + @reg if(@Expr.node@->op == OP_Call) { @Stat.node@->reg = get_next_reg("rax", 0); } else { @Stat.node@->reg = get_next_reg((char *)NULL, 0); } @Expr.node@->reg = @Stat.node@->reg; + + @codegen /* write_tree(@Stat.node@, 0); */ burm_label(@Stat.node@); burm_reduce(@Stat.node@, 1); + @} + + ; + +Blubb: ELSE Stats + @{ + @codegen printf("\tjmp if_end%i\nif_else%i:\n", @Blubb.if_nr@, @Blubb.if_nr@); + @} + +Lexpr: ID + @{ + @i @Lexpr.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Lexpr.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Lexpr.symbols@, @ID.name@)->stack_offset, (table_lookup(@Lexpr.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Lexpr.symbols@, @ID.name@)->param_index); + + @i @Lexpr.has_call@ = 0; + @check check_variable(@Lexpr.symbols@, @ID.name@); + @} + + | Field + ; + +Expr: '-' Term + @{ + @i @Expr.node@ = new_node(OP_Negation, @Term.node@, (treenode *)NULL); + + @reg @Term.node@->reg = @Expr.node@->reg; + @} + + | Term + @{ @reg @Term.node@->reg = @Expr.node@->reg; @} + + | Term Plusterm + @{ + @i @Expr.node@ = new_node(OP_Addition, @Plusterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Plusterm.immediate@; + @i @Expr.has_call@ = @Term.has_call@ || @Plusterm.has_call@; + + @reg if(!@Plusterm.immediate@) { @Plusterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.node@->reg, @Expr.node@->skip_reg); @Plusterm.node@->skip_reg = 1; } else { @Term.node@->reg = @Expr.node@->reg; @Plusterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + | Term Malterm + @{ + @i @Expr.node@ = new_node(OP_Multiplication, @Malterm.node@, @Term.node@); + @i @Expr.immediate@ = @Term.immediate@ && @Malterm.immediate@; + @i @Expr.has_call@ = @Term.has_call@ || @Malterm.has_call@; + + @reg if(!@Malterm.immediate@) { @Malterm.node@->reg = @Expr.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.node@->reg, @Expr.node@->skip_reg); @Malterm.node@->skip_reg = 1; } else { @Term.node@-> reg = @Expr.node@->reg; @Malterm.node@->reg = get_next_reg(@Term.node@->reg, @Expr.node@->skip_reg); } + @} + + ; + +Plusterm: '+' Term Plusterm + @{ + @i @Plusterm.node@ = new_node(OP_Addition, @Plusterm.1.node@, @Term.node@); + @i @Plusterm.immediate@ = @Term.immediate@ && @Plusterm.1.immediate@; + @i @Plusterm.has_call@ = @Term.has_call@ || @Plusterm.1.has_call@; + + @reg @Plusterm.1.node@->reg = @Plusterm.node@->reg; @Term.node@->reg = get_next_reg(@Plusterm.1.node@->reg, @Plusterm.node@->skip_reg); + @} + + | '+' Term + @{ @reg @Term.node@->reg = @Plusterm.node@->reg; @} + + ; + +Malterm: '*' Term Malterm + @{ + @i @Malterm.node@ = new_node(OP_Multiplication, @Malterm.1.node@, @Term.node@); + @i @Malterm.immediate@ = @Term.immediate@ && @Malterm.1.immediate@; + @i @Malterm.has_call@ = @Term.has_call@ || @Malterm.1.has_call@; + + @reg @Malterm.1.node@->reg = @Malterm.node@->reg; @Term.node@->reg = get_next_reg(@Malterm.1.node@->reg, @Malterm.node@->skip_reg); + @} + + | '*' Term + @{ @reg @Term.node@->reg = @Malterm.node@->reg; @} + + ; + +Term: '(' Expr ')' + @{ @reg @Expr.node@->reg = @Term.node@->reg; @} + + | ID + @{ + @i @Term.node@ = new_named_leaf_value(OP_ID, @ID.name@, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->stack_offset, (table_lookup(@Term.symbols@, @ID.name@)==NULL) ? 0 : table_lookup(@Term.symbols@, @ID.name@)->param_index); + @i @Term.immediate@ = 0; + @i @Term.has_call@ = 0; + + @check check_variable(@Term.symbols@, @ID.name@); + @} + + | NUM + @{ + @i @Term.node@ = new_number_leaf(@NUM.value@); + @i @Term.immediate@ = 1; + @i @Term.has_call@ = 0; + @} + + | Call + @{ + @i @Term.immediate@ = 0; + + @reg @Call.node@->reg = @Term.node@->reg; + @} + + | Field + @{ + @i @Term.immediate@ = 0; + + @reg @Field.node@->reg = @Term.node@->reg; + @} + + ; + +/* TODO replace by Bool -> Subbool */ +Bool: Bterm + @{ + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 0; + @i @Bterm.negated2@ = 0; + @i @Bool.top_level@ = 1; + @i @Bterm.top_level@ = 1; + + @codegen @revorder(1) if(@Bterm.node@->op!=OP_Disjunction) { printf("\tjmp %s # foo1\n", @Bool.jump_false@); } printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\n%s:\n", @Bool.jump_false@, @Bool.jump_true@); */ + @} + + | Bterm Orterm + @{ + @i @Bool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 0; + @i @Orterm.negated@ = 0; + @i @Bterm.negated2@ = 0; + @i @Orterm.negated2@ = 0; + @e Bterm.jump_true : Bool.negated Bool.jump_true Bool.if_in; if(!@Bool.negated@) { @Bterm.jump_true@ = malloc(100); sprintf(@Bterm.jump_true@, "bool_true%i", @Bool.if_in@); } else { @Bterm.jump_true@ = @Bool.jump_true@; } + @i @Orterm.jump_true@ = @Bterm.jump_true@; + @e Bterm.jump_false : Bool.negated Bool.jump_false Bool.if_in; if(@Bool.negated@) { @Bterm.jump_false@ = malloc(100); sprintf(@Bterm.jump_false@, "bool_false%i", @Bool.if_in@); } else { @Bterm.jump_false@ = @Bool.jump_false@; } + @i @Orterm.jump_false@ = @Bterm.jump_false@; + @i @Bterm.if_in@ = @Bool.if_in@ + 1; + @i @Orterm.if_in@ = @Bterm.if_out@; + @i @Bool.if_out@ = @Orterm.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.top_level@ = 0; + @i @Bool.top_level@ = 1; + @i @Bool.has_call@ = @Bterm.has_call@ || @Orterm.has_call@; + + @reg @Bterm.node@->reg = @Bool.node@->reg; @Orterm.node@->reg = @Bool.node@->reg; + + @codegen @revorder(1) printf("\tjmp %s # foo2\n", @Bool.jump_false@); printf(@Bool.negated@ ? "bool_false%i:\n" : "bool_true%i:\n", @Bool.if_in@); printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\n%s:\n", @Bool.jump_false@, @Bool.jump_true@); */ + @} + + | NOT Bterm + @{ + @i @Bool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); + @i @Bterm.jump_true@ = @Bool.jump_true@; + @i @Bool.negated@ = 0; + @i @Bool.negated2@ = 0; + @i @Bterm.negated@ = 1; + @i @Bterm.negated2@ = 1; + @i @Bterm.top_level@ = 0; + @i @Bool.top_level@ = 1; + + @reg @Bterm.node@-> reg = @Bool.node@->reg; + + @codegen @revorder(1) if(@Bterm.node@->op!=OP_Not) { printf("\tjmp %s # foo3\n", @Bool.jump_false@); } printf("%s:\n", @Bool.jump_true@); /* printf("\tjmp %s\nnot_break%i:\n\tjmp %s\n%s:\n", @Bool.jump_true@, 0, @Bool.jump_false@, @Bool.jump_true@); */ + @} + + ; + +Subbool: Bterm + @{ + @i @Bterm.negated@ = @Subbool.negated@; + @i @Bterm.negated2@ = @Subbool.negated2@; + @i @Bterm.top_level@ = @Subbool.top_level@; + @codegen @revorder(1) /* printf("\tjmp %s\n%s:\n", @Subbool.jump_false@, @Subbool.jump_true@); */ + @} + + | Bterm Orterm + @{ + @i @Subbool.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.node@); + @i @Bterm.negated@ = @Subbool.negated@; + @i @Orterm.negated@ = @Subbool.negated@; + @i @Bterm.negated2@ = 0; + @i @Orterm.negated2@ = 0; + @e Bterm.jump_true : Subbool.negated Subbool.negated2 Subbool.jump_true Subbool.if_in; if(!@Subbool.negated@ && @Subbool.negated2@) { @Bterm.jump_true@ = malloc(100); sprintf(@Bterm.jump_true@, "bool_true%i", @Subbool.if_in@); } else { @Bterm.jump_true@ = @Subbool.jump_true@; } + @i @Orterm.jump_true@ = @Bterm.jump_true@; + @e Bterm.jump_false : Subbool.negated Subbool.negated2 Subbool.jump_false Subbool.if_in; if(@Subbool.negated@ && @Subbool.negated2@) { @Bterm.jump_false@ = malloc(100); sprintf(@Bterm.jump_false@, "bool_false%i", @Subbool.if_in@); } else { @Bterm.jump_false@ = @Subbool.jump_false@; } + @i @Orterm.jump_false@ = @Bterm.jump_false@; + @i @Bterm.if_in@ = @Subbool.if_in@ + 1; + @i @Orterm.if_in@ = @Bterm.if_out@; + @i @Subbool.if_out@ = @Orterm.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.top_level@ = 0; + @i @Subbool.has_call@ = @Bterm.has_call@ || @Orterm.has_call@; + + @reg @Bterm.node@->reg = @Subbool.node@->reg; @Orterm.node@->reg = @Subbool.node@->reg; + + @codegen @revorder(1) /* TODO output if on top level */ if(@Subbool.negated2@ || @Subbool.top_level@) { printf("\tjmp %s # foo4\n", @Subbool.negated2@ ? @Subbool.jump_true@ : @Subbool.jump_false@); } printf(!@Subbool.negated@ ? "bool_true%i:\n" : "bool_false%i:\n", @Subbool.if_in@); /* printf("\tjmp %s\n# %s:\n", @Subbool.jump_true@, @Subbool.jump_true@); */ + @} + + | NOT Bterm + @{ + @i @Subbool.node@ = new_node(OP_Not, @Bterm.node@, (treenode *)NULL); + @i @Bterm.jump_true@ = @Subbool.jump_true@; + @i @Bterm.negated@ = 1 - @Subbool.negated@; + @i @Bterm.negated2@ = 1 - @Subbool.negated2@; + @i @Bterm.top_level@ = 0; + + @reg @Bterm.node@-> reg = @Subbool.node@->reg; /* printf("%s, %s\n", @Bterm.jump_true@, @Subbool.jump_false@); */ + + @codegen @revorder(1) printf("# !!\n"); if(@Subbool.negated2@ || @Subbool.top_level@) { printf("\tjmp %s # foo9\n", @Subbool.negated2@ ? @Subbool.jump_false@ : @Subbool.jump_false@); } /* printf("\tjmp %s\nnot_break%i:\n", @Subbool.negated@ ? @Bterm.jump_true@ : @Subbool.jump_false@, 0); printf("\tjmp %s\n%s:\n", @Subbool.jump_false@, @Subbool.jump_true@); */ + @} + + ; + + +Orterm: OR Bterm Orterm + @{ + @i @Orterm.node@ = new_node(OP_Disjunction, @Bterm.node@, @Orterm.1.node@); + @i @Bterm.negated@ = @Orterm.negated@; + @i @Orterm.1.negated@ = @Orterm.negated@; + @i @Bterm.negated2@ = 0; + @i @Orterm.1.negated2@ = 0; + @i @Orterm.1.if_in@ = @Bterm.if_out@; + @i @Orterm.if_out@ = @Orterm.1.if_out@; + @i @Bterm.top_level@ = 0; + @i @Orterm.1.top_level@ = 0; + @i @Orterm.has_call@ = @Bterm.has_call@ || @Orterm.1.has_call@; + + @reg @Bterm.node@->reg = @Orterm.node@->reg; @Orterm.1.node@->reg = @Orterm.node@->reg; + @} + + | OR Bterm + @{ + @i @Bterm.negated@ = @Orterm.negated@; + @i @Bterm.negated2@ = @Orterm.negated2@; + @i @Bterm.top_level@ = 0; + @} + + ; + +Bterm: Term GREATER Term + @{ + @i @Bterm.node@ = new_node(OP_Greater, @Term.node@, @Term.1.node@); + @i @Bterm.if_out@ = @Bterm.if_in@; + @i @Bterm.has_call@ = @Term.has_call@ || @Term.1.has_call@; + + @reg @Term.node@->reg = @Bterm.node@->reg; @Term.1.node@->reg = get_next_reg(@Bterm.node@->reg, 0); + + @codegen /* write_tree(@Term.node@, 0); */ burm_label(@Term.node@); burm_reduce(@Term.node@, 1); /* write_tree(@Term.1.node@, 0); */ burm_label(@Term.1.node@); burm_reduce(@Term.1.node@, 1); printf(@Bterm.negated2@ ? "\tcmp %%%s, %%%s\n\tjs %s # %s %s %i %i\n" : "\tcmp %%%s, %%%s\n\tjns %s # %s %s %i %i\n", @Term.1.node@->reg, @Term.node@->reg, ((@Bterm.negated2@ ^ @Bterm.negated@)) ? @Bterm.jump_false@ : @Bterm.jump_true@, @Bterm.jump_true@, @Bterm.jump_false@, @Bterm.negated2@, @Bterm.negated@); + @} + + | Term '=' Term + @{ + @i @Bterm.node@ = new_node(OP_Equal, @Term.node@, @Term.1.node@); + @i @Bterm.if_out@ = @Bterm.if_in@; + @i @Bterm.has_call@ = @Term.has_call@ || @Term.1.has_call@; + + @reg @Term.node@->reg = @Bterm.node@->reg; @Term.1.node@->reg = get_next_reg(@Bterm.node@->reg, 0); + + @codegen /* write_tree(@Term.node@, 0); */ burm_label(@Term.node@); burm_reduce(@Term.node@, 1); /* write_tree(@Term.1.node@, 0); */ burm_label(@Term.1.node@); burm_reduce(@Term.1.node@, 1); printf(@Bterm.negated2@ ? "\tcmp %%%s, %%%s\n\tjnz %s # %s %s %i %i\n" : "\tcmp %%%s, %%%s\n\tjz %s # %s %s %i %i\n", @Term.node@->reg, @Term.1.node@->reg, ((@Bterm.negated2@ ^ @Bterm.negated@)) ? @Bterm.jump_false@ : @Bterm.jump_true@, @Bterm.jump_true@, @Bterm.jump_false@, @Bterm.negated2@, @Bterm.negated@); + @} + + | '(' Subbool ')' + @{ + @i @Subbool.negated@ = @Bterm.negated@; + @i @Subbool.negated2@ = @Bterm.negated2@; + @i @Subbool.top_level@ = @Bterm.top_level@; + @} + + ; + +Field: Term '.' ID + @{ + @i @Field.node@ = new_node_value(OP_Field, @Term.node@, new_named_leaf(OP_ID, @ID.name@), table_lookup(@Field.symbols@, @ID.name@)==(struct symbol_t *)NULL ? 0 : table_lookup(@Field.symbols@, @ID.name@)->stack_offset, -1); + + @check check_field(@Field.symbols@, @ID.name@); + + @reg @Term.node@->reg = @Field.node@->reg; @Field.node@->kids[1]->reg = get_next_reg(@Field.node@->reg, 0); + @} + + ; + +Call: ID '(' Exprs ')' + @{ + @i @Call.node@ = new_named_node(OP_Call, @Exprs.node@, (treenode *)NULL, @ID.name@); + @i @Call.has_call@ = 1; + + @reg saved_reg = @Call.node@->reg; @Exprs.node@->reg = "rdi"; @Exprs.node@->name=@Call.node@->name; + + @codegen /* reg_return=@Call.node@->reg; function_name = @ID.name@; prepare_call(function_name); */ + @} + + | ID '(' ')' + @{ + @i @Call.node@ = new_node(OP_CallNoParam, (treenode *)NULL, (treenode *)NULL); + @i @Call.has_call@ = 1; + + @codegen /* reg_return=@Call.node@->reg; do_call(@ID.name@); */ + @} + + ; + +Exprs: Expr + @{ + @i @Exprs.node@ = new_node(OP_Arg, @Expr.node@, (treenode *)NULL); + + @reg @Expr.node@->reg = @Exprs.node@->reg; + + @codegen /* write_tree(@Expr.node@); */ /* burm_label(@Expr.node@); burm_reduce(@Expr.node@, 1); do_call(function_name); */ + @} + + | Expr ',' Exprs + @{ + @i @Exprs.node@ = new_node(OP_Exprs, new_node(OP_Arg, @Expr.node@, (treenode *)NULL), @Exprs.1.node@); + @i @Exprs.has_call@ = @Exprs.1.has_call@ || @Expr.has_call@; + + @reg @Expr.node@->reg = @Exprs.node@->reg; @Exprs.1.node@->reg = get_next_param_reg(@Exprs.node@->reg); @Exprs.node@->kids[0]->name = @Exprs.node@->name; @Exprs.1.node@->name = @Exprs.node@->name; + + @codegen /* write_tree(@Expr.node@); */ /* burm_label(@Expr.node@); burm_reduce(@Expr.node@, 1); */ + @} + + ; + +%% + +extern int yylex(); +extern int yylineno; + +int yyerror(char *error_text) { + fprintf(stderr,"Line %i: %s\n",yylineno, error_text); + exit(2); +} + +int main(int argc, char **argv) { + yyparse(); + return 0; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/scanner.lex b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/scanner.lex new file mode 100644 index 0000000..5cf6520 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/scanner.lex @@ -0,0 +1,67 @@ + #include + #include + #include + #include "parser.h" + #include "tree.h" + +KEYWORD func|end|struct|var|if|then|else|while|do|return|or|not +IDENTIFIER [[:alpha:]_][[:alnum:]_]* +NUMBER_HEX [0-9][0-9A-Fa-f]*H +NUMBER_DEC [0-9]+ +WHITESPACE [\t\n\r ] +COMMENT_START \(\* +COMMENT_END \*\) + +%x COMMENT +%option yylineno +%% + +{COMMENT_START} BEGIN(COMMENT); + +{COMMENT_END} BEGIN(INITIAL); + +{COMMENT_START} fprintf(stderr, "Possibly nested comment on line %i\n", yylineno); + +<> { fprintf(stderr, "Unterminated comment.\n"); exit(1); } + +{WHITESPACE} /* ignore */ + +. /* ignore everything inside comment */ + +func return(FUNC); +end return(END); +struct return(STRUCT); +var return(VAR); +if return(IF); +then return(THEN); +else return(ELSE); +while return(WHILE); +do return(DO); +return return(RETURN); +or return(OR); +not return(NOT); + +{IDENTIFIER} return(ID); @{ @ID.name@=strdup(yytext); @} + +{NUMBER_DEC} return(NUM); @{ @NUM.value@=strtol(yytext,(char **)NULL,10); @} +{NUMBER_HEX} return(NUM); @{ yytext[strlen(yytext)-1]='\0'; @NUM.value@=strtol(yytext,(char **)NULL,16); @} + +\:= return(ASSIGN); +>= return(GREATER); +\; return(';'); +\. return('.'); +\( return('('); +\) return(')'); +\, return(','); +\- return('-'); +\+ return('+'); +\* return('*'); += return('='); + +{WHITESPACE} /* ignore */ + +. { fprintf(stderr, "Lexical error on line %i\n", yylineno); exit(1); } + +%% + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/symbol_table.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/symbol_table.c new file mode 100755 index 0000000..bf66a65 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/symbol_table.c @@ -0,0 +1,192 @@ +#include +#include +#include +#include "symbol_table.h" + +struct symbol_t *new_table(void) { + return (struct symbol_t *)NULL; +} + +struct symbol_t *clone_table(struct symbol_t *table) { + struct symbol_t *element; + struct symbol_t *new_tablex; + + element=table; + new_tablex=new_table(); + while((struct symbol_t *)NULL!=element) { + /* check return value */ + if(element->param_index!=-1) { + new_tablex=table_add_param(new_tablex,element->identifier,element->param_index); + } + else { + new_tablex=table_add_symbol(new_tablex,element->identifier,element->type,0,element->stack_offset); + } + element=element->next; + } + + return new_tablex; +} + +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + if(check) { + fprintf(stderr,"Duplicate field %s.\n",identifier); + exit(3); + } + + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=type; + new_element->stack_offset=stack_offset; + new_element->param_index=-1; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index) { + struct symbol_t *element; + struct symbol_t *new_element; + + if(table_lookup(table,identifier)!=(struct symbol_t *)NULL) { + table=table_remove_symbol(table,identifier); + } + + new_element=(struct symbol_t *)malloc(sizeof(struct symbol_t)); + new_element->next=(struct symbol_t *)NULL; + new_element->identifier=strdup(identifier); + new_element->type=SYMBOL_TYPE_PARAM; + new_element->param_index=param_index; + + if((struct symbol_t *)NULL==table) { + return new_element; + } + element=table; + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + } + + element->next=new_element; + + return table; +} + +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + + element=table; + + if((struct symbol_t *)NULL==table) { + return (struct symbol_t *)NULL; + } + + if(strcmp(element->identifier,identifier)==0) { + return element; + } + + while((struct symbol_t *)NULL!=element->next) { + element=element->next; + if(strcmp(element->identifier,identifier)==0) { + return element; + } + } + + return (struct symbol_t *)NULL; +} + +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check) { + struct symbol_t *element; + struct symbol_t *new_table=clone_table(table); + + element=to_add; + while(element!=(struct symbol_t *)NULL) { + if(element->param_index!=-1) { + new_table=table_add_param(new_table,element->identifier,element->param_index); + } + else { + new_table=table_add_symbol(new_table,element->identifier,element->type,check,element->stack_offset); + } + element=element->next; + } + + return new_table; +} + +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier) { + struct symbol_t *element; + struct symbol_t *previous_element; + struct symbol_t *new_element; + + if((struct symbol_t *)NULL==table) { + return table; + } + + previous_element=(struct symbol_t *)NULL; + element=table; + + while((struct symbol_t *)NULL!=element) { + if(strcmp(element->identifier,identifier)==0) { + if((struct symbol_t *)NULL==previous_element) { + new_element=element->next; + } + else { + previous_element->next=element->next; + new_element=table; + } + (void)free(element->identifier); + (void)free(element); + return new_element; + } + previous_element=element; + element=element->next; + } + + return table; +} + +void check_variable(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_VAR && element->type!=SYMBOL_TYPE_PARAM) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + +void check_field(struct symbol_t *table, char *identifier) { + struct symbol_t *element=table_lookup(table,identifier); + if(element!=(struct symbol_t *)NULL) { + if(element->type!=SYMBOL_TYPE_FIELD) { + fprintf(stderr,"Identifier %s not a variable.\n",identifier); + exit(3); + } + } + else { + fprintf(stderr,"Unknown identifier %s.\n",identifier); + exit(3); + } +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/symbol_table.h b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/symbol_table.h new file mode 100755 index 0000000..f8f3687 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/symbol_table.h @@ -0,0 +1,27 @@ +#ifndef SYMBOL_TABLE_H +#define SYMBOL_TABLE_H + +#define SYMBOL_TYPE_FIELD 1 +#define SYMBOL_TYPE_VAR 2 +#define SYMBOL_TYPE_PARAM 3 + +struct symbol_t { + char *identifier; + struct symbol_t *next; + short type; + int stack_offset; + int param_index; /* -1 if not a parameter */ +}; + +struct symbol_t *clone_table(struct symbol_t *table); +struct symbol_t *new_table(void); +struct symbol_t *table_add_symbol(struct symbol_t *table, char *identifier, short type, short check, int stack_offset); +struct symbol_t *table_add_param(struct symbol_t *table, char *identifier, int param_index); +struct symbol_t *table_lookup(struct symbol_t *table, char *identifier); +struct symbol_t *table_remove_symbol(struct symbol_t *table, char *identifier); +struct symbol_t *table_merge(struct symbol_t *table, struct symbol_t *to_add, short check); +void check_variable(struct symbol_t *table, char *identifier); +void check_field(struct symbol_t *table, char *identifier); + +#endif /* SYMBOL_TABLE_H */ + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/test.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/test.c new file mode 100644 index 0000000..7b38912 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/test.c @@ -0,0 +1,187 @@ + #include + +extern long f1(long a); +extern long f2(long a); +extern long f3(long a); +extern long f4(long a); +extern long f5(long a); +extern long f6(long a); +extern long f7(long a); +extern long f8(long a); +extern long f9(long a); +extern long f10(long a); + +extern long g1(long a, long b); +extern long g2(long a, long b); +extern long g3(long a, long b); +extern long g4(long a, long b); +extern long g5(long a, long b); +extern long g6(long a, long b); +extern long g7(long a, long b); +extern long g8(long a, long b); +extern long g9(long a, long b); +extern long g10(long a, long b); +extern long g11(long a, long b); +extern long g12(long a, long b); + +extern long h1(long a, long b, long c, long d); +extern long h2(long a, long b, long c, long d); +extern long h3(long a, long b, long c, long d); +extern long h4(long a, long b, long c, long d); +extern long h5(long a, long b, long c, long d); +extern long h6(long a, long b, long c, long d); +extern long h7(long a, long b, long c, long d); +extern long h8(long a, long b, long c, long d); +extern long h9(long a, long b, long c, long d); +extern long h10(long a, long b, long c, long d); +extern long h11(long a, long b, long c, long d); +extern long h12(long a, long b, long c, long d); +extern long h13(long a, long b, long c, long d); +extern long h14(long a, long b, long c, long d); +extern long h15(long a, long b, long c, long d); +extern long h16(long a, long b, long c, long d); +extern long h17(long a, long b, long c, long d); +extern long h18(long a, long b, long c, long d); +extern long h19(long a, long b, long c, long d); +extern long h20(long a, long b, long c, long d); +extern long h21(long a, long b, long c, long d); +extern long h22(long a, long b, long c, long d); +extern long h23(long a, long b, long c, long d); +extern long h24(long a, long b, long c, long d); + +int check_arg1(char *name, long (*function)(long), long ret0, long ret1, long ret2) { + int ret; + ret=function(0)==ret0 && function(1)==ret1 && function(2)==ret2; + printf("%s: %li/%li, %li/%li, %li/%li - %s\n", name,function(0), ret0, function(1), ret1, function(2), ret2, ret ? "ok" : "FAIL"); + return ret; +} + +int check_arg2(char *name, long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + printf("%s - ", name); + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + printf("%li/%li ", function(a,b),blubb[a][b]); + } + } + printf("- %s\n", ret ? "ok" : "FAIL"); + return ret; +} + +int check_arg4(char *name, long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + printf("%s - ", name); + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + printf("%li/%li ", function(a,b,c,d),blubb[a][b][c][d]); + } + } + } + } + printf("- %s\n", ret ? "ok" : "FAIL"); + return ret; +} + +int main(int argc, char **argv) { + int ret; + + long ret_g1[2][2]={{1,1},{1,0}}; + long ret_g2[2][2]={{1,0},{1,1}}; + long ret_g3[2][2]={{1,1},{0,1}}; + long ret_g4[2][2]={{0,1},{1,1}}; + long ret_g5[2][2]={{0,0},{0,1}}; + long ret_g6[2][2]={{0,1},{0,0}}; + long ret_g7[2][2]={{0,0},{1,0}}; + long ret_g8[2][2]={{1,0},{0,0}}; + long ret_g9[2][2]={{1,1},{1,0}}; + long ret_g10[2][2]={{1,0},{1,1}}; + long ret_g11[2][2]={{1,1},{0,1}}; + long ret_g12[2][2]={{0,1},{1,1}}; + + long ret_h1[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + long ret_h2[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h3[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + long ret_h4[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + long ret_h5[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + + long ret_h6[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h7[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + long ret_h8[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + + long ret_h9[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,1}}}}; + long ret_h10[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,1}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + long ret_h11[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,1}},{{0,0},{0,0}}}}; + long ret_h12[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,1},{0,0}}}}; + long ret_h13[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{1,0}}}}; + long ret_h14[2][2][2][2]={{{{0,0},{0,1}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + long ret_h15[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{1,0},{0,0}}}}; + long ret_h16[2][2][2][2]={{{{1,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + + long ret_h17[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + long ret_h18[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h19[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + long ret_h20[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + long ret_h21[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + + long ret_h22[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + long ret_h23[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + long ret_h24[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + + ret=check_arg1("f1",f1,0,1,1); + ret&=check_arg1("f2",f2,0,0,1); + ret&=check_arg1("f3",f3,1,0,0); + ret&=check_arg1("f4",f4,0,1,1); + ret&=check_arg1("f5",f5,0,0,1); + ret&=check_arg1("f6",f6,1,0,0); + ret&=check_arg1("f7",f7,0,1,1); + ret&=check_arg1("f8",f8,0,0,1); + ret&=check_arg1("f9",f9,1,1,1); + ret&=check_arg1("f10",f10,1,0,0); + + ret&=check_arg2("g1",g1,ret_g1); + ret&=check_arg2("g2",g2,ret_g2); + ret&=check_arg2("g3",g3,ret_g3); + ret&=check_arg2("g4",g4,ret_g4); + ret&=check_arg2("g5",g5,ret_g5); + ret&=check_arg2("g6",g6,ret_g6); + ret&=check_arg2("g7",g7,ret_g7); + ret&=check_arg2("g8",g8,ret_g8); + ret&=check_arg2("g9",g9,ret_g9); + ret&=check_arg2("g10",g10,ret_g10); + ret&=check_arg2("g11",g11,ret_g11); + ret&=check_arg2("g12",g12,ret_g12); + + ret&=check_arg4("h1",h1,ret_h1); + ret&=check_arg4("h2",h2,ret_h2); + ret&=check_arg4("h3",h3,ret_h3); + ret&=check_arg4("h4",h4,ret_h4); + ret&=check_arg4("h5",h5,ret_h5); + ret&=check_arg4("h6",h6,ret_h6); + ret&=check_arg4("h7",h7,ret_h7); + ret&=check_arg4("h8",h8,ret_h8); + ret&=check_arg4("h9",h9,ret_h9); + ret&=check_arg4("h10",h10,ret_h10); + ret&=check_arg4("h11",h11,ret_h11); + ret&=check_arg4("h12",h12,ret_h12); + ret&=check_arg4("h13",h13,ret_h13); + ret&=check_arg4("h14",h14,ret_h14); + ret&=check_arg4("h15",h15,ret_h15); + ret&=check_arg4("h16",h16,ret_h16); + ret&=check_arg4("h17",h17,ret_h17); + ret&=check_arg4("h18",h18,ret_h18); + ret&=check_arg4("h19",h19,ret_h19); + ret&=check_arg4("h20",h20,ret_h20); + ret&=check_arg4("h21",h21,ret_h21); + ret&=check_arg4("h22",h22,ret_h22); + ret&=check_arg4("h23",h23,ret_h23); + ret&=check_arg4("h24",h24,ret_h24); + + return !ret; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/test.input b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/test.input new file mode 100644 index 0000000..54a2eae --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/test.input @@ -0,0 +1,55 @@ +func f1(a) if a=0 then return 0; else return 1; end; end; +func f2(a) if a=0 or a=1 then return 0; else return 1; end; end; +func f3(a) if not (a=0) then return 0; else return 1; end; end; +func f4(a) if (a=0) then return 0; else return 1; end; end; +func f5(a) if (a=0 or a=1) then return 0; else return 1; end; end; +func f6(a) if (not (a=0)) then return 0; else return 1; end; end; +func f7(a) if not (not (a=0)) then return 0; else return 1; end; end; +func f8(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; +func f9(a) if not ((not (a=0)) or (not (a=1))) then return 0; else return 1; end; end; +func f10(a) if (not (not (not (a=0)))) then return 0; else return 1; end; end; + +func g1(a,b) if (a=0 or b=0) then return 1; else return 0; end; end; +func g2(a,b) if ((not (a=0)) or b=0) then return 1; else return 0; end; end; +func g3(a,b) if (a=0 or (not (b=0))) then return 1; else return 0; end; end; +func g4(a,b) if ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; +func g5(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; +func g6(a,b) if not ((not (a=0)) or b=0) then return 1; else return 0; end; end; +func g7(a,b) if not (a=0 or (not (b=0))) then return 1; else return 0; end; end; +func g8(a,b) if not ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; +func g9(a,b) if not (not (a=0 or b=0)) then return 1; else return 0; end; end; +func g10(a,b) if not (not ((not (a=0)) or b=0)) then return 1; else return 0; end; end; +func g11(a,b) if not (not (a=0 or (not (b=0)))) then return 1; else return 0; end; end; +func g12(a,b) if not (not ((not (a=0)) or (not (b=0)))) then return 1; else return 0; end; end; + +func h1(a,b,c,d) if (a=0 or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; +func h2(a,b,c,d) if ((not (a=0)) or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; +func h3(a,b,c,d) if (a=0 or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; +func h4(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or d=0) then return 1; else return 0; end; end; +func h5(a,b,c,d) if (a=0 or b=0) or (c=0 or (not (d=0))) then return 1; else return 0; end; end; +func h6(a,b,c,d) if ((not (a=0)) or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; +func h7(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; +func h8(a,b,c,d) if ((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; +func h9(a,b,c,d) if not ((a=0 or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h10(a,b,c,d) if not (((not (a=0)) or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h11(a,b,c,d) if not ((a=0 or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h12(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or d=0)) then return 1; else return 0; end; end; +func h13(a,b,c,d) if not ((a=0 or b=0) or (c=0 or (not (d=0)))) then return 1; else return 0; end; end; +func h14(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; +func h15(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; +func h16(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; +func h17(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h18(a,b,c,d) if not (not (((not (a=0)) or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h19(a,b,c,d) if not (not ((a=0 or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h20(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or d=0))) then return 1; else return 0; end; end; +func h21(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or (not (d=0))))) then return 1; else return 0; end; end; +func h22(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; +func h23(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; +func h24(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; + +func g(a) if (a=0 or a=1) then return 0; else return 1; end; end; +func h(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; +func i(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; +func j(a,b) if not ((not a=0) or (not b=0)) then return 0; else return 1; end; end; +func k(a,b,c,d) if not ((not (a=0 or b=0)) or (not (c=0 or d=0))) then return 1; else return 0; end; end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/all-wcprops b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/all-wcprops new file mode 100644 index 0000000..dacf9fe --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/all-wcprops @@ -0,0 +1,1181 @@ +K 25 +svn:wc:ra_dav:version-url +V 50 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases +END +fib2.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/fib2.0 +END +f2.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f2.call +END +g4.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g4.call +END +tiefen.call +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/tiefen.call +END +forumx_06.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forumx_06.3 +END +g11.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g11.0 +END +my_d.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_d.0 +END +h6.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h6.call +END +h13.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h13.0 +END +my_h.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_h.0 +END +negterm1.call +K 25 +svn:wc:ra_dav:version-url +V 64 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/negterm1.call +END +h17.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h17.0 +END +my_l.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_l.0 +END +my_a.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_a.call +END +malandro11.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro11.3 +END +malandro15.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro15.3 +END +h13.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h13.call +END +g3.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g3.0 +END +blubb1 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/blubb1 +END +algebran3.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebran3.call +END +blubb2 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/blubb2 +END +fib.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/fib.call +END +g7.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g7.0 +END +parameter6.call +K 25 +svn:wc:ra_dav:version-url +V 66 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/parameter6.call +END +g1.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g1.call +END +h3.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h3.call +END +f7.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f7.call +END +algebra1.call +K 25 +svn:wc:ra_dav:version-url +V 64 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebra1.call +END +g9.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g9.call +END +h22.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h22.0 +END +tiefen1.0 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/tiefen1.0 +END +forum_05.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forum_05.3 +END +algebran4.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebran4.0 +END +fib.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/fib.0 +END +ag_g.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/ag_g.3 +END +parameter3.0 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter3.0 +END +malandro03.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro03.3 +END +h10.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h10.call +END +ag_k.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/ag_k.3 +END +test4.2 +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/test4.2 +END +f1.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f1.0 +END +my_f.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_f.call +END +h22.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h22.call +END +malandro07.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro07.3 +END +tiefen1.call +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/tiefen1.call +END +h2.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h2.0 +END +f5.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f5.0 +END +h18.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h18.call +END +h6.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h6.0 +END +f9.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f9.0 +END +parameter3.call +K 25 +svn:wc:ra_dav:version-url +V 66 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter3.call +END +f4.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f4.call +END +my_a.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_a.0 +END +f10.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f10.0 +END +forumx_07.2 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forumx_07.2 +END +g6.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g6.call +END +h10.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h10.0 +END +g12.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g12.0 +END +my_e.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_e.0 +END +h8.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h8.call +END +h14.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h14.0 +END +h18.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h18.0 +END +my_i.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_i.3 +END +malandro12.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro12.3 +END +g10.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g10.call +END +my_c.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_c.call +END +malandro16.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro16.3 +END +regfehler.4 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/regfehler.4 +END +h15.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h15.call +END +g4.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g4.0 +END +tiefen.0 +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/tiefen.0 +END +my_k.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_k.call +END +g8.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g8.0 +END +f1.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f1.call +END +negterm1.0 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/negterm1.0 +END +g3.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g3.call +END +h5.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h5.call +END +f9.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f9.call +END +h23.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h23.0 +END +algebran1.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebran1.0 +END +forum_06.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forum_06.3 +END +ag_h.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/ag_h.3 +END +f10.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f10.call +END +test1.3 +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/test1.3 +END +malandro04.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro04.3 +END +parameter4.0 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter4.0 +END +h12.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h12.call +END +f2.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f2.0 +END +my_h.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_h.call +END +h24.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h24.call +END +algebran2.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebran2.call +END +h3.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h3.0 +END +f6.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f6.0 +END +h7.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h7.0 +END +tiefemax.call +K 25 +svn:wc:ra_dav:version-url +V 64 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/tiefemax.call +END +parameter5.call +K 25 +svn:wc:ra_dav:version-url +V 66 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter5.call +END +h2.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h2.call +END +forumx_04.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forumx_04.3 +END +my_b.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_b.0 +END +f6.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f6.call +END +h11.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h11.0 +END +g8.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g8.call +END +forumx_08.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forumx_08.3 +END +my_f.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_f.0 +END +h15.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h15.0 +END +my_j.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_j.0 +END +malandro.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro.3 +END +h19.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h19.0 +END +malandro13.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro13.3 +END +g12.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g12.call +END +my_e.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_e.call +END +h21.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h21.call +END +g1.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g1.0 +END +algebra.call +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/algebra.call +END +g5.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g5.0 +END +h17.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h17.call +END +parameter2.call +K 25 +svn:wc:ra_dav:version-url +V 66 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter2.call +END +g9.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g9.0 +END +f3.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f3.call +END +localx01.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/localx01.3 +END +g5.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g5.call +END +h20.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h20.0 +END +h7.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h7.call +END +h24.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h24.0 +END +algebran2.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebran2.0 +END +fib2.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/fib2.call +END +ag_e.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/ag_e.3 +END +forum_07.2 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forum_07.2 +END +parameter1.0 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter1.0 +END +malandro01.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro01.3 +END +negterm.0 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/negterm.0 +END +testscriptx03.3 +K 25 +svn:wc:ra_dav:version-url +V 66 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/testscriptx03.3 +END +ag_i.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/ag_i.3 +END +my_b.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_b.call +END +test2.3 +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/test2.3 +END +parameter5.0 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter5.0 +END +malandro05.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro05.3 +END +f3.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f3.0 +END +h14.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h14.call +END +malandro09.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro09.3 +END +my_j.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_j.call +END +h4.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h4.0 +END +algebran4.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebran4.call +END +f7.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f7.0 +END +h8.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h8.0 +END +g2.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g2.call +END +g10.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g10.0 +END +forumx_05.3 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forumx_05.3 +END +h4.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h4.call +END +my_c.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_c.0 +END +f8.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f8.call +END +h12.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h12.0 +END +my_g.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_g.0 +END +algebra.0 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/algebra.0 +END +h16.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h16.0 +END +local01.3 +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/local01.3 +END +my_k.0 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_k.0 +END +malandro10.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro10.3 +END +tiefemax.0 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/tiefemax.0 +END +h11.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h11.call +END +malandro14.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro14.3 +END +my_g.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_g.call +END +g2.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g2.0 +END +h23.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h23.call +END +algebran1.call +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebran1.call +END +g6.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g6.0 +END +h19.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h19.call +END +parameter4.call +K 25 +svn:wc:ra_dav:version-url +V 66 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter4.call +END +h1.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h1.call +END +f5.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f5.call +END +g7.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g7.call +END +h21.0 +K 25 +svn:wc:ra_dav:version-url +V 56 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h21.0 +END +ag_b.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/ag_b.3 +END +h9.call +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h9.call +END +forum_04.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forum_04.3 +END +algebran3.0 +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebran3.0 +END +malandro02.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro02.3 +END +forum_08.3 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/forum_08.3 +END +parameter2.0 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter2.0 +END +ag_j.3 +K 25 +svn:wc:ra_dav:version-url +V 57 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/ag_j.3 +END +g11.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/g11.call +END +my_d.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_d.call +END +h20.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h20.call +END +test3.3 +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/test3.3 +END +malandro06.3 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/malandro06.3 +END +parameter6.0 +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/parameter6.0 +END +h1.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h1.0 +END +f4.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f4.0 +END +h16.call +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h16.call +END +h5.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h5.0 +END +my_l.call +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/my_l.call +END +f8.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/f8.0 +END +negterm.call +K 25 +svn:wc:ra_dav:version-url +V 63 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/negterm.call +END +parameter1.call +K 25 +svn:wc:ra_dav:version-url +V 66 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/parameter1.call +END +algebra1.0 +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/private/!svn/ver/1041/ublu08/gesamt/testcases/algebra1.0 +END +h9.0 +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/private/!svn/ver/1024/ublu08/gesamt/testcases/h9.0 +END diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/entries b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/entries new file mode 100644 index 0000000..118a2ff --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/entries @@ -0,0 +1,2368 @@ +8 + +dir +1024 +http://localhost/svn/private/ublu08/gesamt/testcases +http://localhost/svn/private + + + +2008-05-17T18:36:31.041320Z +1024 +paulchen + + +svn:special svn:externals svn:needs-lock + +fib2.0 +file + + + + +2008-05-17T18:34:47.000000Z +d2958f8cee3c919b8e9778086e29fe14 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f2.call +file + + + + +2008-05-17T18:34:39.000000Z +6fdf6778d8fc38ee5ed996403a0beee7 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g4.call +file + + + + +2008-05-17T18:35:03.000000Z +91086753970b73e9bdca217572ac9c8d +2008-05-17T18:36:31.041320Z +1024 +paulchen + +tiefen.call +file +1041 + + + +2008-05-19T17:30:32.000000Z +4e4611a55d42deb5d4d01604659aee3d +2008-05-19T17:31:08.560526Z +1041 +paulchen + +forumx_06.3 +file + + + + +2008-05-17T18:34:53.000000Z +90f2ef946fd9ef28fcf94df027e89e56 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g11.0 +file + + + + +2008-05-17T18:34:57.000000Z +ece252a4a0ec44ce0e3f340b0f3403ec +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_d.0 +file +1041 + + + +2008-05-19T17:30:22.000000Z +edb330d048a07ba2fae79cc04d38a7f1 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h6.call +file + + + + +2008-05-17T18:35:39.000000Z +5e3326d561b87290b4eb674f1303870d +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h13.0 +file + + + + +2008-05-17T18:35:13.000000Z +9cd396fc3339078adcaf75a56ec19156 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_h.0 +file +1041 + + + +2008-05-19T17:30:23.000000Z +24d3908b6b8ece4cc26953a301f0ac98 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +negterm1.call +file + + + + +2008-05-17T18:35:55.000000Z +df277ed55a7f4f87cbef2815c8ac3d67 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h17.0 +file + + + + +2008-05-17T18:35:19.000000Z +3e6ee293496914c5f2096bd0a8550f3c +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_l.0 +file +1041 + + + +2008-05-19T17:30:23.000000Z +c4a82df390b222018ef51ac46566b0a4 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +my_a.call +file +1041 + + + +2008-05-19T17:30:22.000000Z +d8e871df2c202de33d975b0b930ae83c +2008-05-19T17:31:08.560526Z +1041 +paulchen + +malandro11.3 +file + + + + +2008-05-17T18:35:50.000000Z +01f2397e7770ffe1210363a85e7cbbc2 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro15.3 +file + + + + +2008-05-17T18:35:51.000000Z +d5ee0e5ba80a0bff089d93f5706f7408 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h13.call +file + + + + +2008-05-17T18:35:14.000000Z +8b9ec70cddc4dc5d4a61e6c67e043ae2 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g3.0 +file + + + + +2008-05-17T18:35:01.000000Z +d4145f0545bc34ee767b3ff34657aebd +2008-05-17T18:36:31.041320Z +1024 +paulchen + +blubb1 +file +1041 + + + +2008-05-19T17:30:21.000000Z +f81b880b28e12fe2650547d339c6af6c +2008-05-19T17:31:08.560526Z +1041 +paulchen + +blubb2 +file +1041 + + + +2008-05-19T17:30:21.000000Z +de9c96c2092a644ceec2b3677393c0ab +2008-05-19T17:31:08.560526Z +1041 +paulchen + +algebran3.call +file +1041 + + + +2008-05-19T17:30:21.000000Z +31a43ca0465b0c89a605fdd25d6edefc +2008-05-19T17:31:08.560526Z +1041 +paulchen + +fib.call +file + + + + +2008-05-17T18:34:48.000000Z +e56eb5050edfe853fd96c4a2eca3c749 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g7.0 +file + + + + +2008-05-17T18:35:06.000000Z +85ed1ed1e6f164ffea7ef137d363cb10 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter6.call +file +1041 + + + +2008-05-19T17:30:31.000000Z +1265633d7de6b2d870ae79b1f20041de +2008-05-19T17:31:08.560526Z +1041 +paulchen + +g1.call +file + + + + +2008-05-17T18:34:59.000000Z +53187b9d7adde68a9e5933499c8f922e +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h3.call +file + + + + +2008-05-17T18:35:35.000000Z +c7c83b1c157701d046b33a3a66956187 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f7.call +file + + + + +2008-05-17T18:34:44.000000Z +e8fddc19e3e601f8cc863dc7b144413c +2008-05-17T18:36:31.041320Z +1024 +paulchen + +algebra1.call +file +1041 + + + +2008-05-19T17:29:07.000000Z +cddcdc6d33203e7c02204531c0c5aa1d +2008-05-19T17:31:08.560526Z +1041 +paulchen + +tiefen1.0 +file +1041 + + + +2008-05-19T17:30:31.000000Z +20468ca960f31ebc7c20ccfade82a914 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +g9.call +file + + + + +2008-05-17T18:35:09.000000Z +c8351778328bd6445197f503b8139d17 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h22.0 +file + + + + +2008-05-17T18:35:28.000000Z +374eb9995cbdb04b5220807a5a3f87b9 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +algebran4.0 +file +1041 + + + +2008-05-19T17:30:21.000000Z +e38a1ef87d78932d67c67aa84e1ccf75 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +forum_05.3 +file + + + + +2008-05-17T18:34:49.000000Z +ec3a03b9d419323173761bfd14e4a342 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +fib.0 +file + + + + +2008-05-17T18:34:46.000000Z +b968dfc49c1042155cf7df90e7f8e5ad +2008-05-17T18:36:31.041320Z +1024 +paulchen + +ag_g.3 +file +1041 + + + +2008-05-19T17:29:03.000000Z +20534b17025920c73825550fb87ce080 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +parameter3.0 +file + + + + +2008-05-17T18:35:58.000000Z +a84451fa9cf4a391d17e8644f8178316 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro03.3 +file + + + + +2008-05-17T18:35:46.000000Z +44d577a75f88e2050610bfdfbd14c6be +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h10.call +file + + + + +2008-05-17T18:35:10.000000Z +2c485b4998bfadced17db390161a05bb +2008-05-17T18:36:31.041320Z +1024 +paulchen + +ag_k.3 +file +1041 + + + +2008-05-19T17:29:03.000000Z +e65008728ffa41f53928dffb28f6c94b +2008-05-19T17:31:08.560526Z +1041 +paulchen + +test4.2 +file + + + + +2008-05-17T18:36:03.000000Z +261f08f201d000da065a3b6e0e4fe522 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f1.0 +file + + + + +2008-05-17T18:34:36.000000Z +d00a3189324e0dc908bc4c9ca337b874 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_f.call +file +1041 + + + +2008-05-19T17:30:22.000000Z +0a039d15f089d3b7e1e83741ad4fcf00 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +malandro07.3 +file + + + + +2008-05-17T18:35:48.000000Z +c7d7f7ab7fc7362e4f89df7180f12e63 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h22.call +file + + + + +2008-05-17T18:35:29.000000Z +a6ffd7bcd611b80ef7dc135af39112c1 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +tiefen1.call +file +1041 + + + +2008-05-19T17:30:32.000000Z +267076ac0db282a9e63d3da134d02ac5 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h2.0 +file + + + + +2008-05-17T18:35:24.000000Z +35959e8c523c6f4174e6b55ab6b4c8c5 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f5.0 +file + + + + +2008-05-17T18:34:42.000000Z +569ee2be6fb5c62ef86cd3629cac5f3f +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h18.call +file + + + + +2008-05-17T18:35:21.000000Z +a9a81170498be8f908b88064fd921651 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h6.0 +file + + + + +2008-05-17T18:35:39.000000Z +6278e991fa97d2fe44a6b667bf5ce8ce +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f9.0 +file + + + + +2008-05-17T18:34:45.000000Z +cacb3a1b2234ad40bb5845121342ecc5 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter3.call +file + + + + +2008-05-17T18:35:59.000000Z +b83655ced953bc57f27e16d99a375090 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f4.call +file + + + + +2008-05-17T18:34:41.000000Z +86cb296fb35261183e0b7cb47da376ac +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_a.0 +file +1041 + + + +2008-05-19T17:30:21.000000Z +3bffa81589a4257a11d417591113c422 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +f10.0 +file + + + + +2008-05-17T18:34:36.000000Z +2279bf66cdd77b388d7891edd286797c +2008-05-17T18:36:31.041320Z +1024 +paulchen + +forumx_07.2 +file + + + + +2008-05-17T18:34:54.000000Z +2eff768369bb8c5041b9f7d6472e6c09 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h10.0 +file + + + + +2008-05-17T18:35:10.000000Z +920dd8ceaaccf2467646b2131bb4cbe8 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g6.call +file + + + + +2008-05-17T18:35:06.000000Z +194d639fa1d782d72d1c44fc2078f323 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g12.0 +file + + + + +2008-05-17T18:34:58.000000Z +06094e77abc9ec03ec903a3e24e6b665 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_e.0 +file +1041 + + + +2008-05-19T17:30:22.000000Z +8bb24c7ef08877bec6d85c61c7f11486 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h8.call +file + + + + +2008-05-17T18:35:42.000000Z +ddca9b6763b65ae5d4446c3ce803a4a0 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h14.0 +file + + + + +2008-05-17T18:35:15.000000Z +60bf3f187d9a1dbbb3a2465912fe3051 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h18.0 +file + + + + +2008-05-17T18:35:21.000000Z +9c1ecac2a855e2fa6a5e099d7785a7c9 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_i.3 +file +1041 + + + +2008-05-19T17:30:23.000000Z +87e2ed0079b335710ad819a032522b7f +2008-05-19T17:31:08.560526Z +1041 +paulchen + +my_c.call +file +1041 + + + +2008-05-19T17:30:22.000000Z +8b6e3530f1036c37b21714cbdabc01c2 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +malandro12.3 +file + + + + +2008-05-17T18:35:50.000000Z +aa0e79272f940413edf4d665c6bf1b13 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g10.call +file + + + + +2008-05-17T18:34:56.000000Z +771617f03dfcc89cecf5527b6598eb51 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +regfehler.4 +file +1041 + + + +2008-05-19T17:30:31.000000Z +05069199bbd9dcebcc33a29331a5ad2e +2008-05-19T17:31:08.560526Z +1041 +paulchen + +malandro16.3 +file + + + + +2008-05-17T18:35:52.000000Z +dd6cb8db3847a3b5b61dd7472759e41e +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h15.call +file + + + + +2008-05-17T18:35:17.000000Z +6b6c982647c1a7f22e564dd174368033 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g4.0 +file + + + + +2008-05-17T18:35:02.000000Z +9034560365c27619e90055b4da8e5372 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +tiefen.0 +file +1041 + + + +2008-05-19T17:30:31.000000Z +894857a81390988f155cfc843435b294 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +my_k.call +file +1041 + + + +2008-05-19T17:30:23.000000Z +865f8ec640f631c4f6402456858abdca +2008-05-19T17:31:08.560526Z +1041 +paulchen + +g8.0 +file + + + + +2008-05-17T18:35:08.000000Z +fe8d7c2e7823e6bdd1c8fc28605bd9f2 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f1.call +file + + + + +2008-05-17T18:34:38.000000Z +53fc6b9768c09b7c293a1be97bccbbc8 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +negterm1.0 +file + + + + +2008-05-17T18:35:54.000000Z +1988fa90318ee8b68449221ce78c241b +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g3.call +file + + + + +2008-05-17T18:35:02.000000Z +e24b4fb290f801e18a3bf96d00461914 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h5.call +file + + + + +2008-05-17T18:35:38.000000Z +d592a3082cc9d79acd5c6156405522e0 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f9.call +file + + + + +2008-05-17T18:34:46.000000Z +9450201506a4516e5e1b1c9fda7c9bab +2008-05-17T18:36:31.041320Z +1024 +paulchen + +algebran1.0 +file +1041 + + + +2008-05-19T17:30:20.000000Z +690865c2dd5b4b91db769c1da6d25140 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h23.0 +file + + + + +2008-05-17T18:35:30.000000Z +f2dc8cde2ccfc3b28c646d065432a62a +2008-05-17T18:36:31.041320Z +1024 +paulchen + +forum_06.3 +file + + + + +2008-05-17T18:34:50.000000Z +90f2ef946fd9ef28fcf94df027e89e56 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +ag_h.3 +file +1041 + + + +2008-05-19T17:29:03.000000Z +650875eb5a2f896670989d5eb855cb15 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +f10.call +file + + + + +2008-05-17T18:34:37.000000Z +f01c2a5bfad5e7cbe354daa82f38bf67 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +test1.3 +file + + + + +2008-05-17T18:36:01.000000Z +cf01830ebe0eea03c1eaa4b62661d921 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter4.0 +file + + + + +2008-05-17T18:35:59.000000Z +ad9b196b5359debf25e96b7d89594a10 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro04.3 +file + + + + +2008-05-17T18:35:47.000000Z +2d2e211032ee1340a92a0c1047c6118b +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h12.call +file + + + + +2008-05-17T18:35:13.000000Z +6215af599791dd3c552445d220889a9a +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f2.0 +file + + + + +2008-05-17T18:34:39.000000Z +29979069993c3662a4e9ddde5923a4b4 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_h.call +file +1041 + + + +2008-05-19T17:30:23.000000Z +e089414c1c9493efaa9df2ee7a9c5fca +2008-05-19T17:31:08.560526Z +1041 +paulchen + +algebran2.call +file +1041 + + + +2008-05-19T17:30:20.000000Z +b9bdb8dfee8630bde64f5e468a27ab83 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h24.call +file + + + + +2008-05-17T18:35:33.000000Z +dfb11c2012a60887f5f3be302c327154 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h3.0 +file + + + + +2008-05-17T18:35:35.000000Z +40c8a6988c2d1e144c1925fe9c5f5656 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f6.0 +file + + + + +2008-05-17T18:34:43.000000Z +ff8ef2815c929123b8b399719f7d74f9 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +tiefemax.call +file +1041 + + + +2008-05-19T17:30:31.000000Z +89db20d22c0c8952c78b02832a1d6890 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h7.0 +file + + + + +2008-05-17T18:35:40.000000Z +0e9afe918174f0bc89b1808f03e33c05 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter5.call +file + + + + +2008-05-17T18:36:01.000000Z +ec07056887a720babfb611b28d880856 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h2.call +file + + + + +2008-05-17T18:35:34.000000Z +822191cbe70a0099adee9b3f9e2c86d8 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +forumx_04.3 +file + + + + +2008-05-17T18:34:52.000000Z +53d9c7e2e53e504ed29147e475c198ca +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_b.0 +file +1041 + + + +2008-05-19T17:30:22.000000Z +a146ace45773876d04625ec0ff58a056 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +f6.call +file + + + + +2008-05-17T18:34:43.000000Z +b2fa8363b75b105954deedddefba509f +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h11.0 +file + + + + +2008-05-17T18:35:11.000000Z +dff54389b093db24b8108199477d278c +2008-05-17T18:36:31.041320Z +1024 +paulchen + +forumx_08.3 +file + + + + +2008-05-17T18:34:54.000000Z +79467ccded17f71ad439c95f808fcc2b +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g8.call +file + + + + +2008-05-17T18:35:08.000000Z +563ca6eb8935a8ea48110d8fe29569c1 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_f.0 +file +1041 + + + +2008-05-19T17:30:22.000000Z +0651ad5f3f0b89ff295418768ee0f9b9 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h15.0 +file + + + + +2008-05-17T18:35:16.000000Z +c80e471f2847784226fc2037a551dcd4 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_j.0 +file +1041 + + + +2008-05-19T17:30:23.000000Z +1ca4a232bb8d070c35c51fcaeb343760 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +malandro.3 +file + + + + +2008-05-17T18:35:53.000000Z +841850e2a940609318a3b8cfbcea5ae6 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h19.0 +file + + + + +2008-05-17T18:35:22.000000Z +c61fd976033fc4e9663e7e918282db3e +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro13.3 +file + + + + +2008-05-17T18:35:50.000000Z +65c411aa64afeeff2977743f66888419 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_e.call +file +1041 + + + +2008-05-19T17:30:22.000000Z +aadf182e68032bd4d62184ec98f22f96 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +g12.call +file + + + + +2008-05-17T18:34:59.000000Z +453b2d8fe412acc52b23bc2508816687 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h21.call +file + + + + +2008-05-17T18:35:27.000000Z +c69e8ba6d274d469dd2633b623f4f2c9 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g1.0 +file + + + + +2008-05-17T18:34:55.000000Z +82a9ac30d92f5afc92769af75534e5ce +2008-05-17T18:36:31.041320Z +1024 +paulchen + +algebra.call +file + + + + +2008-05-17T18:34:36.000000Z +3017bb3923bd9e6e82471364aaa815b5 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h17.call +file + + + + +2008-05-17T18:35:20.000000Z +53dfbeab7dcdad7ba8b38eccd01fa8ca +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g5.0 +file + + + + +2008-05-17T18:35:04.000000Z +8aef877a7ce8f2b3b26fd597d526b14c +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter2.call +file + + + + +2008-05-17T18:35:58.000000Z +e7d734676b659257758b46640ed1edbe +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g9.0 +file + + + + +2008-05-17T18:35:09.000000Z +2bf1172b55d9c98b19fc64ebf4ef5013 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f3.call +file + + + + +2008-05-17T18:34:40.000000Z +9f74f6b9a2f2bb52089896cfd60dd342 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +localx01.3 +file + + + + +2008-05-17T18:35:45.000000Z +dca62f2af71a71eb7ed4e232e530befc +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g5.call +file + + + + +2008-05-17T18:35:04.000000Z +fea54a4aeac466fba2b371477119ade2 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h20.0 +file + + + + +2008-05-17T18:35:25.000000Z +31285e1e83984533b1a302c077efb47d +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h7.call +file + + + + +2008-05-17T18:35:41.000000Z +6e1158562af63768dd7619dc10803233 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h24.0 +file + + + + +2008-05-17T18:35:32.000000Z +6fe5899c44e3d873842fdc4e62f5bda2 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +algebran2.0 +file +1041 + + + +2008-05-19T17:30:20.000000Z +6f66742e13551edc693253c2fab30c31 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +fib2.call +file + + + + +2008-05-17T18:34:47.000000Z +e56eb5050edfe853fd96c4a2eca3c749 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +ag_e.3 +file +1041 + + + +2008-05-19T17:29:03.000000Z +3c2167748f53462c0b1db85d36117cab +2008-05-19T17:31:08.560526Z +1041 +paulchen + +forum_07.2 +file + + + + +2008-05-17T18:34:51.000000Z +2eff768369bb8c5041b9f7d6472e6c09 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro01.3 +file + + + + +2008-05-17T18:35:45.000000Z +8d38fe618dc92f98cbddb87c0819c8cb +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter1.0 +file + + + + +2008-05-17T18:35:56.000000Z +1261f0301022d7e1842bc892c067907e +2008-05-17T18:36:31.041320Z +1024 +paulchen + +negterm.0 +file + + + + +2008-05-17T18:35:53.000000Z +1988fa90318ee8b68449221ce78c241b +2008-05-17T18:36:31.041320Z +1024 +paulchen + +ag_i.3 +file +1041 + + + +2008-05-19T17:29:03.000000Z +e7c3efc4c07c5fd29267e8dd51cc3837 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +my_b.call +file +1041 + + + +2008-05-19T17:30:22.000000Z +cf8ce2070e9a5e0209f878697a46df1b +2008-05-19T17:31:08.560526Z +1041 +paulchen + +testscriptx03.3 +file + + + + +2008-05-17T18:36:04.000000Z +d2168be28160d4fef8250aa5fd68cfe1 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +test2.3 +file + + + + +2008-05-17T18:36:01.000000Z +00abfc26a30c3aab6fc57a21d46ceb2b +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter5.0 +file + + + + +2008-05-17T18:36:00.000000Z +5486f00b73c73fe463a8eed28381154c +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro05.3 +file + + + + +2008-05-17T18:35:47.000000Z +1de8dca763ece7a0cee3a5089cf76270 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f3.0 +file + + + + +2008-05-17T18:34:40.000000Z +775d933d70fbc9bf5b376ab7c7ff27a7 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h14.call +file + + + + +2008-05-17T18:35:15.000000Z +fbad72a47632903211179624698f35d1 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro09.3 +file + + + + +2008-05-17T18:35:49.000000Z +0609d00302341b6cf4740d436bb87ad0 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_j.call +file +1041 + + + +2008-05-19T17:30:23.000000Z +1be4fc525da884e37231e897d8df9153 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +algebran4.call +file +1041 + + + +2008-05-19T17:30:21.000000Z +1bbb58f1e36e4916cd12fb28254a749e +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h4.0 +file + + + + +2008-05-17T18:35:36.000000Z +4426579c1fb1c0be99974b7118572ab1 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f7.0 +file + + + + +2008-05-17T18:34:44.000000Z +3dc7d7476bc4d0b46d5fb184022adb52 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h8.0 +file + + + + +2008-05-17T18:35:42.000000Z +7fc0ad824e5fd175879cf626dd56f0dc +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g2.call +file + + + + +2008-05-17T18:35:00.000000Z +b445b24b77fdf47000fc1a23d9471e8c +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h4.call +file + + + + +2008-05-17T18:35:37.000000Z +031adf99ed7c33e89db84c87a4392f69 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g10.0 +file + + + + +2008-05-17T18:34:56.000000Z +02cf0f938b64a2e5a50835b4d707b4b1 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +forumx_05.3 +file + + + + +2008-05-17T18:34:53.000000Z +e8e353ae2a690dc40e3de8029c7543cb +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_c.0 +file +1041 + + + +2008-05-19T17:30:22.000000Z +b4d20db97a644172a90852ab1de2188b +2008-05-19T17:31:08.560526Z +1041 +paulchen + +f8.call +file + + + + +2008-05-17T18:34:45.000000Z +b6e9fa907dbb258fad6cead558e7f9df +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h12.0 +file + + + + +2008-05-17T18:35:12.000000Z +34605d216eab69393ba1ead08a982d22 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_g.0 +file +1041 + + + +2008-05-19T17:30:22.000000Z +733f1c17fd48c5ceb9a8195302a25c7e +2008-05-19T17:31:08.560526Z +1041 +paulchen + +algebra.0 +file + + + + +2008-05-17T18:34:35.000000Z +717629790b90ca013c291ef1bb3a95a0 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +local01.3 +file + + + + +2008-05-17T18:35:44.000000Z +dca62f2af71a71eb7ed4e232e530befc +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h16.0 +file + + + + +2008-05-17T18:35:18.000000Z +566b21ab8cab3072352b9e18a4ed3fed +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_k.0 +file +1041 + + + +2008-05-19T17:30:23.000000Z +debe02b8fb99a1b6c2bcb67b01cb6239 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +malandro10.3 +file + + + + +2008-05-17T18:35:49.000000Z +b3b87392dfb554fa731b5e109e83717d +2008-05-17T18:36:31.041320Z +1024 +paulchen + +tiefemax.0 +file +1041 + + + +2008-05-19T17:30:31.000000Z +6d11b557ca68eb04e5c719a4545b8c04 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h11.call +file + + + + +2008-05-17T18:35:12.000000Z +aa4a6c331e36040999fdc6091a86de53 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro14.3 +file + + + + +2008-05-17T18:35:51.000000Z +cdf5c8269940d7e8c2728eab2f130ddf +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_g.call +file +1041 + + + +2008-05-19T17:30:22.000000Z +a825f985690e62f5e01807e59c4c7482 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h23.call +file + + + + +2008-05-17T18:35:31.000000Z +c51b55fe9488292f6a77ea71d4d4aecb +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g2.0 +file + + + + +2008-05-17T18:35:00.000000Z +5e8c78dd741ff50ea614da54efa537b6 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +algebran1.call +file +1041 + + + +2008-05-19T17:30:20.000000Z +b63ea91bf59174863748baf043bf7ad6 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +g6.0 +file + + + + +2008-05-17T18:35:05.000000Z +5ab93cfbb449b62c2cd53515f9df4be3 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h19.call +file + + + + +2008-05-17T18:35:23.000000Z +4406ad63d0375889d65f96ed4e97d39b +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter4.call +file + + + + +2008-05-17T18:36:00.000000Z +3f3ffcf35a86b82feb72cdd985ca1e1f +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h1.call +file + + + + +2008-05-17T18:35:24.000000Z +be6040170888395b1ae70ab05a943484 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f5.call +file + + + + +2008-05-17T18:34:42.000000Z +8ff3de3a86a2bf00b8c8785e39034592 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +g7.call +file + + + + +2008-05-17T18:35:07.000000Z +a6393c3b308f83f522919b795b69b1cd +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h21.0 +file + + + + +2008-05-17T18:35:26.000000Z +26f0e09fdf5c2ca9f2ec6444d21a68c8 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +ag_b.3 +file +1041 + + + +2008-05-19T17:29:03.000000Z +32a248c9ddfc007209d982212d49f258 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h9.call +file + + + + +2008-05-17T18:35:43.000000Z +1be02f3e94466102b74b448d10ec04ba +2008-05-17T18:36:31.041320Z +1024 +paulchen + +forum_04.3 +file + + + + +2008-05-17T18:34:49.000000Z +d83d32ffa882e4ec405476b4f6adcd3e +2008-05-17T18:36:31.041320Z +1024 +paulchen + +algebran3.0 +file +1041 + + + +2008-05-19T17:30:21.000000Z +b1363161ef4a8deedb9ed90241d931d8 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +forum_08.3 +file + + + + +2008-05-17T18:34:51.000000Z +c613ec3ddb7ac662168c2b225a0b3297 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro02.3 +file + + + + +2008-05-17T18:35:46.000000Z +945b02b282475aeffab4cd808c0b878c +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter2.0 +file + + + + +2008-05-17T18:35:57.000000Z +549d406f0bafaf114784f2be8988aab0 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +ag_j.3 +file +1041 + + + +2008-05-19T17:29:03.000000Z +d6e7caf90136e29dd91e2c7d1c93f93a +2008-05-19T17:31:08.560526Z +1041 +paulchen + +g11.call +file + + + + +2008-05-17T18:34:58.000000Z +d0ff54d3ff20c20e847a49f57c771142 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_d.call +file +1041 + + + +2008-05-19T17:30:22.000000Z +7dc483abb732b281b49edee6cdcbc30d +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h20.call +file + + + + +2008-05-17T18:35:26.000000Z +521a7a78c92ca8cf48afffe8360e44c3 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +test3.3 +file + + + + +2008-05-17T18:36:03.000000Z +47c8c25fbe3227587a7f10ef1937af2c +2008-05-17T18:36:31.041320Z +1024 +paulchen + +malandro06.3 +file + + + + +2008-05-17T18:35:48.000000Z +c568b31541a0c2fc3d705a83ae0d48b2 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter6.0 +file +1041 + + + +2008-05-19T17:30:31.000000Z +d8e483e11fd68ef30c00164967a3a084 +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h1.0 +file + + + + +2008-05-17T18:35:10.000000Z +7ba7182884f0c9d735e9faaac7dfc7f1 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f4.0 +file + + + + +2008-05-17T18:34:41.000000Z +9184146efc94eceb80f1041fa1d276ce +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h16.call +file + + + + +2008-05-17T18:35:18.000000Z +0653628e8d663327ddff45fd4eab19ee +2008-05-17T18:36:31.041320Z +1024 +paulchen + +h5.0 +file + + + + +2008-05-17T18:35:37.000000Z +84f8654c81a880f99dc7e3f55b9081ad +2008-05-17T18:36:31.041320Z +1024 +paulchen + +my_l.call +file +1041 + + + +2008-05-19T17:30:23.000000Z +bccf20fd3bc6ceb1985ed3b2573f103d +2008-05-19T17:31:08.560526Z +1041 +paulchen + +negterm.call +file + + + + +2008-05-17T18:35:55.000000Z +bdad2e18de2d65822773cd8c924155f1 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +parameter1.call +file + + + + +2008-05-17T18:35:56.000000Z +ec51e4a1adc8afa59fd5160c332b9645 +2008-05-17T18:36:31.041320Z +1024 +paulchen + +f8.0 +file + + + + +2008-05-17T18:34:44.000000Z +9af62ae20a4a815560b5259d1a43f5af +2008-05-17T18:36:31.041320Z +1024 +paulchen + +algebra1.0 +file +1041 + + + +2008-05-19T17:29:06.000000Z +6ff960ca78782ddb093e1d5ed4887afa +2008-05-19T17:31:08.560526Z +1041 +paulchen + +h9.0 +file + + + + +2008-05-17T18:35:43.000000Z +e177856e7e23dc023d0b82bbd086be47 +2008-05-17T18:36:31.041320Z +1024 +paulchen + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/format b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/format new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/format @@ -0,0 +1 @@ +8 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_b.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_b.3.svn-base new file mode 100644 index 0000000..aa221b6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_b.3.svn-base @@ -0,0 +1,6 @@ +func f() + var a := 1; + var b := 2; + + c := 5; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_e.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_e.3.svn-base new file mode 100644 index 0000000..130f8db --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_e.3.svn-base @@ -0,0 +1,9 @@ +func f(x,y) + var a := 1; + var b := 2; + if a = b then + a := 3; + x := z; + end; + b := x; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_g.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_g.3.svn-base new file mode 100644 index 0000000..e9786b8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_g.3.svn-base @@ -0,0 +1,9 @@ +struct a b a end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + return g(off,bound,add); +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_h.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_h.3.svn-base new file mode 100644 index 0000000..c27e6fb --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_h.3.svn-base @@ -0,0 +1,5 @@ +func f() + off := 7; + var off:=5; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_i.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_i.3.svn-base new file mode 100644 index 0000000..205e1ab --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_i.3.svn-base @@ -0,0 +1,13 @@ +struct a b end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + if (1=1) then + var x :=17; + else + return x; + end; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_j.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_j.3.svn-base new file mode 100644 index 0000000..3402eaa --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_j.3.svn-base @@ -0,0 +1,12 @@ +struct a b end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + if (1=1) then + var x :=17; + end; + return x; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_k.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_k.3.svn-base new file mode 100644 index 0000000..56757a8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/ag_k.3.svn-base @@ -0,0 +1,6 @@ +struct a b end; + +func f() + var s := 2; + s.c := 17; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra.0.svn-base new file mode 100644 index 0000000..0e42821 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra.0.svn-base @@ -0,0 +1,3 @@ +func test(a, b) + return a + 2 + ( 3 * b); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra.call.svn-base new file mode 100644 index 0000000..32ab0ce --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 2 + 2 + (3 * 4)==test(2,4)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra1.0.svn-base new file mode 100644 index 0000000..0825f1b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra1.0.svn-base @@ -0,0 +1,3 @@ +func test(a, b) + return a + b + ( a * b); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra1.call.svn-base new file mode 100644 index 0000000..8ed0c06 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebra1.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 2 + 4 + (2 * 4)==test(2,4)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran1.0.svn-base new file mode 100644 index 0000000..a9391c8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran1.0.svn-base @@ -0,0 +1,3 @@ +func test() + return 1 + 2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran1.call.svn-base new file mode 100644 index 0000000..c9261fc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran1.call.svn-base @@ -0,0 +1,2 @@ +extern long test (); +return ( 3==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran2.0.svn-base new file mode 100644 index 0000000..4eb74e9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran2.0.svn-base @@ -0,0 +1,3 @@ +func test() + return 1 * 2; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran2.call.svn-base new file mode 100644 index 0000000..c537d9b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran2.call.svn-base @@ -0,0 +1,2 @@ +extern long test (); +return ( 2==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran3.0.svn-base new file mode 100644 index 0000000..78ff632 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran3.0.svn-base @@ -0,0 +1,3 @@ +func test() + return 1 * 2 * ( 3 + 4 ); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran3.call.svn-base new file mode 100644 index 0000000..b0dc2a6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran3.call.svn-base @@ -0,0 +1,2 @@ +extern long test (); +return ( 14==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran4.0.svn-base new file mode 100644 index 0000000..22c8cca --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran4.0.svn-base @@ -0,0 +1,3 @@ +func test() + return 1 * 2 * ( 3 + 4 ) * ( 1 + 2 + 3 + ( 2 * 4 )); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran4.call.svn-base new file mode 100644 index 0000000..daca892 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/algebran4.call.svn-base @@ -0,0 +1,2 @@ +extern long test (); +return ( 196==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/blubb1.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/blubb1.svn-base new file mode 100644 index 0000000..f5e4fb4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/blubb1.svn-base @@ -0,0 +1,17 @@ + .text + .globl f + .type f, @function +f: + movq %rdi, %rax + movq 16(%rax), %rax + movq 8(%rax), %rax + movq %rdi, %r11 + movq 8(%r11), %r11 + movq 16(%r11), %r11 + imulq $-3, %r11 + addq %r11, %rax + movq %rdi, %r10 + movq 0(%r10), %r10 + movq 0(%r10), %r10 + addq %r10, %rax + ret diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/blubb2.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/blubb2.svn-base new file mode 100644 index 0000000..66ac020 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/blubb2.svn-base @@ -0,0 +1,17 @@ + .text + .globl f + .type f, @function +f: + movq %rdi, %rax + movq 16(%rax), %rax + movq 8(%rax), %rax + movq %rdi, %r11 + movq 8(%r11), %r11 + movq 16(%r11), %r11 + addq $-3, %r11 + addq %r11, %rax + movq %rdi, %r10 + movq 0(%r10), %r10 + movq 0(%r10), %r10 + addq %r10, %rax + ret diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f1.0.svn-base new file mode 100644 index 0000000..4851858 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f1.0.svn-base @@ -0,0 +1 @@ +func f1(a) if a=0 then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f1.call.svn-base new file mode 100644 index 0000000..a671bc9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f1.call.svn-base @@ -0,0 +1,4 @@ +extern long f1(long a); + +return f1(0)==0 && f1(1)==1 && f1(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f10.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f10.0.svn-base new file mode 100644 index 0000000..eb43918 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f10.0.svn-base @@ -0,0 +1 @@ +func f10(a) if (not (not (not (a=0)))) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f10.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f10.call.svn-base new file mode 100644 index 0000000..368d3b6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f10.call.svn-base @@ -0,0 +1,4 @@ +extern long f10(long a); + +return f10(0)==1 && f10(1)==0 && f10(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f2.0.svn-base new file mode 100644 index 0000000..d5d4e9d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f2.0.svn-base @@ -0,0 +1 @@ +func f2(a) if a=0 or a=1 then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f2.call.svn-base new file mode 100644 index 0000000..84dd655 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f2.call.svn-base @@ -0,0 +1,4 @@ +extern long f2(long a); + +return f2(0)==0 && f2(1)==0 && f2(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f3.0.svn-base new file mode 100644 index 0000000..f555661 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f3.0.svn-base @@ -0,0 +1 @@ +func f3(a) if not (a=0) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f3.call.svn-base new file mode 100644 index 0000000..2c41e97 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f3.call.svn-base @@ -0,0 +1,4 @@ +extern long f3(long a); + +return f3(0)==1 && f3(1)==0 && f3(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f4.0.svn-base new file mode 100644 index 0000000..f938299 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f4.0.svn-base @@ -0,0 +1 @@ +func f4(a) if (a=0) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f4.call.svn-base new file mode 100644 index 0000000..4e50571 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f4.call.svn-base @@ -0,0 +1,4 @@ +extern long f4(long a); + +return f4(0)==0 && f4(1)==1 && f4(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f5.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f5.0.svn-base new file mode 100644 index 0000000..f955fa4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f5.0.svn-base @@ -0,0 +1 @@ +func f5(a) if (a=0 or a=1) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f5.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f5.call.svn-base new file mode 100644 index 0000000..57b065c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f5.call.svn-base @@ -0,0 +1,4 @@ +extern long f5(long a); + +return f5(0)==0 && f5(1)==0 && f5(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f6.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f6.0.svn-base new file mode 100644 index 0000000..1509257 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f6.0.svn-base @@ -0,0 +1 @@ +func f6(a) if (not (a=0)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f6.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f6.call.svn-base new file mode 100644 index 0000000..00f1f0c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f6.call.svn-base @@ -0,0 +1,4 @@ +extern long f6(long a); + +return f6(0)==1 && f6(1)==0 && f6(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f7.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f7.0.svn-base new file mode 100644 index 0000000..9e82cf8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f7.0.svn-base @@ -0,0 +1 @@ +func f7(a) if not (not (a=0)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f7.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f7.call.svn-base new file mode 100644 index 0000000..7e32c70 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f7.call.svn-base @@ -0,0 +1,4 @@ +extern long f7(long a); + +return f7(0)==0 && f7(1)==1 && f7(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f8.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f8.0.svn-base new file mode 100644 index 0000000..0e098b2 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f8.0.svn-base @@ -0,0 +1 @@ +func f8(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f8.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f8.call.svn-base new file mode 100644 index 0000000..32ef9f5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f8.call.svn-base @@ -0,0 +1,4 @@ +extern long f8(long a); + +return f8(0)==0 && f8(1)==0 && f8(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f9.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f9.0.svn-base new file mode 100644 index 0000000..8d582d5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f9.0.svn-base @@ -0,0 +1 @@ +func f9(a) if not ((not (a=0)) or (not (a=1))) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f9.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f9.call.svn-base new file mode 100644 index 0000000..6cd0459 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/f9.call.svn-base @@ -0,0 +1,4 @@ +extern long f9(long a); + +return f9(0)==1 && f9(1)==1 && f9(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib.0.svn-base new file mode 100644 index 0000000..1e1c7c4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib.0.svn-base @@ -0,0 +1,17 @@ +func fib(n) + if 1 >= n then return n; end; + var fib_n := 1; (* fib(n) *) + var fib_n1 := 0; (* fib(n-1) *) + var r := 0; + + while n >= 2 do + (* calculate fib(n+1) *) + r := fib_n + fib_n1; + (* update fib(n-1) and fib(n) *) + fib_n1 := fib_n; + fib_n := r; + n := n + (-1); + end; + return r; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib.call.svn-base new file mode 100644 index 0000000..3ab7260 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib.call.svn-base @@ -0,0 +1,4 @@ +unsigned long fib(unsigned long n); + +return fib(7)+fib(8)==fib(9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib2.0.svn-base new file mode 100644 index 0000000..efc08c7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib2.0.svn-base @@ -0,0 +1,16 @@ + (* fibonacci *) + func fib(x) + if not x >= 2 then + return x; + else + return fib(x+(-1))+fib(x+(-2)); + end; + end; +(* func main() + if not (fib(9)+(-fib(7))) = fib(8) then + return 1; + else + return 0; + end; + end; +*) diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib2.call.svn-base new file mode 100644 index 0000000..3ab7260 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/fib2.call.svn-base @@ -0,0 +1,4 @@ +unsigned long fib(unsigned long n); + +return fib(7)+fib(8)==fib(9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_04.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_04.3.svn-base new file mode 100644 index 0000000..4ff470c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_04.3.svn-base @@ -0,0 +1,2 @@ +(* a2 wird 2 mal definiert *) +struct a1 a2 a2 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_05.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_05.3.svn-base new file mode 100644 index 0000000..ee0fef4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_05.3.svn-base @@ -0,0 +1,3 @@ +(* a2 wird 2 mal definiert *) +struct a1 a2 a3 end; +struct a4 a5 a2 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_06.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_06.3.svn-base new file mode 100644 index 0000000..4c7d201 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_06.3.svn-base @@ -0,0 +1,4 @@ +func bla() +abs.a1 := 100; +ert.a1 := 200; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_07.2.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_07.2.svn-base new file mode 100644 index 0000000..ea4c6dc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_07.2.svn-base @@ -0,0 +1 @@ +123.a1 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_08.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_08.3.svn-base new file mode 100644 index 0000000..e1af2b8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forum_08.3.svn-base @@ -0,0 +1,9 @@ +func f(x, y) + if x = y then + var a := y; + a := x; + end; + + (* zugriff auf a nicht mehr erlaubt *) + a := x; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_04.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_04.3.svn-base new file mode 100644 index 0000000..0ace8af --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_04.3.svn-base @@ -0,0 +1,5 @@ +(* a2 wird 2 mal definiert *) +struct end; +struct a1 a2 a2 end; +struct end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_05.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_05.3.svn-base new file mode 100644 index 0000000..96ba1fc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_05.3.svn-base @@ -0,0 +1,5 @@ +(* a2 wird 2 mal definiert *) +struct end; +struct a1 a2 a3 end; +struct a4 a5 a2 end; +struct end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_06.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_06.3.svn-base new file mode 100644 index 0000000..4c7d201 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_06.3.svn-base @@ -0,0 +1,4 @@ +func bla() +abs.a1 := 100; +ert.a1 := 200; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_07.2.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_07.2.svn-base new file mode 100644 index 0000000..ea4c6dc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_07.2.svn-base @@ -0,0 +1 @@ +123.a1 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_08.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_08.3.svn-base new file mode 100644 index 0000000..518e626 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/forumx_08.3.svn-base @@ -0,0 +1,11 @@ +func f(x, y) + if x = y then + var a := y; + a.t := x; + end; + + (* zugriff auf a nicht mehr erlaubt *) + (* a := x; *) +end; + +struct b end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g1.0.svn-base new file mode 100644 index 0000000..3e1aa7b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g1.0.svn-base @@ -0,0 +1 @@ +func g1(a,b) if (a=0 or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g1.call.svn-base new file mode 100644 index 0000000..4a51316 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g1.call.svn-base @@ -0,0 +1,18 @@ +extern long g1(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g1[2][2]={{1,1},{1,0}}; + +return check_arg2(g1,ret_g1); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g10.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g10.0.svn-base new file mode 100644 index 0000000..c36451f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g10.0.svn-base @@ -0,0 +1 @@ +func g10(a,b) if not (not ((not (a=0)) or b=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g10.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g10.call.svn-base new file mode 100644 index 0000000..4e23018 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g10.call.svn-base @@ -0,0 +1,18 @@ +extern long g10(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g10[2][2]={{1,0},{1,1}}; + +return check_arg2(g10,ret_g10); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g11.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g11.0.svn-base new file mode 100644 index 0000000..e9126ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g11.0.svn-base @@ -0,0 +1 @@ +func g11(a,b) if not (not (a=0 or (not (b=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g11.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g11.call.svn-base new file mode 100644 index 0000000..92174ff --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g11.call.svn-base @@ -0,0 +1,18 @@ +extern long g11(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g11[2][2]={{1,1},{0,1}}; + +return check_arg2(g11,ret_g11); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g12.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g12.0.svn-base new file mode 100644 index 0000000..86e62c6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g12.0.svn-base @@ -0,0 +1 @@ +func g12(a,b) if not (not ((not (a=0)) or (not (b=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g12.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g12.call.svn-base new file mode 100644 index 0000000..bb34e88 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g12.call.svn-base @@ -0,0 +1,18 @@ +extern long g12(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g12[2][2]={{0,1},{1,1}}; + +return check_arg2(g12,ret_g12); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g2.0.svn-base new file mode 100644 index 0000000..5751378 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g2.0.svn-base @@ -0,0 +1 @@ +func g2(a,b) if ((not (a=0)) or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g2.call.svn-base new file mode 100644 index 0000000..186e1ef --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g2.call.svn-base @@ -0,0 +1,18 @@ +extern long g2(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g2[2][2]={{1,0},{1,1}}; + +return check_arg2(g2,ret_g2); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g3.0.svn-base new file mode 100644 index 0000000..39f38e6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g3.0.svn-base @@ -0,0 +1 @@ +func g3(a,b) if (a=0 or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g3.call.svn-base new file mode 100644 index 0000000..42b0114 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g3.call.svn-base @@ -0,0 +1,18 @@ +extern long g3(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g3[2][2]={{1,1},{0,1}}; + +return check_arg2(g3,ret_g3); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g4.0.svn-base new file mode 100644 index 0000000..1903693 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g4.0.svn-base @@ -0,0 +1 @@ +func g4(a,b) if ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g4.call.svn-base new file mode 100644 index 0000000..d8abf9d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g4.call.svn-base @@ -0,0 +1,18 @@ +extern long g4(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g4[2][2]={{0,1},{1,1}}; + +return check_arg2(g4,ret_g4); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g5.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g5.0.svn-base new file mode 100644 index 0000000..1848063 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g5.0.svn-base @@ -0,0 +1 @@ +func g5(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g5.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g5.call.svn-base new file mode 100644 index 0000000..c0d02bd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g5.call.svn-base @@ -0,0 +1,18 @@ +extern long g5(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g5[2][2]={{0,0},{0,1}}; + +return check_arg2(g5,ret_g5); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g6.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g6.0.svn-base new file mode 100644 index 0000000..19a197b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g6.0.svn-base @@ -0,0 +1 @@ +func g6(a,b) if not ((not (a=0)) or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g6.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g6.call.svn-base new file mode 100644 index 0000000..0a0dae8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g6.call.svn-base @@ -0,0 +1,18 @@ +extern long g6(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g6[2][2]={{0,1},{0,0}}; + +return check_arg2(g6,ret_g6); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g7.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g7.0.svn-base new file mode 100644 index 0000000..f926ddc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g7.0.svn-base @@ -0,0 +1 @@ +func g7(a,b) if not (a=0 or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g7.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g7.call.svn-base new file mode 100644 index 0000000..f7a2e29 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g7.call.svn-base @@ -0,0 +1,18 @@ +extern long g7(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g7[2][2]={{0,0},{1,0}}; + +return check_arg2(g7,ret_g7); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g8.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g8.0.svn-base new file mode 100644 index 0000000..0265f42 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g8.0.svn-base @@ -0,0 +1 @@ +func g8(a,b) if not ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g8.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g8.call.svn-base new file mode 100644 index 0000000..c580630 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g8.call.svn-base @@ -0,0 +1,18 @@ +extern long g8(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g8[2][2]={{1,0},{0,0}}; + +return check_arg2(g8,ret_g8); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g9.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g9.0.svn-base new file mode 100644 index 0000000..29290d1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g9.0.svn-base @@ -0,0 +1 @@ +func g9(a,b) if not (not (a=0 or b=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g9.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g9.call.svn-base new file mode 100644 index 0000000..5f4ca1d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/g9.call.svn-base @@ -0,0 +1,18 @@ +extern long g9(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g9[2][2]={{1,1},{1,0}}; + +return check_arg2(g9,ret_g9); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h1.0.svn-base new file mode 100644 index 0000000..daa0824 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h1.0.svn-base @@ -0,0 +1 @@ +func h1(a,b,c,d) if (a=0 or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h1.call.svn-base new file mode 100644 index 0000000..4c7b92e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h1.call.svn-base @@ -0,0 +1,21 @@ +extern long h1(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h1[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + +return check_arg4(h1,ret_h1); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h10.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h10.0.svn-base new file mode 100644 index 0000000..309c891 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h10.0.svn-base @@ -0,0 +1 @@ +func h10(a,b,c,d) if not (((not (a=0)) or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h10.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h10.call.svn-base new file mode 100644 index 0000000..3c4b8be --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h10.call.svn-base @@ -0,0 +1,21 @@ +extern long h10(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h10[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,1}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h10,ret_h10); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h11.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h11.0.svn-base new file mode 100644 index 0000000..428ed7b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h11.0.svn-base @@ -0,0 +1 @@ +func h11(a,b,c,d) if not ((a=0 or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h11.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h11.call.svn-base new file mode 100644 index 0000000..4ef296d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h11.call.svn-base @@ -0,0 +1,21 @@ +extern long h11(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h11[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,1}},{{0,0},{0,0}}}}; + +return check_arg4(h11,ret_h11); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h12.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h12.0.svn-base new file mode 100644 index 0000000..b76853b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h12.0.svn-base @@ -0,0 +1 @@ +func h12(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h12.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h12.call.svn-base new file mode 100644 index 0000000..72c4540 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h12.call.svn-base @@ -0,0 +1,21 @@ +extern long h12(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h12[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,1},{0,0}}}}; + +return check_arg4(h12,ret_h12); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h13.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h13.0.svn-base new file mode 100644 index 0000000..78a4d46 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h13.0.svn-base @@ -0,0 +1 @@ +func h13(a,b,c,d) if not ((a=0 or b=0) or (c=0 or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h13.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h13.call.svn-base new file mode 100644 index 0000000..050e5d9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h13.call.svn-base @@ -0,0 +1,21 @@ +extern long h13(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h13[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{1,0}}}}; + +return check_arg4(h13,ret_h13); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h14.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h14.0.svn-base new file mode 100644 index 0000000..010e6ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h14.0.svn-base @@ -0,0 +1 @@ +func h14(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h14.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h14.call.svn-base new file mode 100644 index 0000000..c050ddf --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h14.call.svn-base @@ -0,0 +1,21 @@ +extern long h14(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h14[2][2][2][2]={{{{0,0},{0,1}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h14,ret_h14); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h15.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h15.0.svn-base new file mode 100644 index 0000000..6fc3e63 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h15.0.svn-base @@ -0,0 +1 @@ +func h15(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h15.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h15.call.svn-base new file mode 100644 index 0000000..b85a6b4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h15.call.svn-base @@ -0,0 +1,21 @@ +extern long h15(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h15[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{1,0},{0,0}}}}; + +return check_arg4(h15,ret_h15); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h16.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h16.0.svn-base new file mode 100644 index 0000000..a286b04 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h16.0.svn-base @@ -0,0 +1 @@ +func h16(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h16.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h16.call.svn-base new file mode 100644 index 0000000..e42a601 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h16.call.svn-base @@ -0,0 +1,21 @@ +extern long h16(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h16[2][2][2][2]={{{{1,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h16,ret_h16); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h17.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h17.0.svn-base new file mode 100644 index 0000000..7c19502 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h17.0.svn-base @@ -0,0 +1 @@ +func h17(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h17.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h17.call.svn-base new file mode 100644 index 0000000..ca17563 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h17.call.svn-base @@ -0,0 +1,21 @@ +extern long h17(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h17[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + +return check_arg4(h17,ret_h17); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h18.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h18.0.svn-base new file mode 100644 index 0000000..399f8f1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h18.0.svn-base @@ -0,0 +1 @@ +func h18(a,b,c,d) if not (not (((not (a=0)) or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h18.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h18.call.svn-base new file mode 100644 index 0000000..70a5084 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h18.call.svn-base @@ -0,0 +1,21 @@ +extern long h18(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h18[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h18,ret_h18); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h19.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h19.0.svn-base new file mode 100644 index 0000000..983d956 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h19.0.svn-base @@ -0,0 +1 @@ +func h19(a,b,c,d) if not (not ((a=0 or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h19.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h19.call.svn-base new file mode 100644 index 0000000..476667c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h19.call.svn-base @@ -0,0 +1,21 @@ +extern long h19(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h19[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + +return check_arg4(h19,ret_h19); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h2.0.svn-base new file mode 100644 index 0000000..640c05c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h2.0.svn-base @@ -0,0 +1 @@ +func h2(a,b,c,d) if ((not (a=0)) or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h2.call.svn-base new file mode 100644 index 0000000..d3795d0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h2.call.svn-base @@ -0,0 +1,21 @@ +extern long h2(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h2[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h2,ret_h2); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h20.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h20.0.svn-base new file mode 100644 index 0000000..a04974b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h20.0.svn-base @@ -0,0 +1 @@ +func h20(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h20.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h20.call.svn-base new file mode 100644 index 0000000..6232c65 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h20.call.svn-base @@ -0,0 +1,21 @@ +extern long h20(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h20[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + +return check_arg4(h20,ret_h20); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h21.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h21.0.svn-base new file mode 100644 index 0000000..ce11b58 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h21.0.svn-base @@ -0,0 +1 @@ +func h21(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h21.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h21.call.svn-base new file mode 100644 index 0000000..30f2d4e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h21.call.svn-base @@ -0,0 +1,21 @@ +extern long h21(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h21[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + +return check_arg4(h21,ret_h21); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h22.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h22.0.svn-base new file mode 100644 index 0000000..2bd2f23 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h22.0.svn-base @@ -0,0 +1 @@ +func h22(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h22.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h22.call.svn-base new file mode 100644 index 0000000..36ce291 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h22.call.svn-base @@ -0,0 +1,21 @@ +extern long h22(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h22[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h22,ret_h22); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h23.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h23.0.svn-base new file mode 100644 index 0000000..6bfbf0f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h23.0.svn-base @@ -0,0 +1 @@ +func h23(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h23.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h23.call.svn-base new file mode 100644 index 0000000..8344b04 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h23.call.svn-base @@ -0,0 +1,21 @@ +extern long h23(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h23[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + +return check_arg4(h23,ret_h23); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h24.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h24.0.svn-base new file mode 100644 index 0000000..957d280 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h24.0.svn-base @@ -0,0 +1 @@ +func h24(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h24.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h24.call.svn-base new file mode 100644 index 0000000..129ee96 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h24.call.svn-base @@ -0,0 +1,21 @@ +extern long h24(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h24[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h24,ret_h24); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h3.0.svn-base new file mode 100644 index 0000000..2e3edd0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h3.0.svn-base @@ -0,0 +1 @@ +func h3(a,b,c,d) if (a=0 or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h3.call.svn-base new file mode 100644 index 0000000..5267fa0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h3.call.svn-base @@ -0,0 +1,21 @@ +extern long h3(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h3[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + +return check_arg4(h3,ret_h3); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h4.0.svn-base new file mode 100644 index 0000000..b157f3f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h4.0.svn-base @@ -0,0 +1 @@ +func h4(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h4.call.svn-base new file mode 100644 index 0000000..84a49ba --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h4.call.svn-base @@ -0,0 +1,21 @@ +extern long h4(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h4[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + +return check_arg4(h4,ret_h4); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h5.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h5.0.svn-base new file mode 100644 index 0000000..3df3a8b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h5.0.svn-base @@ -0,0 +1 @@ +func h5(a,b,c,d) if (a=0 or b=0) or (c=0 or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h5.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h5.call.svn-base new file mode 100644 index 0000000..b2d1b60 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h5.call.svn-base @@ -0,0 +1,21 @@ +extern long h5(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h5[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + +return check_arg4(h5,ret_h5); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h6.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h6.0.svn-base new file mode 100644 index 0000000..ab0cffe --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h6.0.svn-base @@ -0,0 +1 @@ +func h6(a,b,c,d) if ((not (a=0)) or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h6.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h6.call.svn-base new file mode 100644 index 0000000..4b87331 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h6.call.svn-base @@ -0,0 +1,21 @@ +extern long h6(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h6[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h6,ret_h6); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h7.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h7.0.svn-base new file mode 100644 index 0000000..f1670e4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h7.0.svn-base @@ -0,0 +1 @@ +func h7(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h7.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h7.call.svn-base new file mode 100644 index 0000000..f92ed4b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h7.call.svn-base @@ -0,0 +1,21 @@ +extern long h7(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h7[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + +return check_arg4(h7,ret_h7); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h8.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h8.0.svn-base new file mode 100644 index 0000000..341f7d0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h8.0.svn-base @@ -0,0 +1 @@ +func h8(a,b,c,d) if ((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h8.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h8.call.svn-base new file mode 100644 index 0000000..147aa92 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h8.call.svn-base @@ -0,0 +1,21 @@ +extern long h8(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h8[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h8,ret_h8); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h9.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h9.0.svn-base new file mode 100644 index 0000000..ac07344 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h9.0.svn-base @@ -0,0 +1 @@ +func h9(a,b,c,d) if not ((a=0 or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h9.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h9.call.svn-base new file mode 100644 index 0000000..6b6b634 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/h9.call.svn-base @@ -0,0 +1,21 @@ +extern long h9(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h9[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,1}}}}; + +return check_arg4(h9,ret_h9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/local01.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/local01.3.svn-base new file mode 100644 index 0000000..eeaa4b5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/local01.3.svn-base @@ -0,0 +1,7 @@ + +struct a1 a2 a3 end; + +(* ein Name darf nur einmal im Programm als Feldname definiert werden: + * a2, a3 werden hier nochmals definiert *) +struct b1 a2 a3 end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/localx01.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/localx01.3.svn-base new file mode 100644 index 0000000..eeaa4b5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/localx01.3.svn-base @@ -0,0 +1,7 @@ + +struct a1 a2 a3 end; + +(* ein Name darf nur einmal im Programm als Feldname definiert werden: + * a2, a3 werden hier nochmals definiert *) +struct b1 a2 a3 end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro.3.svn-base new file mode 100644 index 0000000..c68d7f6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro.3.svn-base @@ -0,0 +1,14 @@ +struct a1 a2 a1 end; +struct b1 b2 b3 end; + +func f(x,y) + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro01.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro01.3.svn-base new file mode 100644 index 0000000..0cbc8e7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro01.3.svn-base @@ -0,0 +1,5 @@ +func g(x,y) + y:=0; + return y+z; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro02.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro02.3.svn-base new file mode 100644 index 0000000..2087a5f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro02.3.svn-base @@ -0,0 +1,6 @@ +func g(x,y) + y:=0; + z:=5; + return y; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro03.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro03.3.svn-base new file mode 100644 index 0000000..1ae94f6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro03.3.svn-base @@ -0,0 +1,21 @@ +(*no se si esto de verdad deberia de dar erro :) ahora si*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + var e:=5; + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return e; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro04.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro04.3.svn-base new file mode 100644 index 0000000..0263da5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro04.3.svn-base @@ -0,0 +1,24 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro05.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro05.3.svn-base new file mode 100644 index 0000000..c7f99f5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro05.3.svn-base @@ -0,0 +1,28 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + + + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro06.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro06.3.svn-base new file mode 100644 index 0000000..369409e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro06.3.svn-base @@ -0,0 +1,27 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.d2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + + + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro07.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro07.3.svn-base new file mode 100644 index 0000000..c2c1d85 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro07.3.svn-base @@ -0,0 +1,26 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return x; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.c1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro09.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro09.3.svn-base new file mode 100644 index 0000000..cd873c9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro09.3.svn-base @@ -0,0 +1,27 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return x; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + +struct c1 c2 c3 end; +struct b1 b2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro10.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro10.3.svn-base new file mode 100644 index 0000000..aec69c5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro10.3.svn-base @@ -0,0 +1,13 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + d:=x.b2; + + + return d; +end; + + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro11.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro11.3.svn-base new file mode 100644 index 0000000..bebc86e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro11.3.svn-base @@ -0,0 +1,24 @@ +(*esto no deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + d:=x.a2; + + + return d; +end; + + +struct b1 b2 b3 end; + + + + +func f(x,y) + var a:=1; + a:=x.b2; + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro12.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro12.3.svn-base new file mode 100644 index 0000000..2881360 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro12.3.svn-base @@ -0,0 +1,55 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar erro g no esta definida*) + var d:=1; + if d = g then + d:=x.a1; + else + d:=x.a2; + end; + return d; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + var a:=1; + a:=x.f1; + + return a; +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro13.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro13.3.svn-base new file mode 100644 index 0000000..fbe767d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro13.3.svn-base @@ -0,0 +1,56 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar error t no visible*) + var d:=1; + if d = g then + var t:=5; + t:=x.a1; + else + d:=x.a2; + end; + return t; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + var a:=1; + a:=x.f1; + + return a; +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro14.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro14.3.svn-base new file mode 100644 index 0000000..e066ffd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro14.3.svn-base @@ -0,0 +1,62 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar error t no visible*) + var d:=1; + if d = g then + var t:=5; + t:=x.a1; + else + d:=x.a2; + end; + return t; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + + var g:=8; + if d = g then + var t:=5; + t:=x.a1; + else + g:=x.a2; + end; + return g; + +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro15.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro15.3.svn-base new file mode 100644 index 0000000..12ebc35 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro15.3.svn-base @@ -0,0 +1,23 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 a4 end; + +func f(a1,a2) + + var a3:=1; + var a4:=1; + a4:=a2.a2; + return a1; + +(*esto deberia de dar error t no visible*) + if a1 = a3 then + a4:=a1.a1; + else + a4:=a2.a2; + end; + return a4; + + +end; + + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro16.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro16.3.svn-base new file mode 100644 index 0000000..472dcea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/malandro16.3.svn-base @@ -0,0 +1,19 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + + var g:=1; + var d:=1; + if d = g then + var t:=5; + d:=x.a1; + else + t:=x.a2; + end; + return t; + + +end; + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_a.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_a.0.svn-base new file mode 100644 index 0000000..cd57308 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_a.0.svn-base @@ -0,0 +1,3 @@ +func f() + return -2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_a.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_a.call.svn-base new file mode 100644 index 0000000..4b2cd63 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_a.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return ( -2==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_b.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_b.0.svn-base new file mode 100644 index 0000000..8d81d42 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_b.0.svn-base @@ -0,0 +1,5 @@ + +func f() + return 1+2+3+4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_b.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_b.call.svn-base new file mode 100644 index 0000000..02205cd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_b.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return (10==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_c.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_c.0.svn-base new file mode 100644 index 0000000..522ce1b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_c.0.svn-base @@ -0,0 +1,5 @@ + +func f() + return 1+(2*3)+4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_c.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_c.call.svn-base new file mode 100644 index 0000000..97f1369 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_c.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return (11==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_d.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_d.0.svn-base new file mode 100644 index 0000000..a67a076 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_d.0.svn-base @@ -0,0 +1,5 @@ + +func f() + return 1*2*3*4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_d.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_d.call.svn-base new file mode 100644 index 0000000..93a5f48 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_d.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return (24==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_e.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_e.0.svn-base new file mode 100644 index 0000000..76a4e1d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_e.0.svn-base @@ -0,0 +1,4 @@ +func f() + return (1*((-2)+5))+(-1)+(((-2)+2)*17)+3; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_e.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_e.call.svn-base new file mode 100644 index 0000000..5c3992a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_e.call.svn-base @@ -0,0 +1,3 @@ +extern long f(); +return (5==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_f.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_f.0.svn-base new file mode 100644 index 0000000..810ee86 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_f.0.svn-base @@ -0,0 +1,4 @@ +func f(x) + return x; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_f.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_f.call.svn-base new file mode 100644 index 0000000..c1f6158 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_f.call.svn-base @@ -0,0 +1,3 @@ +extern long f(long); +return (5==f((long)5)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_g.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_g.0.svn-base new file mode 100644 index 0000000..4d66d0a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_g.0.svn-base @@ -0,0 +1,4 @@ +func f(x,y) + return x+y; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_g.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_g.call.svn-base new file mode 100644 index 0000000..602cc85 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_g.call.svn-base @@ -0,0 +1,3 @@ +extern long f(long, long); +return (12==f(5,7)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_h.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_h.0.svn-base new file mode 100644 index 0000000..38bc6a7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_h.0.svn-base @@ -0,0 +1,8 @@ +func f(x,y,z) + return x+y+1+z+1; +end; + +func g(z) + return z+3; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_h.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_h.call.svn-base new file mode 100644 index 0000000..6a10bbb --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_h.call.svn-base @@ -0,0 +1,4 @@ +extern long f(long, long, long); +extern long g(long); +return (15==f(5,7,1) && 7==g(4)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_i.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_i.3.svn-base new file mode 100644 index 0000000..b9dc472 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_i.3.svn-base @@ -0,0 +1,8 @@ +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func g(a1) + var x := 5; + return x.a1; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_j.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_j.0.svn-base new file mode 100644 index 0000000..e01b5e7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_j.0.svn-base @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s,s) + return s.a+s.b; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_j.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_j.call.svn-base new file mode 100644 index 0000000..78ed0b0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_j.call.svn-base @@ -0,0 +1,5 @@ +struct S {long a1; long a2; long a3;} s={10,20,30}; +struct T {long a1; long a2; long a3;} t={1,2,3}; +extern long f(long*,long*); + +return ( 3==f((long*)&s, (long*)&t)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_k.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_k.0.svn-base new file mode 100644 index 0000000..45e0e2a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_k.0.svn-base @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s,s,s,s,t,s) + return s.a+s.b+t.c; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_k.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_k.call.svn-base new file mode 100644 index 0000000..a353792 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_k.call.svn-base @@ -0,0 +1,9 @@ +struct A {long a1; long a2; long a3;} a={10,20,30}; +struct B {long a1; long a2; long a3;} b={10,20,30}; +struct C {long a1; long a2; long a3;} c={10,20,30}; +struct D {long a1; long a2; long a3;} d={10,20,30}; +struct E {long a1; long a2; long a3;} e={10,20,30}; +struct T {long a1; long a2; long a3;} t={1,2,3}; +extern long f(long*,long*,long*,long*,long*,long*); + +return ( 33==f((long*)&a, (long*)&b, (long*)&c, (long*)&d, (long*)&e, (long*)&t)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_l.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_l.0.svn-base new file mode 100644 index 0000000..38d9ff1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_l.0.svn-base @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s) + return s.a.a+((-3)*s.b.c)+s.c.b; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_l.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_l.call.svn-base new file mode 100644 index 0000000..7bdddf9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/my_l.call.svn-base @@ -0,0 +1,7 @@ +struct A {long a1; long a2; long a3;} a={1,2,3}; +struct B {long a1; long a2; long a3;} b={10,20,30}; +struct C {long a1; long a2; long a3;} c={100,200,300}; +struct S {long a1; long a2; long a3;} s={(long*)&a,(long*)&b,(long*)&c}; +extern long f(long*); + +return ( 111==f((long*)&s)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm.0.svn-base new file mode 100644 index 0000000..03eda66 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm.0.svn-base @@ -0,0 +1,3 @@ +func test(a) + return -a; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm.call.svn-base new file mode 100644 index 0000000..7726e38 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long); +return (-5==test(5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm1.0.svn-base new file mode 100644 index 0000000..03eda66 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm1.0.svn-base @@ -0,0 +1,3 @@ +func test(a) + return -a; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm1.call.svn-base new file mode 100644 index 0000000..6af387d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/negterm1.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long); +return (5==test(-5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter1.0.svn-base new file mode 100644 index 0000000..98c634a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter1.0.svn-base @@ -0,0 +1,3 @@ +func test(a, b) + return a + b; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter1.call.svn-base new file mode 100644 index 0000000..9b5ae8f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter1.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 34==test(29,5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter2.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter2.0.svn-base new file mode 100644 index 0000000..adb30ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter2.0.svn-base @@ -0,0 +1,3 @@ +func test(a, b, c, d, e, f) + return a + b + c + d + e + f; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter2.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter2.call.svn-base new file mode 100644 index 0000000..d9f04fd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter2.call.svn-base @@ -0,0 +1,2 @@ +extern long test (long,long,long,long,long,long); +return ( 21==test(1,2,3,4,5,6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter3.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter3.0.svn-base new file mode 100644 index 0000000..35bfa51 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter3.0.svn-base @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return s1.a1 + s2.a2 + s3.a3 + s4.a1 + s5.a2 + s6.a3 ; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter3.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter3.call.svn-base new file mode 100644 index 0000000..7609412 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter3.call.svn-base @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( (10+50+90+100+140+180)==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter4.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter4.0.svn-base new file mode 100644 index 0000000..e611e82 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter4.0.svn-base @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return s1.a1 * s2.a2 * s3.a3 * s4.a1 * s5.a2 * s6.a3 ; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter4.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter4.call.svn-base new file mode 100644 index 0000000..beb0013 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter4.call.svn-base @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( (10L*50L*90L*100L*140L*180L)==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter5.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter5.0.svn-base new file mode 100644 index 0000000..6392d8e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter5.0.svn-base @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2) + return s1.a1 * s2.a2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter5.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter5.call.svn-base new file mode 100644 index 0000000..b6c8eaa --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter5.call.svn-base @@ -0,0 +1,7 @@ +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; + +extern long test(long*,long*); + +return ( (10*50)==test((long*)&s1,(long*)&s2)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter6.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter6.0.svn-base new file mode 100644 index 0000000..6c4e304 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter6.0.svn-base @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return (s1.a1 * s2.a2) + ( s3.a3 * s4.a1) +( s5.a2 * s6.a3 ); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter6.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter6.call.svn-base new file mode 100644 index 0000000..300a941 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/parameter6.call.svn-base @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( ((10L*50L)+(90L*100L)+(140L*180L))==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/regfehler.4.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/regfehler.4.svn-base new file mode 100644 index 0000000..ca4f4e9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/regfehler.4.svn-base @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b * ( a + b + ( a * b * (a + b)))))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test1.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test1.3.svn-base new file mode 100644 index 0000000..634a79e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test1.3.svn-base @@ -0,0 +1,19 @@ +struct f1 f2 end; + +func f(p1) + var fx:=p1; + p1:=1; + (* f1 not defined *) + f1:=4; + (* shoult throw one of + - f1 not defined + - field access not allowed (var fx exists) + - field fx not defined + *) + f1.fx:=p1; + p1.f1:=p1.f2; + f(p1,p1.f2).f3:=0AFFEH; + var f1:=3; +end; + +struct f3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test2.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test2.3.svn-base new file mode 100644 index 0000000..eb9e51b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test2.3.svn-base @@ -0,0 +1,10 @@ +func test() + var v1:=1; + if 1=1 then + v1:=2; + var v2:=1; + end; + + (* v2 not visible *) + v2:=3; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test3.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test3.3.svn-base new file mode 100644 index 0000000..5a54492 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test3.3.svn-base @@ -0,0 +1,6 @@ +struct f end; + +func x() + (* f is a field, not a variable *) + f := 4; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test4.2.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test4.2.svn-base new file mode 100644 index 0000000..9c5de0d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/test4.2.svn-base @@ -0,0 +1,8 @@ + +func x() + var z:=3; + (* field feld not defined *) + z.feld:=x(4,5,a); + (* syntax error *) + return z+z*z; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/testscriptx03.3.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/testscriptx03.3.svn-base new file mode 100644 index 0000000..dde46ed --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/testscriptx03.3.svn-base @@ -0,0 +1,19 @@ +func g(x,y,z) + var res:=0; + res:=x; + while y>=0 or (not x=z) do + y:=y+(-1); + res:=res+z; + end; + return res; +end; + +struct end; + +func f() + var off:=10 + (xx * 3); + var bound:= -test.c5; + var add:= g(test.c5) + 2; + return g(off,bound,add); +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefemax.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefemax.0.svn-base new file mode 100644 index 0000000..4e9bb50 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefemax.0.svn-base @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b * ( a + b + ( a * b))))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefemax.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefemax.call.svn-base new file mode 100644 index 0000000..b5d6800 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefemax.call.svn-base @@ -0,0 +1,2 @@ +extern long test(long,long); +return ((3 * 8) + (3 * 8 * ( 3 + 8 + ( 3 * 8 * ( 3 + 8 + ( 3 * 8 ))))) == test(3,8)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen.0.svn-base new file mode 100644 index 0000000..133e82b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen.0.svn-base @@ -0,0 +1,4 @@ + +func test(a,b,c,d,e,f) + return (a * b) + ( c * d) + (e * f ); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen.call.svn-base new file mode 100644 index 0000000..d2b3f14 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen.call.svn-base @@ -0,0 +1,4 @@ + +extern long test(long,long, long, long, long, long); + +return ( ( 1 * 2 ) + (3 * 4) + ( 5 * 6 ) == test(1,2,3,4,5,6)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen1.0.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen1.0.svn-base new file mode 100644 index 0000000..2b56241 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen1.0.svn-base @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen1.call.svn-base b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen1.call.svn-base new file mode 100644 index 0000000..62fba13 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/.svn/text-base/tiefen1.call.svn-base @@ -0,0 +1,4 @@ + +extern long test(long,long); + +return ( ( 3 * 5 ) + ( 3 * 5 * (3 + 5 + ( 3 * 5))) == test(3,5)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_b.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_b.3 new file mode 100644 index 0000000..aa221b6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_b.3 @@ -0,0 +1,6 @@ +func f() + var a := 1; + var b := 2; + + c := 5; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_e.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_e.3 new file mode 100644 index 0000000..130f8db --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_e.3 @@ -0,0 +1,9 @@ +func f(x,y) + var a := 1; + var b := 2; + if a = b then + a := 3; + x := z; + end; + b := x; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_g.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_g.3 new file mode 100644 index 0000000..e9786b8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_g.3 @@ -0,0 +1,9 @@ +struct a b a end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + return g(off,bound,add); +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_h.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_h.3 new file mode 100644 index 0000000..c27e6fb --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_h.3 @@ -0,0 +1,5 @@ +func f() + off := 7; + var off:=5; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_i.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_i.3 new file mode 100644 index 0000000..205e1ab --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_i.3 @@ -0,0 +1,13 @@ +struct a b end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + if (1=1) then + var x :=17; + else + return x; + end; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_j.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_j.3 new file mode 100644 index 0000000..3402eaa --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_j.3 @@ -0,0 +1,12 @@ +struct a b end; + +func f() + var off:=10; + var bound:=5; + var add:=2; + if (1=1) then + var x :=17; + end; + return x; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_k.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_k.3 new file mode 100644 index 0000000..56757a8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/ag_k.3 @@ -0,0 +1,6 @@ +struct a b end; + +func f() + var s := 2; + s.c := 17; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra.0 new file mode 100644 index 0000000..0e42821 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra.0 @@ -0,0 +1,3 @@ +func test(a, b) + return a + 2 + ( 3 * b); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra.call new file mode 100644 index 0000000..32ab0ce --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra.call @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 2 + 2 + (3 * 4)==test(2,4)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra1.0 new file mode 100644 index 0000000..0825f1b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra1.0 @@ -0,0 +1,3 @@ +func test(a, b) + return a + b + ( a * b); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra1.call new file mode 100644 index 0000000..8ed0c06 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebra1.call @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 2 + 4 + (2 * 4)==test(2,4)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran1.0 new file mode 100644 index 0000000..a9391c8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran1.0 @@ -0,0 +1,3 @@ +func test() + return 1 + 2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran1.call new file mode 100644 index 0000000..c9261fc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran1.call @@ -0,0 +1,2 @@ +extern long test (); +return ( 3==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran2.0 new file mode 100644 index 0000000..4eb74e9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran2.0 @@ -0,0 +1,3 @@ +func test() + return 1 * 2; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran2.call new file mode 100644 index 0000000..c537d9b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran2.call @@ -0,0 +1,2 @@ +extern long test (); +return ( 2==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran3.0 new file mode 100644 index 0000000..78ff632 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran3.0 @@ -0,0 +1,3 @@ +func test() + return 1 * 2 * ( 3 + 4 ); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran3.call new file mode 100644 index 0000000..b0dc2a6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran3.call @@ -0,0 +1,2 @@ +extern long test (); +return ( 14==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran4.0 new file mode 100644 index 0000000..22c8cca --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran4.0 @@ -0,0 +1,3 @@ +func test() + return 1 * 2 * ( 3 + 4 ) * ( 1 + 2 + 3 + ( 2 * 4 )); +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran4.call new file mode 100644 index 0000000..daca892 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/algebran4.call @@ -0,0 +1,2 @@ +extern long test (); +return ( 196==test()); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/blubb1 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/blubb1 new file mode 100644 index 0000000..f5e4fb4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/blubb1 @@ -0,0 +1,17 @@ + .text + .globl f + .type f, @function +f: + movq %rdi, %rax + movq 16(%rax), %rax + movq 8(%rax), %rax + movq %rdi, %r11 + movq 8(%r11), %r11 + movq 16(%r11), %r11 + imulq $-3, %r11 + addq %r11, %rax + movq %rdi, %r10 + movq 0(%r10), %r10 + movq 0(%r10), %r10 + addq %r10, %rax + ret diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/blubb2 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/blubb2 new file mode 100644 index 0000000..66ac020 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/blubb2 @@ -0,0 +1,17 @@ + .text + .globl f + .type f, @function +f: + movq %rdi, %rax + movq 16(%rax), %rax + movq 8(%rax), %rax + movq %rdi, %r11 + movq 8(%r11), %r11 + movq 16(%r11), %r11 + addq $-3, %r11 + addq %r11, %rax + movq %rdi, %r10 + movq 0(%r10), %r10 + movq 0(%r10), %r10 + addq %r10, %rax + ret diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f1.0 new file mode 100644 index 0000000..4851858 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f1.0 @@ -0,0 +1 @@ +func f1(a) if a=0 then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f1.call new file mode 100644 index 0000000..a671bc9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f1.call @@ -0,0 +1,4 @@ +extern long f1(long a); + +return f1(0)==0 && f1(1)==1 && f1(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f10.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f10.0 new file mode 100644 index 0000000..eb43918 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f10.0 @@ -0,0 +1 @@ +func f10(a) if (not (not (not (a=0)))) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f10.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f10.call new file mode 100644 index 0000000..368d3b6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f10.call @@ -0,0 +1,4 @@ +extern long f10(long a); + +return f10(0)==1 && f10(1)==0 && f10(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f2.0 new file mode 100644 index 0000000..d5d4e9d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f2.0 @@ -0,0 +1 @@ +func f2(a) if a=0 or a=1 then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f2.call new file mode 100644 index 0000000..84dd655 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f2.call @@ -0,0 +1,4 @@ +extern long f2(long a); + +return f2(0)==0 && f2(1)==0 && f2(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f3.0 new file mode 100644 index 0000000..f555661 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f3.0 @@ -0,0 +1 @@ +func f3(a) if not (a=0) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f3.call new file mode 100644 index 0000000..2c41e97 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f3.call @@ -0,0 +1,4 @@ +extern long f3(long a); + +return f3(0)==1 && f3(1)==0 && f3(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f4.0 new file mode 100644 index 0000000..f938299 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f4.0 @@ -0,0 +1 @@ +func f4(a) if (a=0) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f4.call new file mode 100644 index 0000000..4e50571 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f4.call @@ -0,0 +1,4 @@ +extern long f4(long a); + +return f4(0)==0 && f4(1)==1 && f4(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f5.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f5.0 new file mode 100644 index 0000000..f955fa4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f5.0 @@ -0,0 +1 @@ +func f5(a) if (a=0 or a=1) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f5.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f5.call new file mode 100644 index 0000000..57b065c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f5.call @@ -0,0 +1,4 @@ +extern long f5(long a); + +return f5(0)==0 && f5(1)==0 && f5(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f6.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f6.0 new file mode 100644 index 0000000..1509257 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f6.0 @@ -0,0 +1 @@ +func f6(a) if (not (a=0)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f6.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f6.call new file mode 100644 index 0000000..00f1f0c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f6.call @@ -0,0 +1,4 @@ +extern long f6(long a); + +return f6(0)==1 && f6(1)==0 && f6(2)==0; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f7.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f7.0 new file mode 100644 index 0000000..9e82cf8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f7.0 @@ -0,0 +1 @@ +func f7(a) if not (not (a=0)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f7.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f7.call new file mode 100644 index 0000000..7e32c70 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f7.call @@ -0,0 +1,4 @@ +extern long f7(long a); + +return f7(0)==0 && f7(1)==1 && f7(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f8.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f8.0 new file mode 100644 index 0000000..0e098b2 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f8.0 @@ -0,0 +1 @@ +func f8(a) if not (not (a=0 or a=1)) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f8.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f8.call new file mode 100644 index 0000000..32ef9f5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f8.call @@ -0,0 +1,4 @@ +extern long f8(long a); + +return f8(0)==0 && f8(1)==0 && f8(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f9.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f9.0 new file mode 100644 index 0000000..8d582d5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f9.0 @@ -0,0 +1 @@ +func f9(a) if not ((not (a=0)) or (not (a=1))) then return 0; else return 1; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f9.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f9.call new file mode 100644 index 0000000..6cd0459 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/f9.call @@ -0,0 +1,4 @@ +extern long f9(long a); + +return f9(0)==1 && f9(1)==1 && f9(2)==1; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib.0 new file mode 100644 index 0000000..1e1c7c4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib.0 @@ -0,0 +1,17 @@ +func fib(n) + if 1 >= n then return n; end; + var fib_n := 1; (* fib(n) *) + var fib_n1 := 0; (* fib(n-1) *) + var r := 0; + + while n >= 2 do + (* calculate fib(n+1) *) + r := fib_n + fib_n1; + (* update fib(n-1) and fib(n) *) + fib_n1 := fib_n; + fib_n := r; + n := n + (-1); + end; + return r; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib.call new file mode 100644 index 0000000..3ab7260 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib.call @@ -0,0 +1,4 @@ +unsigned long fib(unsigned long n); + +return fib(7)+fib(8)==fib(9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib2.0 new file mode 100644 index 0000000..efc08c7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib2.0 @@ -0,0 +1,16 @@ + (* fibonacci *) + func fib(x) + if not x >= 2 then + return x; + else + return fib(x+(-1))+fib(x+(-2)); + end; + end; +(* func main() + if not (fib(9)+(-fib(7))) = fib(8) then + return 1; + else + return 0; + end; + end; +*) diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib2.call new file mode 100644 index 0000000..3ab7260 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/fib2.call @@ -0,0 +1,4 @@ +unsigned long fib(unsigned long n); + +return fib(7)+fib(8)==fib(9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_04.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_04.3 new file mode 100644 index 0000000..4ff470c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_04.3 @@ -0,0 +1,2 @@ +(* a2 wird 2 mal definiert *) +struct a1 a2 a2 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_05.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_05.3 new file mode 100644 index 0000000..ee0fef4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_05.3 @@ -0,0 +1,3 @@ +(* a2 wird 2 mal definiert *) +struct a1 a2 a3 end; +struct a4 a5 a2 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_06.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_06.3 new file mode 100644 index 0000000..4c7d201 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_06.3 @@ -0,0 +1,4 @@ +func bla() +abs.a1 := 100; +ert.a1 := 200; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_07.2 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_07.2 new file mode 100644 index 0000000..ea4c6dc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_07.2 @@ -0,0 +1 @@ +123.a1 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_08.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_08.3 new file mode 100644 index 0000000..e1af2b8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forum_08.3 @@ -0,0 +1,9 @@ +func f(x, y) + if x = y then + var a := y; + a := x; + end; + + (* zugriff auf a nicht mehr erlaubt *) + a := x; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_04.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_04.3 new file mode 100644 index 0000000..0ace8af --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_04.3 @@ -0,0 +1,5 @@ +(* a2 wird 2 mal definiert *) +struct end; +struct a1 a2 a2 end; +struct end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_05.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_05.3 new file mode 100644 index 0000000..96ba1fc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_05.3 @@ -0,0 +1,5 @@ +(* a2 wird 2 mal definiert *) +struct end; +struct a1 a2 a3 end; +struct a4 a5 a2 end; +struct end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_06.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_06.3 new file mode 100644 index 0000000..4c7d201 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_06.3 @@ -0,0 +1,4 @@ +func bla() +abs.a1 := 100; +ert.a1 := 200; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_07.2 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_07.2 new file mode 100644 index 0000000..ea4c6dc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_07.2 @@ -0,0 +1 @@ +123.a1 diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_08.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_08.3 new file mode 100644 index 0000000..518e626 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/forumx_08.3 @@ -0,0 +1,11 @@ +func f(x, y) + if x = y then + var a := y; + a.t := x; + end; + + (* zugriff auf a nicht mehr erlaubt *) + (* a := x; *) +end; + +struct b end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g1.0 new file mode 100644 index 0000000..3e1aa7b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g1.0 @@ -0,0 +1 @@ +func g1(a,b) if (a=0 or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g1.call new file mode 100644 index 0000000..4a51316 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g1.call @@ -0,0 +1,18 @@ +extern long g1(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g1[2][2]={{1,1},{1,0}}; + +return check_arg2(g1,ret_g1); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g10.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g10.0 new file mode 100644 index 0000000..c36451f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g10.0 @@ -0,0 +1 @@ +func g10(a,b) if not (not ((not (a=0)) or b=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g10.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g10.call new file mode 100644 index 0000000..4e23018 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g10.call @@ -0,0 +1,18 @@ +extern long g10(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g10[2][2]={{1,0},{1,1}}; + +return check_arg2(g10,ret_g10); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g11.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g11.0 new file mode 100644 index 0000000..e9126ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g11.0 @@ -0,0 +1 @@ +func g11(a,b) if not (not (a=0 or (not (b=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g11.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g11.call new file mode 100644 index 0000000..92174ff --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g11.call @@ -0,0 +1,18 @@ +extern long g11(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g11[2][2]={{1,1},{0,1}}; + +return check_arg2(g11,ret_g11); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g12.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g12.0 new file mode 100644 index 0000000..86e62c6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g12.0 @@ -0,0 +1 @@ +func g12(a,b) if not (not ((not (a=0)) or (not (b=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g12.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g12.call new file mode 100644 index 0000000..bb34e88 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g12.call @@ -0,0 +1,18 @@ +extern long g12(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g12[2][2]={{0,1},{1,1}}; + +return check_arg2(g12,ret_g12); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g2.0 new file mode 100644 index 0000000..5751378 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g2.0 @@ -0,0 +1 @@ +func g2(a,b) if ((not (a=0)) or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g2.call new file mode 100644 index 0000000..186e1ef --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g2.call @@ -0,0 +1,18 @@ +extern long g2(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g2[2][2]={{1,0},{1,1}}; + +return check_arg2(g2,ret_g2); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g3.0 new file mode 100644 index 0000000..39f38e6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g3.0 @@ -0,0 +1 @@ +func g3(a,b) if (a=0 or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g3.call new file mode 100644 index 0000000..42b0114 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g3.call @@ -0,0 +1,18 @@ +extern long g3(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g3[2][2]={{1,1},{0,1}}; + +return check_arg2(g3,ret_g3); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g4.0 new file mode 100644 index 0000000..1903693 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g4.0 @@ -0,0 +1 @@ +func g4(a,b) if ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g4.call new file mode 100644 index 0000000..d8abf9d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g4.call @@ -0,0 +1,18 @@ +extern long g4(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g4[2][2]={{0,1},{1,1}}; + +return check_arg2(g4,ret_g4); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g5.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g5.0 new file mode 100644 index 0000000..1848063 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g5.0 @@ -0,0 +1 @@ +func g5(a,b) if not (a=0 or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g5.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g5.call new file mode 100644 index 0000000..c0d02bd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g5.call @@ -0,0 +1,18 @@ +extern long g5(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g5[2][2]={{0,0},{0,1}}; + +return check_arg2(g5,ret_g5); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g6.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g6.0 new file mode 100644 index 0000000..19a197b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g6.0 @@ -0,0 +1 @@ +func g6(a,b) if not ((not (a=0)) or b=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g6.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g6.call new file mode 100644 index 0000000..0a0dae8 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g6.call @@ -0,0 +1,18 @@ +extern long g6(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g6[2][2]={{0,1},{0,0}}; + +return check_arg2(g6,ret_g6); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g7.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g7.0 new file mode 100644 index 0000000..f926ddc --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g7.0 @@ -0,0 +1 @@ +func g7(a,b) if not (a=0 or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g7.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g7.call new file mode 100644 index 0000000..f7a2e29 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g7.call @@ -0,0 +1,18 @@ +extern long g7(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g7[2][2]={{0,0},{1,0}}; + +return check_arg2(g7,ret_g7); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g8.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g8.0 new file mode 100644 index 0000000..0265f42 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g8.0 @@ -0,0 +1 @@ +func g8(a,b) if not ((not (a=0)) or (not (b=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g8.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g8.call new file mode 100644 index 0000000..c580630 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g8.call @@ -0,0 +1,18 @@ +extern long g8(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g8[2][2]={{1,0},{0,0}}; + +return check_arg2(g8,ret_g8); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g9.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g9.0 new file mode 100644 index 0000000..29290d1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g9.0 @@ -0,0 +1 @@ +func g9(a,b) if not (not (a=0 or b=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g9.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g9.call new file mode 100644 index 0000000..5f4ca1d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/g9.call @@ -0,0 +1,18 @@ +extern long g9(long a, long b); + +int check_arg2(long (*function)(long, long), long blubb[2][2]) { + int ret,a,b; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + ret&=(function(a,b)==blubb[a][b]); + } + } + return ret; +} + +long ret_g9[2][2]={{1,1},{1,0}}; + +return check_arg2(g9,ret_g9); + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h1.0 new file mode 100644 index 0000000..daa0824 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h1.0 @@ -0,0 +1 @@ +func h1(a,b,c,d) if (a=0 or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h1.call new file mode 100644 index 0000000..4c7b92e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h1.call @@ -0,0 +1,21 @@ +extern long h1(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h1[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + +return check_arg4(h1,ret_h1); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h10.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h10.0 new file mode 100644 index 0000000..309c891 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h10.0 @@ -0,0 +1 @@ +func h10(a,b,c,d) if not (((not (a=0)) or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h10.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h10.call new file mode 100644 index 0000000..3c4b8be --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h10.call @@ -0,0 +1,21 @@ +extern long h10(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h10[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,1}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h10,ret_h10); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h11.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h11.0 new file mode 100644 index 0000000..428ed7b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h11.0 @@ -0,0 +1 @@ +func h11(a,b,c,d) if not ((a=0 or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h11.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h11.call new file mode 100644 index 0000000..4ef296d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h11.call @@ -0,0 +1,21 @@ +extern long h11(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h11[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,1}},{{0,0},{0,0}}}}; + +return check_arg4(h11,ret_h11); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h12.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h12.0 new file mode 100644 index 0000000..b76853b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h12.0 @@ -0,0 +1 @@ +func h12(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h12.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h12.call new file mode 100644 index 0000000..72c4540 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h12.call @@ -0,0 +1,21 @@ +extern long h12(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h12[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,1},{0,0}}}}; + +return check_arg4(h12,ret_h12); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h13.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h13.0 new file mode 100644 index 0000000..78a4d46 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h13.0 @@ -0,0 +1 @@ +func h13(a,b,c,d) if not ((a=0 or b=0) or (c=0 or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h13.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h13.call new file mode 100644 index 0000000..050e5d9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h13.call @@ -0,0 +1,21 @@ +extern long h13(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h13[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{1,0}}}}; + +return check_arg4(h13,ret_h13); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h14.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h14.0 new file mode 100644 index 0000000..010e6ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h14.0 @@ -0,0 +1 @@ +func h14(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h14.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h14.call new file mode 100644 index 0000000..c050ddf --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h14.call @@ -0,0 +1,21 @@ +extern long h14(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h14[2][2][2][2]={{{{0,0},{0,1}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h14,ret_h14); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h15.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h15.0 new file mode 100644 index 0000000..6fc3e63 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h15.0 @@ -0,0 +1 @@ +func h15(a,b,c,d) if not ((a=0 or b=0) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h15.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h15.call new file mode 100644 index 0000000..b85a6b4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h15.call @@ -0,0 +1,21 @@ +extern long h15(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h15[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{1,0},{0,0}}}}; + +return check_arg4(h15,ret_h15); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h16.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h16.0 new file mode 100644 index 0000000..a286b04 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h16.0 @@ -0,0 +1 @@ +func h16(a,b,c,d) if not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0)))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h16.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h16.call new file mode 100644 index 0000000..e42a601 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h16.call @@ -0,0 +1,21 @@ +extern long h16(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h16[2][2][2][2]={{{{1,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,0}}}}; + +return check_arg4(h16,ret_h16); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h17.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h17.0 new file mode 100644 index 0000000..7c19502 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h17.0 @@ -0,0 +1 @@ +func h17(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h17.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h17.call new file mode 100644 index 0000000..ca17563 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h17.call @@ -0,0 +1,21 @@ +extern long h17(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h17[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,0}}}}; + +return check_arg4(h17,ret_h17); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h18.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h18.0 new file mode 100644 index 0000000..399f8f1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h18.0 @@ -0,0 +1 @@ +func h18(a,b,c,d) if not (not (((not (a=0)) or b=0) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h18.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h18.call new file mode 100644 index 0000000..70a5084 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h18.call @@ -0,0 +1,21 @@ +extern long h18(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h18[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h18,ret_h18); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h19.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h19.0 new file mode 100644 index 0000000..983d956 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h19.0 @@ -0,0 +1 @@ +func h19(a,b,c,d) if not (not ((a=0 or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h19.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h19.call new file mode 100644 index 0000000..476667c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h19.call @@ -0,0 +1,21 @@ +extern long h19(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h19[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + +return check_arg4(h19,ret_h19); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h2.0 new file mode 100644 index 0000000..640c05c --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h2.0 @@ -0,0 +1 @@ +func h2(a,b,c,d) if ((not (a=0)) or b=0) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h2.call new file mode 100644 index 0000000..d3795d0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h2.call @@ -0,0 +1,21 @@ +extern long h2(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h2[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,0}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h2,ret_h2); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h20.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h20.0 new file mode 100644 index 0000000..a04974b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h20.0 @@ -0,0 +1 @@ +func h20(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h20.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h20.call new file mode 100644 index 0000000..6232c65 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h20.call @@ -0,0 +1,21 @@ +extern long h20(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h20[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + +return check_arg4(h20,ret_h20); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h21.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h21.0 new file mode 100644 index 0000000..ce11b58 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h21.0 @@ -0,0 +1 @@ +func h21(a,b,c,d) if not (not ((a=0 or b=0) or (c=0 or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h21.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h21.call new file mode 100644 index 0000000..30f2d4e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h21.call @@ -0,0 +1,21 @@ +extern long h21(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h21[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + +return check_arg4(h21,ret_h21); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h22.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h22.0 new file mode 100644 index 0000000..2bd2f23 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h22.0 @@ -0,0 +1 @@ +func h22(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or (c=0 or d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h22.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h22.call new file mode 100644 index 0000000..36ce291 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h22.call @@ -0,0 +1,21 @@ +extern long h22(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h22[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h22,ret_h22); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h23.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h23.0 new file mode 100644 index 0000000..6bfbf0f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h23.0 @@ -0,0 +1 @@ +func h23(a,b,c,d) if not (not ((a=0 or b=0) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h23.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h23.call new file mode 100644 index 0000000..8344b04 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h23.call @@ -0,0 +1,21 @@ +extern long h23(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h23[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + +return check_arg4(h23,ret_h23); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h24.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h24.0 new file mode 100644 index 0000000..957d280 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h24.0 @@ -0,0 +1 @@ +func h24(a,b,c,d) if not (not (((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h24.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h24.call new file mode 100644 index 0000000..129ee96 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h24.call @@ -0,0 +1,21 @@ +extern long h24(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h24[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h24,ret_h24); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h3.0 new file mode 100644 index 0000000..2e3edd0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h3.0 @@ -0,0 +1 @@ +func h3(a,b,c,d) if (a=0 or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h3.call new file mode 100644 index 0000000..5267fa0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h3.call @@ -0,0 +1,21 @@ +extern long h3(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h3[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,0}},{{1,1},{1,1}}}}; + +return check_arg4(h3,ret_h3); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h4.0 new file mode 100644 index 0000000..b157f3f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h4.0 @@ -0,0 +1 @@ +func h4(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h4.call new file mode 100644 index 0000000..84a49ba --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h4.call @@ -0,0 +1,21 @@ +extern long h4(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h4[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,0},{1,1}}}}; + +return check_arg4(h4,ret_h4); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h5.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h5.0 new file mode 100644 index 0000000..3df3a8b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h5.0 @@ -0,0 +1 @@ +func h5(a,b,c,d) if (a=0 or b=0) or (c=0 or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h5.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h5.call new file mode 100644 index 0000000..b2d1b60 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h5.call @@ -0,0 +1,21 @@ +extern long h5(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h5[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{0,1}}}}; + +return check_arg4(h5,ret_h5); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h6.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h6.0 new file mode 100644 index 0000000..ab0cffe --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h6.0 @@ -0,0 +1 @@ +func h6(a,b,c,d) if ((not (a=0)) or (not (b=0))) or (c=0 or d=0) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h6.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h6.call new file mode 100644 index 0000000..4b87331 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h6.call @@ -0,0 +1,21 @@ +extern long h6(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h6[2][2][2][2]={{{{1,1},{1,0}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h6,ret_h6); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h7.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h7.0 new file mode 100644 index 0000000..f1670e4 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h7.0 @@ -0,0 +1 @@ +func h7(a,b,c,d) if (a=0 or b=0) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h7.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h7.call new file mode 100644 index 0000000..f92ed4b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h7.call @@ -0,0 +1,21 @@ +extern long h7(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h7[2][2][2][2]={{{{1,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{0,1},{1,1}}}}; + +return check_arg4(h7,ret_h7); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h8.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h8.0 new file mode 100644 index 0000000..341f7d0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h8.0 @@ -0,0 +1 @@ +func h8(a,b,c,d) if ((not (a=0)) or (not (b=0))) or ((not (c=0)) or (not (d=0))) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h8.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h8.call new file mode 100644 index 0000000..147aa92 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h8.call @@ -0,0 +1,21 @@ +extern long h8(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h8[2][2][2][2]={{{{0,1},{1,1}},{{1,1},{1,1}}},{{{1,1},{1,1}},{{1,1},{1,1}}}}; + +return check_arg4(h8,ret_h8); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h9.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h9.0 new file mode 100644 index 0000000..ac07344 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h9.0 @@ -0,0 +1 @@ +func h9(a,b,c,d) if not ((a=0 or b=0) or (c=0 or d=0)) then return 1; else return 0; end; end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h9.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h9.call new file mode 100644 index 0000000..6b6b634 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/h9.call @@ -0,0 +1,21 @@ +extern long h9(long a, long b, long c, long d); + +int check_arg4(long (*function)(long, long, long, long), long blubb[2][2][2][2]) { + int ret,a,b,c,d; + ret=1; + for(a=0;a<2;a++) { + for(b=0;b<2;b++) { + for(c=0;c<2;c++) { + for(d=0;d<2;d++) { + ret&=(function(a,b,c,d)==blubb[a][b][c][d]); + } + } + } + } + return ret; +} + +long ret_h9[2][2][2][2]={{{{0,0},{0,0}},{{0,0},{0,0}}},{{{0,0},{0,0}},{{0,0},{0,1}}}}; + +return check_arg4(h9,ret_h9); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/local01.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/local01.3 new file mode 100644 index 0000000..eeaa4b5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/local01.3 @@ -0,0 +1,7 @@ + +struct a1 a2 a3 end; + +(* ein Name darf nur einmal im Programm als Feldname definiert werden: + * a2, a3 werden hier nochmals definiert *) +struct b1 a2 a3 end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/localx01.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/localx01.3 new file mode 100644 index 0000000..eeaa4b5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/localx01.3 @@ -0,0 +1,7 @@ + +struct a1 a2 a3 end; + +(* ein Name darf nur einmal im Programm als Feldname definiert werden: + * a2, a3 werden hier nochmals definiert *) +struct b1 a2 a3 end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro.3 new file mode 100644 index 0000000..c68d7f6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro.3 @@ -0,0 +1,14 @@ +struct a1 a2 a1 end; +struct b1 b2 b3 end; + +func f(x,y) + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro01.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro01.3 new file mode 100644 index 0000000..0cbc8e7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro01.3 @@ -0,0 +1,5 @@ +func g(x,y) + y:=0; + return y+z; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro02.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro02.3 new file mode 100644 index 0000000..2087a5f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro02.3 @@ -0,0 +1,6 @@ +func g(x,y) + y:=0; + z:=5; + return y; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro03.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro03.3 new file mode 100644 index 0000000..1ae94f6 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro03.3 @@ -0,0 +1,21 @@ +(*no se si esto de verdad deberia de dar erro :) ahora si*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + var e:=5; + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return e; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro04.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro04.3 new file mode 100644 index 0000000..0263da5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro04.3 @@ -0,0 +1,24 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro05.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro05.3 new file mode 100644 index 0000000..c7f99f5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro05.3 @@ -0,0 +1,28 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + + + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro06.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro06.3 new file mode 100644 index 0000000..369409e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro06.3 @@ -0,0 +1,27 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + if x = y then + return a; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.d2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + + + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro07.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro07.3 new file mode 100644 index 0000000..c2c1d85 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro07.3 @@ -0,0 +1,26 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return x; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.c1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + +struct c1 c2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro09.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro09.3 new file mode 100644 index 0000000..cd873c9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro09.3 @@ -0,0 +1,27 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func f(x,y) + if x = y then + return x; + end; + + var a:=0; + var b := (y+8); + var c := y.b2; + if b = c then + a:=x.a1; + else + a:=x.a2; + end; + return a; + var d:=1; + if d = a then + a:=3; + end; + return a; +end; + +struct c1 c2 c3 end; +struct b1 b2 b3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro10.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro10.3 new file mode 100644 index 0000000..aec69c5 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro10.3 @@ -0,0 +1,13 @@ +(*esto si deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + d:=x.b2; + + + return d; +end; + + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro11.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro11.3 new file mode 100644 index 0000000..bebc86e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro11.3 @@ -0,0 +1,24 @@ +(*esto no deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + d:=x.a2; + + + return d; +end; + + +struct b1 b2 b3 end; + + + + +func f(x,y) + var a:=1; + a:=x.b2; + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro12.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro12.3 new file mode 100644 index 0000000..2881360 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro12.3 @@ -0,0 +1,55 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar erro g no esta definida*) + var d:=1; + if d = g then + d:=x.a1; + else + d:=x.a2; + end; + return d; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + var a:=1; + a:=x.f1; + + return a; +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro13.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro13.3 new file mode 100644 index 0000000..fbe767d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro13.3 @@ -0,0 +1,56 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar error t no visible*) + var d:=1; + if d = g then + var t:=5; + t:=x.a1; + else + d:=x.a2; + end; + return t; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + var a:=1; + a:=x.f1; + + return a; +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro14.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro14.3 new file mode 100644 index 0000000..e066ffd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro14.3 @@ -0,0 +1,62 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + var d:=1; + + var c:=1; + d:=x.a2; + return d; + +(*esto deberia de dar error t no visible*) + var d:=1; + if d = g then + var t:=5; + t:=x.a1; + else + d:=x.a2; + end; + return t; + + +end; + + +struct b1 b2 b3 end; + +(*un comentario*) + + +func f(x,y) + + var g:=8; + if d = g then + var t:=5; + t:=x.a1; + else + g:=x.a2; + end; + return g; + +end; + +struct c1 c2 c3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + +struct f1 f2 d3 end; + +func f(z) + var d:=1; + d:=z.b2; + + + return d; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro15.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro15.3 new file mode 100644 index 0000000..12ebc35 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro15.3 @@ -0,0 +1,23 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 a4 end; + +func f(a1,a2) + + var a3:=1; + var a4:=1; + a4:=a2.a2; + return a1; + +(*esto deberia de dar error t no visible*) + if a1 = a3 then + a4:=a1.a1; + else + a4:=a2.a2; + end; + return a4; + + +end; + + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro16.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro16.3 new file mode 100644 index 0000000..472dcea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/malandro16.3 @@ -0,0 +1,19 @@ +(*esto deberia de dar erro*) +struct a1 a2 a3 end; + +func f(x,y) + + var g:=1; + var d:=1; + if d = g then + var t:=5; + d:=x.a1; + else + t:=x.a2; + end; + return t; + + +end; + + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_a.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_a.0 new file mode 100644 index 0000000..cd57308 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_a.0 @@ -0,0 +1,3 @@ +func f() + return -2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_a.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_a.call new file mode 100644 index 0000000..4b2cd63 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_a.call @@ -0,0 +1,3 @@ +extern long f(); +return ( -2==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_b.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_b.0 new file mode 100644 index 0000000..8d81d42 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_b.0 @@ -0,0 +1,5 @@ + +func f() + return 1+2+3+4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_b.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_b.call new file mode 100644 index 0000000..02205cd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_b.call @@ -0,0 +1,3 @@ +extern long f(); +return (10==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_c.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_c.0 new file mode 100644 index 0000000..522ce1b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_c.0 @@ -0,0 +1,5 @@ + +func f() + return 1+(2*3)+4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_c.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_c.call new file mode 100644 index 0000000..97f1369 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_c.call @@ -0,0 +1,3 @@ +extern long f(); +return (11==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_d.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_d.0 new file mode 100644 index 0000000..a67a076 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_d.0 @@ -0,0 +1,5 @@ + +func f() + return 1*2*3*4; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_d.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_d.call new file mode 100644 index 0000000..93a5f48 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_d.call @@ -0,0 +1,3 @@ +extern long f(); +return (24==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_e.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_e.0 new file mode 100644 index 0000000..76a4e1d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_e.0 @@ -0,0 +1,4 @@ +func f() + return (1*((-2)+5))+(-1)+(((-2)+2)*17)+3; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_e.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_e.call new file mode 100644 index 0000000..5c3992a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_e.call @@ -0,0 +1,3 @@ +extern long f(); +return (5==f()); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_f.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_f.0 new file mode 100644 index 0000000..810ee86 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_f.0 @@ -0,0 +1,4 @@ +func f(x) + return x; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_f.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_f.call new file mode 100644 index 0000000..c1f6158 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_f.call @@ -0,0 +1,3 @@ +extern long f(long); +return (5==f((long)5)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_g.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_g.0 new file mode 100644 index 0000000..4d66d0a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_g.0 @@ -0,0 +1,4 @@ +func f(x,y) + return x+y; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_g.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_g.call new file mode 100644 index 0000000..602cc85 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_g.call @@ -0,0 +1,3 @@ +extern long f(long, long); +return (12==f(5,7)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_h.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_h.0 new file mode 100644 index 0000000..38bc6a7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_h.0 @@ -0,0 +1,8 @@ +func f(x,y,z) + return x+y+1+z+1; +end; + +func g(z) + return z+3; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_h.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_h.call new file mode 100644 index 0000000..6a10bbb --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_h.call @@ -0,0 +1,4 @@ +extern long f(long, long, long); +extern long g(long); +return (15==f(5,7,1) && 7==g(4)); + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_i.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_i.3 new file mode 100644 index 0000000..b9dc472 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_i.3 @@ -0,0 +1,8 @@ +struct a1 a2 a3 end; +struct b1 b2 b3 end; + +func g(a1) + var x := 5; + return x.a1; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_j.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_j.0 new file mode 100644 index 0000000..e01b5e7 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_j.0 @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s,s) + return s.a+s.b; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_j.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_j.call new file mode 100644 index 0000000..78ed0b0 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_j.call @@ -0,0 +1,5 @@ +struct S {long a1; long a2; long a3;} s={10,20,30}; +struct T {long a1; long a2; long a3;} t={1,2,3}; +extern long f(long*,long*); + +return ( 3==f((long*)&s, (long*)&t)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_k.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_k.0 new file mode 100644 index 0000000..45e0e2a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_k.0 @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s,s,s,s,t,s) + return s.a+s.b+t.c; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_k.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_k.call new file mode 100644 index 0000000..a353792 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_k.call @@ -0,0 +1,9 @@ +struct A {long a1; long a2; long a3;} a={10,20,30}; +struct B {long a1; long a2; long a3;} b={10,20,30}; +struct C {long a1; long a2; long a3;} c={10,20,30}; +struct D {long a1; long a2; long a3;} d={10,20,30}; +struct E {long a1; long a2; long a3;} e={10,20,30}; +struct T {long a1; long a2; long a3;} t={1,2,3}; +extern long f(long*,long*,long*,long*,long*,long*); + +return ( 33==f((long*)&a, (long*)&b, (long*)&c, (long*)&d, (long*)&e, (long*)&t)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_l.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_l.0 new file mode 100644 index 0000000..38d9ff1 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_l.0 @@ -0,0 +1,6 @@ +struct a b c end; + +func f(s) + return s.a.a+((-3)*s.b.c)+s.c.b; +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_l.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_l.call new file mode 100644 index 0000000..7bdddf9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/my_l.call @@ -0,0 +1,7 @@ +struct A {long a1; long a2; long a3;} a={1,2,3}; +struct B {long a1; long a2; long a3;} b={10,20,30}; +struct C {long a1; long a2; long a3;} c={100,200,300}; +struct S {long a1; long a2; long a3;} s={(long*)&a,(long*)&b,(long*)&c}; +extern long f(long*); + +return ( 111==f((long*)&s)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm.0 new file mode 100644 index 0000000..03eda66 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm.0 @@ -0,0 +1,3 @@ +func test(a) + return -a; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm.call new file mode 100644 index 0000000..7726e38 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm.call @@ -0,0 +1,2 @@ +extern long test (long); +return (-5==test(5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm1.0 new file mode 100644 index 0000000..03eda66 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm1.0 @@ -0,0 +1,3 @@ +func test(a) + return -a; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm1.call new file mode 100644 index 0000000..6af387d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/negterm1.call @@ -0,0 +1,2 @@ +extern long test (long); +return (5==test(-5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter1.0 new file mode 100644 index 0000000..98c634a --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter1.0 @@ -0,0 +1,3 @@ +func test(a, b) + return a + b; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter1.call new file mode 100644 index 0000000..9b5ae8f --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter1.call @@ -0,0 +1,2 @@ +extern long test (long,long); +return ( 34==test(29,5)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter2.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter2.0 new file mode 100644 index 0000000..adb30ea --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter2.0 @@ -0,0 +1,3 @@ +func test(a, b, c, d, e, f) + return a + b + c + d + e + f; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter2.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter2.call new file mode 100644 index 0000000..d9f04fd --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter2.call @@ -0,0 +1,2 @@ +extern long test (long,long,long,long,long,long); +return ( 21==test(1,2,3,4,5,6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter3.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter3.0 new file mode 100644 index 0000000..35bfa51 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter3.0 @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return s1.a1 + s2.a2 + s3.a3 + s4.a1 + s5.a2 + s6.a3 ; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter3.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter3.call new file mode 100644 index 0000000..7609412 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter3.call @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( (10+50+90+100+140+180)==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter4.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter4.0 new file mode 100644 index 0000000..e611e82 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter4.0 @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return s1.a1 * s2.a2 * s3.a3 * s4.a1 * s5.a2 * s6.a3 ; +end; \ No newline at end of file diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter4.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter4.call new file mode 100644 index 0000000..beb0013 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter4.call @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( (10L*50L*90L*100L*140L*180L)==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter5.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter5.0 new file mode 100644 index 0000000..6392d8e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter5.0 @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2) + return s1.a1 * s2.a2; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter5.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter5.call new file mode 100644 index 0000000..b6c8eaa --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter5.call @@ -0,0 +1,7 @@ +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; + +extern long test(long*,long*); + +return ( (10*50)==test((long*)&s1,(long*)&s2)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter6.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter6.0 new file mode 100644 index 0000000..6c4e304 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter6.0 @@ -0,0 +1,5 @@ +struct a1 a2 a3 end; + +func test(s1,s2,s3,s4,s5,s6) + return (s1.a1 * s2.a2) + ( s3.a3 * s4.a1) +( s5.a2 * s6.a3 ); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter6.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter6.call new file mode 100644 index 0000000..300a941 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/parameter6.call @@ -0,0 +1,12 @@ + +typedef struct S {long a1; long a2; long a3;} S_t; +S_t s1 ={10,20,30}; +S_t s2 ={40,50,60}; +S_t s3 ={70,80,90}; +S_t s4 ={100,110,120}; +S_t s5 ={130,140,150}; +S_t s6 ={160,170,180}; + +extern long test(long*,long*, long*, long*, long*, long*); + +return ( ((10L*50L)+(90L*100L)+(140L*180L))==test((long*)&s1,(long*)&s2,(long*)&s3,(long*)&s4,(long*)&s5,(long*)&s6)); diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/regfehler.4 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/regfehler.4 new file mode 100644 index 0000000..ca4f4e9 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/regfehler.4 @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b * ( a + b + ( a * b * (a + b)))))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test1.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test1.3 new file mode 100644 index 0000000..634a79e --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test1.3 @@ -0,0 +1,19 @@ +struct f1 f2 end; + +func f(p1) + var fx:=p1; + p1:=1; + (* f1 not defined *) + f1:=4; + (* shoult throw one of + - f1 not defined + - field access not allowed (var fx exists) + - field fx not defined + *) + f1.fx:=p1; + p1.f1:=p1.f2; + f(p1,p1.f2).f3:=0AFFEH; + var f1:=3; +end; + +struct f3 end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test2.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test2.3 new file mode 100644 index 0000000..eb9e51b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test2.3 @@ -0,0 +1,10 @@ +func test() + var v1:=1; + if 1=1 then + v1:=2; + var v2:=1; + end; + + (* v2 not visible *) + v2:=3; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test3.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test3.3 new file mode 100644 index 0000000..5a54492 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test3.3 @@ -0,0 +1,6 @@ +struct f end; + +func x() + (* f is a field, not a variable *) + f := 4; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test4.2 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test4.2 new file mode 100644 index 0000000..9c5de0d --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/test4.2 @@ -0,0 +1,8 @@ + +func x() + var z:=3; + (* field feld not defined *) + z.feld:=x(4,5,a); + (* syntax error *) + return z+z*z; +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/testscriptx03.3 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/testscriptx03.3 new file mode 100644 index 0000000..dde46ed --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/testscriptx03.3 @@ -0,0 +1,19 @@ +func g(x,y,z) + var res:=0; + res:=x; + while y>=0 or (not x=z) do + y:=y+(-1); + res:=res+z; + end; + return res; +end; + +struct end; + +func f() + var off:=10 + (xx * 3); + var bound:= -test.c5; + var add:= g(test.c5) + 2; + return g(off,bound,add); +end; + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefemax.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefemax.0 new file mode 100644 index 0000000..4e9bb50 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefemax.0 @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b * ( a + b + ( a * b))))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefemax.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefemax.call new file mode 100644 index 0000000..b5d6800 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefemax.call @@ -0,0 +1,2 @@ +extern long test(long,long); +return ((3 * 8) + (3 * 8 * ( 3 + 8 + ( 3 * 8 * ( 3 + 8 + ( 3 * 8 ))))) == test(3,8)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen.0 new file mode 100644 index 0000000..133e82b --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen.0 @@ -0,0 +1,4 @@ + +func test(a,b,c,d,e,f) + return (a * b) + ( c * d) + (e * f ); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen.call new file mode 100644 index 0000000..d2b3f14 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen.call @@ -0,0 +1,4 @@ + +extern long test(long,long, long, long, long, long); + +return ( ( 1 * 2 ) + (3 * 4) + ( 5 * 6 ) == test(1,2,3,4,5,6)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen1.0 b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen1.0 new file mode 100644 index 0000000..2b56241 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen1.0 @@ -0,0 +1,4 @@ + +func test(a,b) + return (a * b) + ( a * b * ( a + b + ( a * b))); +end; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen1.call b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen1.call new file mode 100644 index 0000000..62fba13 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/testcases/tiefen1.call @@ -0,0 +1,4 @@ + +extern long test(long,long); + +return ( ( 3 * 5 ) + ( 3 * 5 * (3 + 5 + ( 3 * 5))) == test(3,5)) ; diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/tree.c b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/tree.c new file mode 100755 index 0000000..c3e0a44 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/tree.c @@ -0,0 +1,157 @@ +#include +#include + +#include "tree.h" +#include "code_gen.h" + +/* new_node: create "standard node" with one or two children and + * given operation + */ +treenode *new_node(int op, treenode *left, treenode *right) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_node_value: create "standard node" with one or two children and + * given operation and the given value + */ +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_node: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=(char *)NULL; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_leaf: create leaf - node with no children */ +treenode *new_leaf(int op) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_leaf: %i (%s)\n",op,rule_names[op]); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=(char *)NULL; + + return new; +} + +/* new_named_leaf: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf(int op, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + + return new; +} + +/* new_named_leaf_value: create leaf with name (used for identifier or + * value of number) + */ +treenode *new_named_leaf_value(int op, char *name, long value, int param) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_leaf_value: %i (%s), %s, %li\n",op,rule_names[op],name,value); +#endif + + new->kids[0]=(treenode *)NULL; + new->kids[1]=(treenode *)NULL; + new->op=op; + new->name=name; + new->value=value; + new->param_index=param; + + return new; +} + +/* new_named_node: create node with one or two children and a name (can be + * used for storing a procedure's name) + */ +treenode *new_named_node(int op, treenode *left, treenode *right, char *name) { + treenode *new=(treenode *)malloc(sizeof(treenode)); + +#ifdef DEBUG + printf("new_named_node: %i (%s), %s\n",op,rule_names[op],name); +#endif + + new->kids[0]=left; + new->kids[1]=right; + new->op=op; + new->name=name; + + return new; +} + +void write_indent(int indent) { + int a; + for(a=0;aop],node->name,node->reg); + if(node->kids[0]!=(treenode *)NULL || node->kids[1]!=(treenode *)NULL) { + if(node->kids[0]!=(treenode *)NULL) { + write_tree(node->kids[0], indent+1); + } + if(node->kids[1]!=(treenode *)NULL) { + write_tree(node->kids[1], indent+1); + } + } +} + +treenode *new_number_leaf(long value) { + treenode *node; + + if(value==0) { + node=new_leaf(OP_Zero); + } + else if(value==1) { + node=new_leaf(OP_One); + } + else { + node=new_leaf(OP_Number); + } + + node->value=value; + + return node; +} + diff --git a/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/tree.h b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/tree.h new file mode 100755 index 0000000..7ac2789 --- /dev/null +++ b/aus_sammelwut/paulchen/ublu/ss08/abgabe/gesamt/tree.h @@ -0,0 +1,98 @@ +#ifndef __TREE_H_ +#define __TREE_H_ + +#ifndef CODE +typedef struct burm_state *STATEPTR_TYPE; +#endif + +enum { + OP_Not=1, + OP_Negation, + OP_Addition, + OP_Multiplication, + OP_Disjunction, + OP_Greater, + OP_Equal, + OP_ID, + OP_Number, + OP_Field, + OP_Return, + OP_Zero, + OP_One, + OP_Exprs, + OP_Call, + OP_Assign, + OP_If, + OP_Stats, + OP_Empty, + OP_Ifstats, + OP_While, + OP_CallNoParam, + OP_Arg +}; + +static char rule_names[100][100]={ + "", + "OP_Not", + "OP_Negation", + "OP_Addition", + "OP_Multiplication", + "OP_Disjunction", + "OP_Greater", + "OP_Equal", + "OP_ID", + "OP_Number", + "OP_Field", + "OP_Return", + "OP_Zero", + "OP_One", + "OP_Exprs", + "OP_Call", + "OP_Assign", + "OP_If", + "OP_Stats", + "OP_Empty", + "OP_Ifstats", + "OP_While", + "OP_CallNoParam", + "OP_Arg" +}; + + +/* struct for the tree build by ox for iburg */ +typedef struct treenode { + int op; + struct treenode *kids[2]; + STATEPTR_TYPE label; + char *name; + long value; + char *reg; + struct treenode *parent; + int skip_reg; + int param_index; /* -1 if not a parameter */ +} treenode; + +typedef treenode *treenodep; + +/* macros for iburg being able to traverse the tree */ +#define NODEPTR_TYPE treenodep +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->label) +#define PANIC printf + +/* see tree.c for description about these procedures */ +treenode *new_node(int op, treenode *left, treenode *right); +treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param); +treenode *new_leaf(int op); +treenode *new_number_leaf(long value); +treenode *new_named_leaf(int op, char *name); +treenode *new_named_leaf_value(int op, char *name, long value, int param); +treenode *new_named_node(int op, treenode *left, treenode *right, char *name); + +void write_indent(int indent); +void write_tree(treenode *node, int indent); + +#endif /* __TREE_H */ + -- 2.25.1