mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
missing constructions in Attempto grammars added
This commit is contained in:
@@ -1,10 +1,11 @@
|
|||||||
abstract Attempto = {
|
abstract Attempto = Symbols ** {
|
||||||
|
|
||||||
flags startcat = ACEText ;
|
flags startcat = ACEText ;
|
||||||
|
|
||||||
cat CN ;
|
cat CN ;
|
||||||
cat NP ;
|
cat NP ;
|
||||||
cat Card ;
|
cat Card ;
|
||||||
|
cat Numeral ;
|
||||||
cat PN ;
|
cat PN ;
|
||||||
cat A ;
|
cat A ;
|
||||||
cat A2 ;
|
cat A2 ;
|
||||||
@@ -51,6 +52,11 @@ fun noMassNP : MCN -> NP ;
|
|||||||
fun allMassNP : MCN -> NP ;
|
fun allMassNP : MCN -> NP ;
|
||||||
fun notAllMassNP : MCN -> NP ;
|
fun notAllMassNP : MCN -> NP ;
|
||||||
|
|
||||||
|
fun one_Card : Card ;
|
||||||
|
fun two_Card : Card ;
|
||||||
|
fun five_Card : Card ;
|
||||||
|
fun ten_Card : Card ;
|
||||||
|
|
||||||
|
|
||||||
fun pnNP : PN -> NP ;
|
fun pnNP : PN -> NP ;
|
||||||
fun intNP : Int -> NP ;
|
fun intNP : Int -> NP ;
|
||||||
@@ -97,7 +103,6 @@ fun nobody_butNP : PN -> NP ; -- nobody but John
|
|||||||
fun no_butNP : CN -> PN -> NP ; -- no man but John
|
fun no_butNP : CN -> PN -> NP ; -- no man but John
|
||||||
|
|
||||||
cat Unit ; -- SI measurement units
|
cat Unit ; -- SI measurement units
|
||||||
cat Var ;
|
|
||||||
|
|
||||||
fun unitNP : Card -> Unit -> NP ;
|
fun unitNP : Card -> Unit -> NP ;
|
||||||
fun unit_ofNP : Card -> Unit -> CN -> NP ; -- 3 kg of apples
|
fun unit_ofNP : Card -> Unit -> CN -> NP ; -- 3 kg of apples
|
||||||
@@ -124,6 +129,8 @@ fun andRS : RS -> RS -> RS ;
|
|||||||
fun orRS : RS -> RS -> RS ;
|
fun orRS : RS -> RS -> RS ;
|
||||||
fun eachRS : RS -> RS ; -- each of who
|
fun eachRS : RS -> RS ; -- each of who
|
||||||
|
|
||||||
|
fun suchCN : CN -> S -> CN ;
|
||||||
|
|
||||||
-- 2.2.4
|
-- 2.2.4
|
||||||
|
|
||||||
fun genNP : NP -> CN -> NP ; -- everybody's customer
|
fun genNP : NP -> CN -> NP ; -- everybody's customer
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -path=.:present
|
--# -path=.:present
|
||||||
|
|
||||||
concrete AttemptoEng of Attempto = AttemptoI with
|
concrete AttemptoEng of Attempto = SymbolsC ** AttemptoI with
|
||||||
(Syntax = SyntaxEng),
|
(Syntax = SyntaxEng),
|
||||||
(Symbolic = SymbolicEng),
|
(Symbolic = SymbolicEng),
|
||||||
(LexAttempto = LexAttemptoEng) ;
|
(LexAttempto = LexAttemptoEng) ;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -path=.:/Users/aarne/GF/next-lib/present
|
--# -path=.:/Users/aarne/GF/next-lib/present
|
||||||
|
|
||||||
concrete AttemptoFre of Attempto = AttemptoI with
|
concrete AttemptoFre of Attempto = SymbolsC ** AttemptoI with
|
||||||
(Syntax = SyntaxFre),
|
(Syntax = SyntaxFre),
|
||||||
(Symbolic = SymbolicFre),
|
(Symbolic = SymbolicFre),
|
||||||
(LexAttempto = LexAttemptoFre) ;
|
(LexAttempto = LexAttemptoFre) ;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -path=.:/Users/aarne/GF/next-lib/present
|
--# -path=.:/Users/aarne/GF/next-lib/present
|
||||||
|
|
||||||
concrete AttemptoGer of Attempto = AttemptoI with
|
concrete AttemptoGer of Attempto = SymbolsC ** AttemptoI with
|
||||||
(Syntax = SyntaxGer),
|
(Syntax = SyntaxGer),
|
||||||
(Symbolic = SymbolicGer),
|
(Symbolic = SymbolicGer),
|
||||||
(LexAttempto = LexAttemptoGer) ;
|
(LexAttempto = LexAttemptoGer) ;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
incomplete concrete AttemptoI of Attempto = open
|
incomplete concrete AttemptoI of Attempto = SymbolsC ** open
|
||||||
Syntax,
|
Syntax,
|
||||||
Symbolic,
|
Symbolic,
|
||||||
LexAttempto
|
LexAttempto
|
||||||
@@ -7,6 +7,7 @@ in {
|
|||||||
lincat CN = Syntax.CN ;
|
lincat CN = Syntax.CN ;
|
||||||
lincat NP = Syntax.NP ;
|
lincat NP = Syntax.NP ;
|
||||||
lincat Card = Syntax.Card ;
|
lincat Card = Syntax.Card ;
|
||||||
|
lincat Numeral = Syntax.Numeral ;
|
||||||
lincat PN = Syntax.PN ;
|
lincat PN = Syntax.PN ;
|
||||||
lincat A = Syntax.A ;
|
lincat A = Syntax.A ;
|
||||||
lincat A2 = Syntax.A2 ;
|
lincat A2 = Syntax.A2 ;
|
||||||
@@ -28,31 +29,35 @@ lincat Text = Syntax.Text ;
|
|||||||
lincat ACEText = Syntax.Text ;
|
lincat ACEText = Syntax.Text ;
|
||||||
|
|
||||||
lincat MCN = Syntax.CN ;
|
lincat MCN = Syntax.CN ;
|
||||||
--lincat Var = Symb ;
|
|
||||||
lincat PP = Adv ;
|
lincat PP = Adv ;
|
||||||
|
|
||||||
lin aNP = mkNP a_Art ;
|
lin aNP = mkNP a_Art ;
|
||||||
lin theNP = mkNP the_Art ;
|
lin theNP = mkNP the_Art ;
|
||||||
lin cardNP d = mkNP d ;
|
lin cardNP d = mkNP d ;
|
||||||
--lin noNP : CN -> NP ;
|
lin noNP = mkNP no_Quant ;
|
||||||
lin everyNP = mkNP every_Det ;
|
lin everyNP = mkNP every_Det ;
|
||||||
--lin eachNP : CN -> NP ;
|
lin eachNP = mkNP each_Det ;
|
||||||
--lin notEveryNP : CN -> NP ;
|
lin notEveryNP cn = mkNP not_Predet (mkNP every_Det cn) ;
|
||||||
--lin notEachNP : CN -> NP ;
|
lin notEachNP cn = mkNP not_Predet (mkNP each_Det cn) ;
|
||||||
lin theCollNP = mkNP the_Art plNum ;
|
lin theCollNP = mkNP the_Art plNum ;
|
||||||
lin someCollNP = mkNP somePl_Det ;
|
lin someCollNP = mkNP somePl_Det ;
|
||||||
lin allCollNP cn = mkNP all_Predet (mkNP a_Art plNum cn) ;
|
lin allCollNP cn = mkNP all_Predet (mkNP a_Art plNum cn) ;
|
||||||
|
|
||||||
--lin noCollNP : CN -> NP ;
|
lin noCollNP = mkNP no_Quant plNum ;
|
||||||
--lin eachTheNP : CN -> NP ;
|
lin eachTheNP cn = mkNP (mkNP each_Det) (mkAdv part_Prep (mkNP the_Art plNum cn)) ;
|
||||||
--lin eachSomeNP : CN -> NP ;
|
lin eachSomeNP cn = mkNP (mkNP each_Det) (mkAdv part_Prep (mkNP somePl_Det cn)) ;
|
||||||
--lin eachNumNP : Card -> CN -> NP ;
|
lin eachNumNP ca cn = mkNP (mkNP each_Det) (mkAdv part_Prep (mkNP ca cn)) ;
|
||||||
|
|
||||||
lin someMassNP = mkNP someSg_Det ;
|
lin someMassNP = mkNP someSg_Det ;
|
||||||
lin allMassNP cn = mkNP all_Predet (mkNP cn) ;
|
lin allMassNP cn = mkNP all_Predet (mkNP cn) ;
|
||||||
|
|
||||||
--lin noMassNP : MCN -> NP ;
|
lin noMassNP = mkNP no_Quant ;
|
||||||
--lin notAllMassNP : MCN -> NP ;
|
lin notAllMassNP cn = mkNP not_Predet (mkNP all_Predet (mkNP cn)) ;
|
||||||
|
|
||||||
|
lin one_Card = mkCard n1_Numeral ;
|
||||||
|
lin two_Card = mkCard n2_Numeral ;
|
||||||
|
lin five_Card = mkCard n5_Numeral ;
|
||||||
|
lin ten_Card = mkCard n10_Numeral ;
|
||||||
|
|
||||||
lin pnNP = mkNP ;
|
lin pnNP = mkNP ;
|
||||||
lin intNP = symb ;
|
lin intNP = symb ;
|
||||||
@@ -67,38 +72,37 @@ lin they_NP = mkNP they_Pron ;
|
|||||||
lin conjNP = mkNP and_Conj ;
|
lin conjNP = mkNP and_Conj ;
|
||||||
lin adjCN = mkCN ;
|
lin adjCN = mkCN ;
|
||||||
|
|
||||||
{-
|
--lin someone_NP : NP ;
|
||||||
lin someone_NP : NP ;
|
lin somebody_NP = Syntax.somebody_NP ;
|
||||||
lin somebody_NP : NP ;
|
lin something_NP = Syntax.something_NP ;
|
||||||
lin something_NP : NP ;
|
--lin noone_NP : NP ;
|
||||||
lin noone_NP : NP ;
|
lin nobody_NP = Syntax.nobody_NP ;
|
||||||
lin nothing_NP : NP ;
|
lin nothing_NP = Syntax.nothing_NP ;
|
||||||
lin not_everyoneNP : NP ;
|
--lin not_everyoneNP : NP ;
|
||||||
lin not_everybodyNP : NP ;
|
lin not_everybodyNP = mkNP not_Predet Syntax.everybody_NP ;
|
||||||
lin not_everythingNP : NP ;
|
lin not_everythingNP = mkNP not_Predet Syntax.everything_NP ;
|
||||||
|
|
||||||
lin at_leastNP : Card -> CN -> NP ;
|
lin at_leastNP ca = mkNP (mkCard at_least_AdN ca) ;
|
||||||
lin not_at_leastNP : Card -> CN -> NP ;
|
lin not_at_leastNP ca cn = mkNP not_Predet (mkNP (mkCard at_least_AdN ca) cn) ;
|
||||||
lin at_mostNP : Card -> CN -> NP ;
|
lin at_mostNP ca = mkNP (mkCard at_most_AdN ca) ;
|
||||||
lin not_at_mostNP : Card -> CN -> NP ;
|
lin not_at_mostNP ca cn = mkNP not_Predet (mkNP (mkCard at_most_AdN ca) cn) ;
|
||||||
lin more_thanNP : Card -> CN -> NP ;
|
lin more_thanNP ca = mkNP (mkCard (mkAdN more_CAdv) ca) ;
|
||||||
lin not_more_thanNP : Card -> CN -> NP ;
|
lin not_more_thanNP ca cn = mkNP not_Predet (mkNP (mkCard (mkAdN more_CAdv) ca) cn) ;
|
||||||
|
|
||||||
lin nothing_butNP : CN -> NP ; -- nothing but apples
|
lin nothing_butNP cn = mkNP nothing_but_Predet (mkNP a_Art plNum cn) ;
|
||||||
lin nothing_butMassNP : MCN -> NP ; -- nothing but water
|
lin nothing_butMassNP cn = mkNP nothing_but_Predet (mkNP cn) ;
|
||||||
lin nobody_butNP : PN -> NP ; -- nobody but John
|
--lin nobody_butNP : PN -> NP ; -- nobody but John
|
||||||
lin no_butNP : CN -> PN -> NP ; -- no man but John
|
--lin no_butNP : CN -> PN -> NP ; -- no man but John
|
||||||
|
|
||||||
cat Unit ; -- SI measurement units
|
lincat Unit = CN ;
|
||||||
cat Var ;
|
|
||||||
|
lin unitNP = mkNP ;
|
||||||
|
lin unit_ofNP ca u cn = mkNP (mkNP ca u) (mkAdv part_Prep (mkNP a_Art plNum cn)) ;
|
||||||
|
lin unit_ofMassNP ca u cn = mkNP (mkNP ca u) (mkAdv part_Prep (mkNP cn)) ;
|
||||||
|
|
||||||
lin unitNP : Card -> Unit -> NP ;
|
|
||||||
lin unit_ofNP : Card -> Unit -> CN -> NP ; -- 3 kg of apples
|
|
||||||
lin unit_ofMassNP : Card -> Unit -> MCN -> NP ; -- 3 l of water
|
|
||||||
-}
|
|
||||||
lin apposVarCN cn v = mkCN cn (symb v) ;
|
lin apposVarCN cn v = mkCN cn (symb v) ;
|
||||||
|
|
||||||
lin varNP = symb ;
|
lin varNP x = symb x ;
|
||||||
|
|
||||||
-- 2.2.1
|
-- 2.2.1
|
||||||
|
|
||||||
@@ -120,6 +124,8 @@ lin orRS : RS -> RS -> RS ;
|
|||||||
lin eachRS : RS -> RS ; -- each of who
|
lin eachRS : RS -> RS ; -- each of who
|
||||||
-}
|
-}
|
||||||
|
|
||||||
|
lin suchCN cn s = mkCN (mkAP (mkAP such_A) s) cn ;
|
||||||
|
|
||||||
-- 2.2.4
|
-- 2.2.4
|
||||||
|
|
||||||
lin genNP = genitiveNP ;
|
lin genNP = genitiveNP ;
|
||||||
@@ -174,10 +180,10 @@ lin modVP = mkVP ;
|
|||||||
|
|
||||||
lin thereNP np = mkS (mkCl np) ;
|
lin thereNP np = mkS (mkCl np) ;
|
||||||
|
|
||||||
{-
|
|
||||||
-- 3.3
|
-- 3.3
|
||||||
-- Boolean formulas = \= < > <= >=
|
-- Boolean formulas = \= < > <= >=
|
||||||
-}
|
|
||||||
|
|
||||||
-- 3.4.1
|
-- 3.4.1
|
||||||
|
|
||||||
@@ -189,16 +195,16 @@ lin or_Conj = Syntax.or_Conj ;
|
|||||||
--lin comma_or_Conj : Conj ;
|
--lin comma_or_Conj : Conj ;
|
||||||
|
|
||||||
-- 3.4.3
|
-- 3.4.3
|
||||||
{-
|
|
||||||
lin for_everyS : CN -> S -> S ;
|
lin for_everyS cn = mkS (mkAdv for_Prep (mkNP every_Det cn)) ;
|
||||||
lin for_eachS : CN -> S -> S ;
|
lin for_eachS cn = mkS (mkAdv for_Prep (mkNP each_Det cn)) ;
|
||||||
lin for_each_ofS : Card -> CN -> S -> S ; -- for each of 3 men
|
--lin for_each_ofS : Card -> CN -> S -> S ; -- for each of 3 men
|
||||||
lin for_allMassS : MCN -> S -> S ; -- for all water
|
--lin for_allMassS : MCN -> S -> S ; -- for all water
|
||||||
|
|
||||||
-- 3.4.4
|
-- 3.4.4
|
||||||
|
|
||||||
lin if_thenS : S -> S -> S ;
|
lin if_thenS = mkS if_then_Conj ;
|
||||||
-}
|
|
||||||
|
|
||||||
oper adj_thatCl : A -> S -> Cl = \a,s -> mkCl (mkVP (mkAP (mkAP a) s)) ;
|
oper adj_thatCl : A -> S -> Cl = \a,s -> mkCl (mkVP (mkAP (mkAP a) s)) ;
|
||||||
|
|
||||||
@@ -223,11 +229,10 @@ lin when_IAdv = Syntax.when_IAdv ;
|
|||||||
lin whoSg_IP = Syntax.whoSg_IP ;
|
lin whoSg_IP = Syntax.whoSg_IP ;
|
||||||
lin whoPl_IP = Syntax.whoPl_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 -> QS ; -- there is who
|
||||||
-}
|
--lin whoseIP : CN -> IP ; -- whose dog
|
||||||
|
|
||||||
-- 3.6
|
-- 3.6
|
||||||
|
|
||||||
lin impVP np vp = mkText (mkPhr (mkUtt (mkImp vp)) (mkVoc np)) exclMarkPunct ;
|
lin impVP np vp = mkText (mkPhr (mkUtt (mkImp vp)) (mkVoc np)) exclMarkPunct ;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -path=.:present
|
--# -path=.:present
|
||||||
|
|
||||||
concrete AttemptoSwe of Attempto = AttemptoI with
|
concrete AttemptoSwe of Attempto = SymbolsC ** AttemptoI with
|
||||||
(Syntax = SyntaxSwe),
|
(Syntax = SyntaxSwe),
|
||||||
(Symbolic = SymbolicSwe),
|
(Symbolic = SymbolicSwe),
|
||||||
(LexAttempto = LexAttemptoSwe) ;
|
(LexAttempto = LexAttemptoSwe) ;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ oper
|
|||||||
provably_Adv : Adv ;
|
provably_Adv : Adv ;
|
||||||
provable_A : A ;
|
provable_A : A ;
|
||||||
false_A : A ;
|
false_A : A ;
|
||||||
|
such_A : A ;
|
||||||
|
|
||||||
genitiveNP : NP -> CN -> NP ;
|
genitiveNP : NP -> CN -> NP ;
|
||||||
|
|
||||||
@@ -15,4 +16,6 @@ oper
|
|||||||
-- l_Unit : Unit ;
|
-- l_Unit : Unit ;
|
||||||
-- kg_Unit : Unit ;
|
-- kg_Unit : Unit ;
|
||||||
|
|
||||||
|
each_Det : Det ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
instance LexAttemptoEng of LexAttempto =
|
instance LexAttemptoEng of LexAttempto =
|
||||||
open ExtraEng, SyntaxEng, ParadigmsEng, ConstructX, IrregEng in {
|
open
|
||||||
|
ExtraEng,
|
||||||
|
SyntaxEng,
|
||||||
|
ParadigmsEng,
|
||||||
|
ConstructX,
|
||||||
|
IrregEng in {
|
||||||
|
|
||||||
oper
|
oper
|
||||||
possible_A = mkA "possible" ;
|
possible_A = mkA "possible" ;
|
||||||
@@ -9,7 +14,12 @@ oper
|
|||||||
provably_Adv = mkAdv "provably" ;
|
provably_Adv = mkAdv "provably" ;
|
||||||
provable_A = mkA "provable" ;
|
provable_A = mkA "provable" ;
|
||||||
false_A = mkA "false" ;
|
false_A = mkA "false" ;
|
||||||
|
such_A = mkA "such" ;
|
||||||
|
|
||||||
genitiveNP np = mkNP (GenNP np) ;
|
genitiveNP np = mkNP (GenNP np) ;
|
||||||
|
|
||||||
|
kilogram_CN = mkCN (mkN "kilogram") ;
|
||||||
|
|
||||||
|
each_Det = ExtraEng.each_Det ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,10 @@ oper
|
|||||||
provably_Adv = mkAdv "démontrablement" ;
|
provably_Adv = mkAdv "démontrablement" ;
|
||||||
provable_A = mkA "démontrable" ;
|
provable_A = mkA "démontrable" ;
|
||||||
false_A = mkA "faux" ;
|
false_A = mkA "faux" ;
|
||||||
|
such_A = mkA "tel" "telle" ;
|
||||||
|
|
||||||
genitiveNP np cn = mkNP (mkNP the_Art cn) (SyntaxFre.mkAdv possess_Prep np) ;
|
genitiveNP np cn = mkNP (mkNP the_Art cn) (SyntaxFre.mkAdv possess_Prep np) ;
|
||||||
|
|
||||||
|
each_Det = every_Det ; ----
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,10 @@ oper
|
|||||||
provably_Adv = mkAdv "beweisbar" ;
|
provably_Adv = mkAdv "beweisbar" ;
|
||||||
provable_A = mkA "beweisbar" ;
|
provable_A = mkA "beweisbar" ;
|
||||||
false_A = mkA "falsch" ;
|
false_A = mkA "falsch" ;
|
||||||
|
such_A = mkA "solch" ;
|
||||||
|
|
||||||
genitiveNP np cn = mkNP (mkNP the_Art cn) (SyntaxGer.mkAdv possess_Prep np) ;
|
genitiveNP np cn = mkNP (mkNP the_Art cn) (SyntaxGer.mkAdv possess_Prep np) ;
|
||||||
|
|
||||||
|
each_Det = every_Det ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ oper
|
|||||||
provably_Adv = mkAdv "bevisbart" ;
|
provably_Adv = mkAdv "bevisbart" ;
|
||||||
provable_A = mkA "bevisbar" ;
|
provable_A = mkA "bevisbar" ;
|
||||||
false_A = mkA "falsk" ;
|
false_A = mkA "falsk" ;
|
||||||
|
such_A = mkA "sådan" ;
|
||||||
|
|
||||||
genitiveNP np = mkNP (GenNP np) ;
|
genitiveNP np = mkNP (GenNP np) ;
|
||||||
|
|
||||||
|
each_Det = every_Det ; ----
|
||||||
}
|
}
|
||||||
|
|||||||
8
examples/attempto/Symbols.gf
Normal file
8
examples/attempto/Symbols.gf
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
abstract Symbols = {
|
||||||
|
|
||||||
|
cat Var ;
|
||||||
|
|
||||||
|
fun X_Var : Var ;
|
||||||
|
fun Y_Var : Var ;
|
||||||
|
|
||||||
|
}
|
||||||
8
examples/attempto/SymbolsC.gf
Normal file
8
examples/attempto/SymbolsC.gf
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
concrete SymbolsC of Symbols = open Prelude in {
|
||||||
|
|
||||||
|
lincat Var = SS ;
|
||||||
|
|
||||||
|
lin X_Var = ss "X" ;
|
||||||
|
lin Y_Var = ss "Y" ;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -74,6 +74,8 @@ fun
|
|||||||
machine_N : CN ;
|
machine_N : CN ;
|
||||||
correct_A : A ;
|
correct_A : A ;
|
||||||
|
|
||||||
|
kilogram_Unit : Unit ;
|
||||||
|
|
||||||
in_Prep : Prep ;
|
in_Prep : Prep ;
|
||||||
at_Prep : Prep ;
|
at_Prep : Prep ;
|
||||||
into_Prep : Prep ;
|
into_Prep : Prep ;
|
||||||
|
|||||||
@@ -76,6 +76,8 @@ lin mary_PN = mkPN "mary" ;
|
|||||||
lin machine_N = mkkN "machine" ;
|
lin machine_N = mkkN "machine" ;
|
||||||
lin correct_A = mkA "correct" ;
|
lin correct_A = mkA "correct" ;
|
||||||
|
|
||||||
|
lin kilogram_Unit = mkkN "kilogram" ;
|
||||||
|
|
||||||
oper mkkN : Str -> CN = \n -> mkCN (ParadigmsEng.mkN n) ;
|
oper mkkN : Str -> CN = \n -> mkCN (ParadigmsEng.mkN n) ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|||||||
Reference in New Issue
Block a user