From 967be9e750221ab2ab783f95df79bb26d290a45e Mon Sep 17 00:00:00 2001 From: Martial Simon Date: Mon, 15 Sep 2025 01:07:58 +0200 Subject: add: added projects --- tiger-compiler/tests/object/good/funny.tig | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tiger-compiler/tests/object/good/funny.tig (limited to 'tiger-compiler/tests/object/good/funny.tig') diff --git a/tiger-compiler/tests/object/good/funny.tig b/tiger-compiler/tests/object/good/funny.tig new file mode 100644 index 0000000..b43e82b --- /dev/null +++ b/tiger-compiler/tests/object/good/funny.tig @@ -0,0 +1,29 @@ +let + class Exp + { + var id : int := 0 + method id_get() : int = self.id + method accept(v : Visitor) = () + } + class AssignExp extends Exp + { + var expression : string := "var foo := bar" + method get_expression() : string = self.expression + method set_expression(new_expr : string) = (self.expression = new_expr; ()) + } + class Visitor + { + method visit(e : Exp) = print_int(e.id_get()) + } + class PrintVisitor extends Visitor + { + method visit(e : AssignExp) = print(e.get_expression()) + } + + var exp := new AssignExp + var visitor := new PrintVisitor +in + exp.accept(visitor); + exp.set_expression("var bar := foo"); + exp.accept(visitor) +end \ No newline at end of file -- cgit v1.2.3