summaryrefslogtreecommitdiff
path: root/gf-book/examples/chapter7
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2011-01-11 15:46:43 +0000
committeraarne <aarne@chalmers.se>2011-01-11 15:46:43 +0000
commite7439d65b0e153434d3acc07df6e2a0972ee79ca (patch)
tree36716eec18256eeb600b4a552d9cc80f8ad7f16f /gf-book/examples/chapter7
parent276327f7f264e770478a6d8c6e683266505b0a55 (diff)
gf-book web page index and toc
Diffstat (limited to 'gf-book/examples/chapter7')
-rw-r--r--gf-book/examples/chapter7/Map.gf10
-rw-r--r--gf-book/examples/chapter7/MapEng.gf17
-rw-r--r--gf-book/examples/chapter7/Query.gf12
-rw-r--r--gf-book/examples/chapter7/QueryEng.gf13
-rw-r--r--gf-book/examples/chapter7/QueryFin.gf13
5 files changed, 65 insertions, 0 deletions
diff --git a/gf-book/examples/chapter7/Map.gf b/gf-book/examples/chapter7/Map.gf
new file mode 100644
index 000000000..52deebb87
--- /dev/null
+++ b/gf-book/examples/chapter7/Map.gf
@@ -0,0 +1,10 @@
+abstract Map = {
+flags startcat = Query ;
+cat
+ Query ; Input ; Place ; Click ;
+fun
+ GoFromTo : Place -> Place -> Input ;
+ ThisPlace : Click -> Place ;
+ QueryInput : Input -> Query ;
+ ClickCoord : Int -> Int -> Click ;
+}
diff --git a/gf-book/examples/chapter7/MapEng.gf b/gf-book/examples/chapter7/MapEng.gf
new file mode 100644
index 000000000..fee0b502c
--- /dev/null
+++ b/gf-book/examples/chapter7/MapEng.gf
@@ -0,0 +1,17 @@
+concrete MapEng of Map = {
+lincat
+ Query = {s : Str} ;
+ Input, Place = {s : Str ; p : Str} ;
+ Click = {p : Str} ;
+lin
+ GoFromTo x y = {
+ s = "I want to go from" ++ x.s ++ "to" ++ y.s ;
+ p = x.p ++ y.p
+ } ;
+ ThisPlace c = {
+ s = "this place" ;
+ p = c.p
+ } ;
+ QueryInput i = {s = i.s ++ ";" ++ i.p} ;
+ ClickCoord x y = {p = "(" ++ x.s ++ "," ++ y.s ++ ")"} ;
+}
diff --git a/gf-book/examples/chapter7/Query.gf b/gf-book/examples/chapter7/Query.gf
new file mode 100644
index 000000000..b6f83e357
--- /dev/null
+++ b/gf-book/examples/chapter7/Query.gf
@@ -0,0 +1,12 @@
+abstract Query = {
+ flags startcat=Question ;
+ cat
+ Answer ; Question ; Object ;
+ fun
+ Even : Object -> Question ;
+ Odd : Object -> Question ;
+ Prime : Object -> Question ;
+ Number : Int -> Object ;
+ Yes : Answer ;
+ No : Answer ;
+}
diff --git a/gf-book/examples/chapter7/QueryEng.gf b/gf-book/examples/chapter7/QueryEng.gf
new file mode 100644
index 000000000..cc14d5eb7
--- /dev/null
+++ b/gf-book/examples/chapter7/QueryEng.gf
@@ -0,0 +1,13 @@
+concrete QueryEng of Query = {
+ lincat
+ Answer, Question, Object = Str ;
+ lin
+ Even = pred "even" ;
+ Odd = pred "odd" ;
+ Prime = pred "prime" ;
+ Number i = i.s ;
+ Yes = "yes" ;
+ No = "no" ;
+ oper
+ pred : Str -> Str -> Str = \f,x -> "is" ++ x ++ f ;
+}
diff --git a/gf-book/examples/chapter7/QueryFin.gf b/gf-book/examples/chapter7/QueryFin.gf
new file mode 100644
index 000000000..b3461e34a
--- /dev/null
+++ b/gf-book/examples/chapter7/QueryFin.gf
@@ -0,0 +1,13 @@
+concrete QueryFin of Query = {
+ lincat
+ Answer, Question, Object = Str ;
+ lin
+ Even = pred "parillinen" ;
+ Odd = pred "pariton" ;
+ Prime = pred "alkuluku" ;
+ Number i = i.s ;
+ Yes = "kyllä" ;
+ No = "ei" ;
+ oper
+ pred : Str -> Str -> Str = \f,x -> "onko" ++ x ++ f ;
+}