diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-09-22 11:49:15 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-09-22 11:49:15 +0000 |
| commit | 98665df78b8018af30051cb4a9a31f845e0ba19d (patch) | |
| tree | 67ba30b09e2b9590a00a4b193bf7611caa935af8 /next-lib/src/api/Symbolic.gf | |
| parent | 4862018f140a1bdcc7961d445ed9aa92facd742f (diff) | |
moved lib/next-resource to next-lib/src, to enable linking with next-lib as value of GF_LIB_PATH
Diffstat (limited to 'next-lib/src/api/Symbolic.gf')
| -rw-r--r-- | next-lib/src/api/Symbolic.gf | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/next-lib/src/api/Symbolic.gf b/next-lib/src/api/Symbolic.gf new file mode 100644 index 000000000..2a621cf9c --- /dev/null +++ b/next-lib/src/api/Symbolic.gf @@ -0,0 +1,62 @@ +--1 Symbolic: Noun Phrases with mathematical symbols + +incomplete resource Symbolic = open + Symbol, Syntax, PredefCnc in { + + oper + symb : overload { + symb : Str -> NP ; -- x + symb : Int -> NP ; -- 23 + symb : Float -> NP ; -- 0.99 + symb : N -> Digits -> NP ; -- level 4 + symb : N -> Card -> NP ; -- level four + symb : CN -> Card -> NP ; -- advanced level four + symb : Det -> N -> Card -> NP ; -- the number four + symb : Det -> CN -> Card -> NP ; -- the even number four + symb : Det -> N -> Str -> Str -> NP ; -- the levels i and j + symb : Det -> CN -> [Symb] -> NP ; -- the basic levels i, j, and k + symb : Symb -> S ; -- A + symb : Symb -> Card ; -- n + symb : Symb -> Ord -- n'th + } ; + + mkSymb : Str -> Symb ; + mkInt : Str -> PredefCnc.Int ; + mkFloat : Str -> PredefCnc.Float ; + +--. + + symb = overload { + symb : Str -> NP + = \s -> mkNP (SymbPN (mkSymb s)) ; + symb : Int -> NP + = \i -> mkNP (IntPN i) ; + symb : Float -> NP + = \i -> mkNP (FloatPN i) ; + symb : N -> Digits -> NP + = \c,i -> CNNumNP (mkCN c) (mkCard i) ; + symb : N -> Card -> NP + = \c,n -> CNNumNP (mkCN c) n ; + symb : CN -> Card -> NP + = \c,n -> CNNumNP c n ; + symb : Det -> N -> Card -> NP + = \d,n,x -> mkNP d (mkCN (mkCN n) (mkNP (NumPN x))) ; + symb : Det -> CN -> Card -> NP + = \d,n,x -> mkNP d (mkCN n (mkNP (NumPN x))) ; + symb : Det -> N -> Str -> Str -> NP + = \c,n,x,y -> CNSymbNP c (mkCN n) (BaseSymb (mkSymb x) (mkSymb y)) ; + symb : Det -> CN -> [Symb] -> NP + = CNSymbNP ; + symb : Symb -> S = SymbS ; + symb : Symb -> Card = SymbNum ; + symb : Symb -> Ord = SymbOrd + + } ; + + mkSymb : Str -> Symb = \s -> {s = s ; lock_Symb = <>} ; + + mkInt i = {s = i ; lock_Int = <>} ; + mkFloat f = {s = f ; lock_Float = <>} ; + + +} |
