Files
comp-syntax-gu-mlt/old-labs/lab2/wikipedia-2022/CountriesFin.gf
2025-03-17 18:09:48 +01:00

27 lines
795 B
Plaintext

concrete CountriesFin of Countries = FactsFin, CountryNamesFin **
open SyntaxFin, ParadigmsFin, SymbolicFin, Prelude
in {
lin
cName name = name.np ;
capital_Attribute = mkAttribute "pääkaupunki" ;
area_Attribute = mkAttribute "pinta-ala" ;
population_Attribute = mkAttribute "asukasluku" ;
continent_Attribute = mkAttribute "maanosa" ;
currency_Attribute = mkAttribute "valuutta" ;
populationFact cname int = mkCl cname.np (mkV2 (caseV (locCase cname) have_V2)) (mkNP <symb int : Card> (mkN "asukas")) ;
continentFact cname name = mkCl cname.np (SyntaxFin.mkAdv (casePrep (locCase name)) name.np) ;
oper
mkAttribute : Str -> CN = \s -> mkCN (mkN s) ;
locCase : LocName -> Case = \name -> case name.isIn of {
True => inessive ;
False => adessive
} ;
}