summaryrefslogtreecommitdiff
path: root/examples/query/Database.gf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-04-21 09:14:05 +0000
committeraarne <aarne@cs.chalmers.se>2006-04-21 09:14:05 +0000
commit026857614235f6a81858b60e2e7c4d5d14d001d5 (patch)
treeb9aaaa8c4ee2f63e3285701727f54587cc87bd9a /examples/query/Database.gf
parent028561ac2a5a94d3f4058bd2a4e6630c20b4a7cc (diff)
embedded haskelle example: query
Diffstat (limited to 'examples/query/Database.gf')
-rw-r--r--examples/query/Database.gf45
1 files changed, 45 insertions, 0 deletions
diff --git a/examples/query/Database.gf b/examples/query/Database.gf
new file mode 100644
index 000000000..2385b8670
--- /dev/null
+++ b/examples/query/Database.gf
@@ -0,0 +1,45 @@
+-- abstract syntax of a small arithmetic query language
+
+abstract Database = {
+
+cat
+ Query ; S ; Q ; NP ; CN ; PN ; A1 ; A2 ;
+
+fun
+ QueryS : S -> Query ;
+ QueryQ : Q -> Query ;
+
+ PredA1 : NP -> A1 -> S ;
+
+ WhichA1 : CN -> A1 -> Q ;
+ WhichA2 : CN -> NP -> A2 -> Q ;
+
+ ComplA2 : A2 -> NP -> A1 ;
+ UseInt : Int -> NP ;
+
+ Every : CN -> NP ;
+ Some : CN -> NP ;
+
+-- lexicon
+
+ Number : CN ;
+ Even,Odd,Prime : A1 ;
+ Equal,Greater,Smaller,Divisible : A2 ;
+
+-- replies
+
+cat Answer ; ListInt ;
+
+fun
+ Yes,No : Answer ;
+ None : Answer ;
+ List : ListInt -> Answer ;
+ One : Int -> ListInt ;
+ Cons : Int -> ListInt -> ListInt ;
+
+-- general moves
+fun
+ Quit : Query ;
+ Bye : Answer ;
+
+}