mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
embedded haskelle example: query
This commit is contained in:
45
examples/query/Database.gf
Normal file
45
examples/query/Database.gf
Normal file
@@ -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 ;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user