From 67176f1520d8ac68a00b5266092fcd31a82f4bd8 Mon Sep 17 00:00:00 2001 From: aarne Date: Mon, 22 Nov 2010 15:48:52 +0000 Subject: completed book examples --- book/examples/chapter8/GeometryEng.gf | 2 +- book/examples/chapter8/Graftal.gf | 7 +++++++ book/examples/chapter8/Sierpinski.gf | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 book/examples/chapter8/Graftal.gf create mode 100644 book/examples/chapter8/Sierpinski.gf (limited to 'book/examples/chapter8') diff --git a/book/examples/chapter8/GeometryEng.gf b/book/examples/chapter8/GeometryEng.gf index 36d840303..e2e22776e 100644 --- a/book/examples/chapter8/GeometryEng.gf +++ b/book/examples/chapter8/GeometryEng.gf @@ -1,4 +1,4 @@ ---# -path=alltenses +--# -path=.:present concrete GeometryEng of Geometry = LogicEng ** open SyntaxEng, ParadigmsEng in { diff --git a/book/examples/chapter8/Graftal.gf b/book/examples/chapter8/Graftal.gf new file mode 100644 index 000000000..e85b9b2f7 --- /dev/null +++ b/book/examples/chapter8/Graftal.gf @@ -0,0 +1,7 @@ +-- (c) Krasimir Angelov 2009 +abstract Graftal = { + cat N; S; + fun z : N ; + s : N -> N ; + c : N -> S ; + } diff --git a/book/examples/chapter8/Sierpinski.gf b/book/examples/chapter8/Sierpinski.gf new file mode 100644 index 000000000..722088ce5 --- /dev/null +++ b/book/examples/chapter8/Sierpinski.gf @@ -0,0 +1,16 @@ +concrete Sierpinski of Graftal = { + lincat N = {a : Str; b : Str} ; + lincat S = {s : Str} ; + + lin z = {a = A; b = B} ; + lin s x = { + a = x.b ++ R ++ x.a ++ R ++ x.b ; + b = x.a ++ L ++ x.b ++ L ++ x.a + } ; + lin c x = {s = "newpath 300 550 moveto" ++ x.a ++ "stroke showpage"} ; + + oper A : Str = "0 2 rlineto" ; + oper B : Str = "0 2 rlineto" ; + oper L : Str = "+60 rotate" ; + oper R : Str = "-60 rotate" ; +} -- cgit v1.2.3