mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Attempto complete up to spec
This commit is contained in:
@@ -62,7 +62,6 @@ fun ten_Card : Card ;
|
||||
|
||||
fun pnNP : PN -> NP ;
|
||||
fun intNP : Int -> NP ;
|
||||
fun intNegNP : Int -> NP ;
|
||||
fun floatNP : Float -> NP ;
|
||||
|
||||
|
||||
@@ -112,7 +111,7 @@ fun unit_ofNP : Card -> Unit -> CN -> NP ; -- 3 kg of apples
|
||||
fun unit_ofMassNP : Card -> Unit -> MCN -> NP ; -- 3 l of water
|
||||
|
||||
fun apposVarCN : CN -> Var -> CN ; -- a man X
|
||||
fun varNP : Var -> NP ;
|
||||
fun termNP : Term -> NP ;
|
||||
|
||||
fun conjNP : NP -> NP -> NP ;
|
||||
|
||||
@@ -189,7 +188,8 @@ fun modVP : VP -> Adv -> VP ;
|
||||
fun thereNP : NP -> S ; -- there is/are
|
||||
|
||||
-- 3.3
|
||||
-- Boolean formulas = \= < > <= >=
|
||||
|
||||
fun formulaS : Formula -> S ;
|
||||
|
||||
-- 3.4.1
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
incomplete concrete AttemptoI of Attempto = SymbolsC ** open
|
||||
Syntax,
|
||||
Symbolic,
|
||||
Prelude,
|
||||
LexAttempto
|
||||
in {
|
||||
|
||||
@@ -64,7 +65,6 @@ lin ten_Card = mkCard n10_Numeral ;
|
||||
lin pnNP = mkNP ;
|
||||
lin intNP = symb ;
|
||||
lin floatNP = symb ;
|
||||
--lin intNegNP : Int -> NP ;
|
||||
|
||||
lin it_NP = mkNP it_Pron ;
|
||||
lin he_NP = mkNP he_Pron ;
|
||||
@@ -105,7 +105,7 @@ lin unit_ofMassNP ca u cn = mkNP (mkNP ca u) (mkAdv part_Prep (mkNP cn)) ;
|
||||
|
||||
lin apposVarCN cn v = mkCN cn (symb v) ;
|
||||
|
||||
lin varNP x = symb x ;
|
||||
lin termNP x = symb (ss x.s) ;
|
||||
|
||||
-- 2.2.1
|
||||
|
||||
@@ -186,8 +186,8 @@ lin thereNP np = mkS (mkCl np) ;
|
||||
|
||||
|
||||
-- 3.3
|
||||
-- Boolean formulas = \= < > <= >=
|
||||
|
||||
lin formulaS f = symb (ss f.s) ;
|
||||
|
||||
-- 3.4.1
|
||||
|
||||
@@ -233,9 +233,8 @@ lin when_IAdv = Syntax.when_IAdv ;
|
||||
lin whoSg_IP = Syntax.whoSg_IP ;
|
||||
lin whoPl_IP = Syntax.whoPl_IP ;
|
||||
|
||||
|
||||
--lin there_ipQS : IP -> QS ; -- there is who
|
||||
--lin whoseIP : CN -> IP ; -- whose dog
|
||||
lin there_ipQS ip = mkQS (mkQCl ip) ; ---- who is there, not there is who
|
||||
lin whoseIP = mkIP whose_IDet ;
|
||||
|
||||
-- 3.6
|
||||
|
||||
|
||||
@@ -22,4 +22,5 @@ oper
|
||||
comma_and_Conj : Conj ;
|
||||
comma_or_Conj : Conj ;
|
||||
|
||||
whose_IDet : IDet ;
|
||||
}
|
||||
|
||||
@@ -29,5 +29,6 @@ oper
|
||||
comma_or_Conj = M.mkConj [] ", or" singular ;
|
||||
slash_Conj = M.mkConj [] "/" singular ;
|
||||
|
||||
whose_IDet = M.mkIDet "whose" singular ;
|
||||
|
||||
}
|
||||
|
||||
@@ -23,5 +23,6 @@ oper
|
||||
comma_or_Conj = mkConj [] ", ou" singular ;
|
||||
slash_Conj = mkConj [] "/" singular ;
|
||||
|
||||
whose_IDet = mkIDet (mkIQuant "de qui") ; ----
|
||||
|
||||
}
|
||||
|
||||
@@ -23,5 +23,6 @@ oper
|
||||
comma_or_Conj = mkConj [] ", oder" singular ;
|
||||
slash_Conj = mkConj [] "/" singular ;
|
||||
|
||||
whose_IDet = mkIDet (mkIQuant "wessen") ;
|
||||
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ oper
|
||||
comma_and_Conj = mkConj [] ", och" plural ;
|
||||
comma_or_Conj = mkConj [] ", eller" singular ;
|
||||
slash_Conj = mkConj [] "/" singular ;
|
||||
whose_IDet = mkIDet (mkIQuant "vems" "vems" "vems" dDefIndef) ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,21 @@
|
||||
abstract Symbols = {
|
||||
|
||||
cat Var ;
|
||||
cat Var ; Formula ; Term ;
|
||||
|
||||
fun plus_Term : Term -> Term -> Term ;
|
||||
fun minus_Term : Term -> Term -> Term ;
|
||||
fun div_Term : Term -> Term -> Term ;
|
||||
fun times_Term : Term -> Term -> Term ;
|
||||
fun neg_Term : Term -> Term ;
|
||||
fun int_Term : Int -> Term ;
|
||||
fun var_Term : Var -> Term ;
|
||||
|
||||
fun eq_Formula : Term -> Term -> Formula ;
|
||||
fun lt_Formula : Term -> Term -> Formula ;
|
||||
fun gt_Formula : Term -> Term -> Formula ;
|
||||
fun le_Formula : Term -> Term -> Formula ;
|
||||
fun ge_Formula : Term -> Term -> Formula ;
|
||||
fun ne_Formula : Term -> Term -> Formula ;
|
||||
|
||||
fun X_Var : Var ;
|
||||
fun Y_Var : Var ;
|
||||
|
||||
@@ -1,7 +1,24 @@
|
||||
concrete SymbolsC of Symbols = open Prelude in {
|
||||
concrete SymbolsC of Symbols = open Precedence, Prelude in {
|
||||
|
||||
lincat Term = TermWithPrec ;
|
||||
lincat Formula = SS ;
|
||||
lincat Var = SS ;
|
||||
|
||||
lin plus_Term = mkpInfixL "+" p1 ;
|
||||
lin minus_Term = mkpInfixL "-" p1 ;
|
||||
lin div_Term = mkpInfixL "/" p2 ;
|
||||
lin times_Term = mkpInfixL "*" p2 ;
|
||||
lin neg_Term = mkpFun1 "-" ;
|
||||
lin int_Term i = mkpConst i.s ;
|
||||
lin var_Term i = mkpConst i.s ;
|
||||
|
||||
lin eq_Formula = infixSS "=" ;
|
||||
lin lt_Formula = infixSS "<" ;
|
||||
lin gt_Formula = infixSS ">" ;
|
||||
lin le_Formula = infixSS "=<" ;
|
||||
lin ge_Formula = infixSS ">=" ;
|
||||
lin ne_Formula = infixSS "\\=" ;
|
||||
|
||||
lin X_Var = ss "X" ;
|
||||
lin Y_Var = ss "Y" ;
|
||||
|
||||
|
||||
@@ -1378,6 +1378,13 @@ incomplete resource Constructors = open Grammar in {
|
||||
= AdvIP
|
||||
} ;
|
||||
|
||||
mkIDet = overload {
|
||||
mkIDet : IQuant -> Num -> IDet -- which (songs)
|
||||
= \i,nu -> IdetQuant i nu ;
|
||||
mkIDet : IQuant -> IDet -- which (song)
|
||||
= \i -> IdetQuant i NumSg ;
|
||||
} ;
|
||||
|
||||
whichSg_IDet : IDet = IdetQuant which_IQuant NumSg ;
|
||||
whichPl_IDet : IDet = IdetQuant which_IQuant NumPl ;
|
||||
|
||||
|
||||
@@ -9,5 +9,7 @@ oper
|
||||
{s = x ; lock_Subj = <>} ;
|
||||
mkNP : Str -> Number -> NP = \s,n ->
|
||||
regNP s n ** {lock_NP = <>} ;
|
||||
mkIDet : Str -> Number -> IDet = \s,n ->
|
||||
{s = s ; n = n ; lock_IDet = <>} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -10,4 +10,7 @@ oper
|
||||
mkSubjSubj : Str -> Subj = \x ->
|
||||
{s = x ; m = Conjunct ; lock_Subj = <>} ;
|
||||
|
||||
mkIQuant : Str -> IQuant = \s ->
|
||||
{s = \\_,_,c => prepCase c ++ s ; lock_IQuant = <>} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -7,5 +7,7 @@ oper
|
||||
{s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ;
|
||||
mkSubj : Str -> Subj = \x ->
|
||||
{s = x ; lock_Subj = <>} ;
|
||||
mkIQuant : Str -> IQuant = \s ->
|
||||
{s = \\_,_,_ => s ; lock_IQuant = <>} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,19 @@
|
||||
--# -path=.:../scandinavian:../common:../abstract
|
||||
|
||||
resource MakeStructuralSwe = open CatSwe, ParadigmsSwe, MorphoSwe, Prelude in {
|
||||
resource MakeStructuralSwe = open CatSwe, ParadigmsSwe,
|
||||
(P=ParadigmsSwe), MorphoSwe, Prelude in {
|
||||
|
||||
oper
|
||||
mkConj : Str -> Str -> Number -> Conj = \x,y,n ->
|
||||
mkConj : Str -> Str -> P.Number -> Conj = \x,y,n ->
|
||||
{s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ;
|
||||
mkSubj : Str -> Subj = \x ->
|
||||
{s = x ; lock_Subj = <>} ;
|
||||
mkIQuant : Str -> Str -> Str -> DetSpecies -> IQuant = \vilken,vilket,vilka,d ->
|
||||
{s = table (P.Number)
|
||||
[table (P.Gender) [vilken;vilket] ; table (P.Gender) [vilka;vilka]] ;
|
||||
det = d ; lock_IQuant = <>} ;
|
||||
|
||||
dDefIndef : DetSpecies = DDef Indef ;
|
||||
---- other DetSpecies
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user