Attempto complete up to spec

This commit is contained in:
aarne
2008-11-15 20:08:09 +00:00
parent 373b4d6828
commit f30560efcc
14 changed files with 71 additions and 13 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -22,4 +22,5 @@ oper
comma_and_Conj : Conj ;
comma_or_Conj : Conj ;
whose_IDet : IDet ;
}

View File

@@ -29,5 +29,6 @@ oper
comma_or_Conj = M.mkConj [] ", or" singular ;
slash_Conj = M.mkConj [] "/" singular ;
whose_IDet = M.mkIDet "whose" singular ;
}

View File

@@ -23,5 +23,6 @@ oper
comma_or_Conj = mkConj [] ", ou" singular ;
slash_Conj = mkConj [] "/" singular ;
whose_IDet = mkIDet (mkIQuant "de qui") ; ----
}

View File

@@ -23,5 +23,6 @@ oper
comma_or_Conj = mkConj [] ", oder" singular ;
slash_Conj = mkConj [] "/" singular ;
whose_IDet = mkIDet (mkIQuant "wessen") ;
}

View File

@@ -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) ;
}

View File

@@ -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 ;

View File

@@ -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" ;

View File

@@ -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 ;

View File

@@ -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 = <>} ;
}

View File

@@ -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 = <>} ;
}

View File

@@ -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 = <>} ;
}

View File

@@ -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
}