1
0
forked from GitHub/gf-core
Files
gf-core/examples/query/DatabaseEng.gf
2006-04-21 09:14:05 +00:00

53 lines
955 B
Plaintext

--# -path=.:prelude
concrete DatabaseEng of Database = open Prelude in {
-- english query language
flags lexer=literals ; unlexer=text ;
-- concrete syntax; greatly simplified - just for test purposes
lin
QueryS s = s ;
QueryQ q = q ;
PredA1 np a = prefixSS "is" (cc2 np a) ;
WhichA1 n a = ss ("which" ++ n.s ++ "are" ++ a.s) ;
WhichA2 n q a = ss ("which" ++ n.s ++ "are" ++ q.s ++ a.s) ;
ComplA2 = cc2 ;
Every A = ss ("every" ++ A.s) ;
Some A = ss ("some" ++ A.s) ;
UseInt n = n ;
Number = ss "numbers" ;
Even = ss "even" ;
Odd = ss "odd" ;
Prime = ss "prime" ;
Equal = ss ("equal" ++ "to") ;
Greater = ss ("greater" ++ "than") ;
Smaller = ss ("smaller" ++ "than") ;
Divisible = ss ("divisible" ++ "by") ;
-- replies
lin
Yes = ss "yes" ;
No = ss "no" ;
None = ss "none" ;
List xs = xs ;
One n = n ;
Cons = cc2 ;
-- general moves
lin
Quit = ss "quit" ;
Bye = ss "bye" ;
}