1
0
forked from GitHub/gf-rgl

small adjustments in Make.hs and some resources to make the lib compile with less warnings and without errors

This commit is contained in:
aarne
2010-04-14 16:25:17 +00:00
parent d361b2ed0f
commit 0beda69f6c
11 changed files with 127 additions and 57 deletions

View File

@@ -10,7 +10,7 @@ import System.Exit
-- Make commands for compiling and testing resource grammars. -- Make commands for compiling and testing resource grammars.
-- usage: runghc Make ((present? OPT?) | (clone FILE))? LANGS? -- usage: runghc Make ((present? OPT?) | (clone FILE))? LANGS?
-- where -- where
-- - OPT = (lang | api | math | pgf | test | parse | clean | clone) -- - OPT = (lang | api | pgf | test | parse | clean | clone)
-- - LANGS has the form e.g. langs=Eng,Fin,Rus -- - LANGS has the form e.g. langs=Eng,Fin,Rus
-- - clone with a flag file=FILENAME clones the file to the specified languages, -- - clone with a flag file=FILENAME clones the file to the specified languages,
-- by replacing the 3-letter language name of the original in both -- by replacing the 3-letter language name of the original in both
@@ -56,11 +56,17 @@ implied (_,lan) = [fun | ((_,la),fun) <- langsCoding, la == lan, fun /= ""]
langs = map fst langsCoding langs = map fst langsCoding
-- languagues for which to compile Lang -- all languagues for which Lang can be compiled
langsLang = langs `except` ["Tur"] langsLangAll = langs
-- languagues that are almost complete and for which Lang is normally compiled
langsLang = langs `except` ["Ara","Hin","Lat","Tha","Tur"]
-- languages for which to compile Try -- languages for which to compile Try
langsAPI = langsLang `except` ["Ara","Hin","Ina","Lat","Rus","Tha"] langsAPI = langsLang `except` ["Ina"]
-- languages for which to compile Symbolic
langsSymbolic = langsLang `except` ["Rus","Ina"]
-- languages for which to compile minimal Syntax -- languages for which to compile minimal Syntax
langsMinimal = langs `only` ["Ara","Eng","Bul","Rus"] langsMinimal = langs `only` ["Ara","Eng","Bul","Rus"]
@@ -108,12 +114,17 @@ make xx = do
ifx "api" $ do ifx "api" $ do
let lans = optl langsAPI let lans = optl langsAPI
mapM_ (gfc pres presApiPath . try) lans mapM_ (gfc pres presApiPath . try) lans
copy "api/Constructors.gfo api/Combinators.gfo api/Syntax.gfo" dir
copyld lans "api/*" ".gfo" dir
ifx "symbolic" $ do
let lans = optl langsSymbolic
mapM_ (gfc pres presApiPath . symbolic) lans mapM_ (gfc pres presApiPath . symbolic) lans
copyld lans "api" ".gfo" dir copy "api/Symbolic.gfo" dir
copyld lans "api/Symbolic" ".gfo" dir
ifx "minimal" $ do ifx "minimal" $ do
let lans = optl langsMinimal let lans = optl langsMinimal
mapM_ (gfcmin presApiPath . syntax) lans mapM_ (gfcmin presApiPath . syntax) lans
copyld lans "api" ".gfo" "../minimal" copyld lans "api/*" ".gfo" "../minimal"
ifxx "pgf" $ do ifxx "pgf" $ do
run_gfc $ ["-s","--make","--name=langs","--parser=off", run_gfc $ ["-s","--make","--name=langs","--parser=off",
"--output-dir=" ++ dir] "--output-dir=" ++ dir]
@@ -227,8 +238,8 @@ copyl lans from to = do
copyld :: [(String,String)] -> String -> String -> String -> IO () copyld :: [(String,String)] -> String -> String -> String -> IO ()
copyld lans dir from to = do copyld lans dir from to = do
mapM_ (\lan -> echosystem $ "cp " ++ dir ++ "/*" ++ lan ++ from ++ " " ++ to) mapM_ (\lan -> echosystem $ "cp " ++ dir ++ lan ++ from ++ " " ++ to)
(map snd lans ++ if (dir == "api") then [] else concatMap implied lans) (map snd lans ++ if (take 3 dir == "api") then [] else concatMap implied lans)
return () return ()
echosystem c = do echosystem c = do

View File

@@ -5,15 +5,17 @@ GF_LIB_PATH=..
.PHONY: all present alltenses lang api math prelude test demo parse synopsis link compiled constructX clean .PHONY: all present alltenses lang api math prelude test demo parse synopsis link compiled constructX clean
all: link prelude constructX present alltenses compat all: link prelude constructX present alltenses
present: present:
$(RUNMAKE) present lang $(RUNMAKE) present lang
$(RUNMAKE) present api $(RUNMAKE) present api
$(RUNMAKE) present symbolic
alltenses: alltenses:
$(RUNMAKE) lang $(RUNMAKE) lang
$(RUNMAKE) api $(RUNMAKE) api
$(RUNMAKE) symbolic
lang: lang:
$(RUNMAKE) lang $(RUNMAKE) lang
@@ -21,7 +23,7 @@ lang:
api: api:
$(RUNMAKE) api $(RUNMAKE) api
compat: compatibility:
$(RUNMAKE) present compat $(RUNMAKE) present compat
prelude: prelude:

View File

@@ -48,8 +48,8 @@ oper
mkAdject : (_,_,_,_,_ : Str) -> Adj = mkAdject : (_,_,_,_,_ : Str) -> Adj =
\stor,stort,store,storre,storst -> {s = table { \stor,stort,store,storre,storst -> {s = table {
AF (APosit (Strong SgUtr )) c => mkCase c stor ; AF (APosit (Strong (GSg Utr))) c => mkCase c stor ;
AF (APosit (Strong SgNeutr)) c => mkCase c stort ; AF (APosit (Strong (GSg Neutr))) c => mkCase c stort ;
AF (APosit _) c => mkCase c store ; AF (APosit _) c => mkCase c store ;
AF ACompar c => mkCase c storre ; AF ACompar c => mkCase c storre ;
AF (ASuperl SupStrong) c => mkCase c storst ; AF (ASuperl SupStrong) c => mkCase c storst ;

View File

@@ -20,7 +20,7 @@ concrete CatDut of Cat =
-- Question -- Question
QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; QCl = {s : ResDut.Tense => Anteriority => Polarity => QForm => Str} ;
IP = {s : NPCase => Str ; n : Number} ; IP = {s : NPCase => Str ; n : Number} ;
IComp = {s : Agr => Str} ; IComp = {s : Agr => Str} ;
IDet = {s : Gender => Str ; n : Number} ; IDet = {s : Gender => Str ; n : Number} ;
@@ -28,7 +28,7 @@ concrete CatDut of Cat =
-- Relative -- Relative
RCl = {s : Tense => Anteriority => Polarity => Gender => Number => Str} ; RCl = {s : ResDut.Tense => Anteriority => Polarity => Gender => Number => Str} ;
RP = {s : Gender => Number => Str ; a : RAgr} ; RP = {s : Gender => Number => Str ; a : RAgr} ;
-- Verb -- Verb

View File

@@ -1,5 +1,5 @@
concrete IdiomDut of Idiom = CatDut ** concrete IdiomDut of Idiom = CatDut **
open MorphoDut, ParadigmsDut, IrregDut, Prelude in { open MorphoDut, (P = ParadigmsDut), IrregDut, Prelude in {
flags optimize=all_subs ; flags optimize=all_subs ;

View File

@@ -38,6 +38,7 @@ concrete StructuralDut of Structural = CatDut, Prelude **
here7from_Adv = ss ["van hier"] ; ---- here7from_Adv = ss ["van hier"] ; ----
here_Adv = ss "hier" ; here_Adv = ss "hier" ;
how_IAdv = ss "hoe" ; how_IAdv = ss "hoe" ;
how8much_IAdv = ss "hoeveel" ;
how8many_IDet = mkDet "hoeveel" "hoeveel" Pl ; how8many_IDet = mkDet "hoeveel" "hoeveel" Pl ;
if_Subj = ss "als" ; if_Subj = ss "als" ;
in8front_Prep = mkPrep "voor" ; in8front_Prep = mkPrep "voor" ;
@@ -71,6 +72,7 @@ concrete StructuralDut of Structural = CatDut, Prelude **
something_NP = mkNP "iets" Utr Sg ; something_NP = mkNP "iets" Utr Sg ;
somewhere_Adv = ss "ergens" ; somewhere_Adv = ss "ergens" ;
that_Quant = mkQuant "die" "dat" ; that_Quant = mkQuant "die" "dat" ;
that_Subj = ss "dat" ;
there_Adv = ss "daar" ; there_Adv = ss "daar" ;
there7to_Adv = ss "daar" ; there7to_Adv = ss "daar" ;
there7from_Adv = ss "van daar" ; there7from_Adv = ss "van daar" ;
@@ -116,7 +118,7 @@ concrete StructuralDut of Structural = CatDut, Prelude **
except_Prep = mkPrep "met uitzondering van" ; except_Prep = mkPrep "met uitzondering van" ;
as_CAdv = X.mkCAdv "zo" "als" ; as_CAdv = X.mkCAdv "zo" "als" ;
have_V2 = mkV2 hebben_V ; have_V2 = mkV2 ParadigmsDut.hebben_V ;
lin language_title_Utt = ss "nederlands" ; lin language_title_Utt = ss "nederlands" ;

View File

@@ -79,5 +79,5 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
oper oper
v2v : VVerb -> VVerb = \v -> v2v : VVerb -> VVerb = \v ->
{s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = v.vtype} ; {s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = v.vtype} ;
predVv : V -> VP = \v -> predV (v2v v) ; predVv : VVerb -> ResDut.VP = \v -> predV (v2v v) ;
} }

View File

@@ -3,7 +3,7 @@
resource MakeStructuralIta = open CatIta, ParadigmsIta, MorphoIta, Prelude in { resource MakeStructuralIta = open CatIta, ParadigmsIta, MorphoIta, Prelude in {
oper oper
mkConj : Str -> Str -> Number -> Conj = \x,y,n -> mkConj : Str -> Str -> ParadigmsIta.Number -> Conj = \x,y,n ->
{s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ; {s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ;
mkSubj : Str -> Subj = \x -> mkSubj : Str -> Subj = \x ->
{s = x ; m = Indic ; lock_Subj = <>} ; {s = x ; m = Indic ; lock_Subj = <>} ;

View File

@@ -406,13 +406,14 @@ resource VerbMorphoPol = ResPol ** open Prelude, CatPol, (Predef=Predef), (Adj=A
let perf = verb.sp; in let perf = verb.sp; in
let imperf = verb.si; in let imperf = verb.si; in
table { table {
<Pres, Simul, gn, p> => nie ++ imperf ! (VFinM (extract_num!gn) p) ++ sie ; <Pres, Simul, gn, p> => nie ++ imperf ! (VFinM (extract_num!gn) p) ++ sie
<Pres, Anter, gn, p> => nie ++ perf ! (VPraetM gn p) ++ sie ; ; --# notpresent
<Past, _, gn, p> => nie ++ perf ! (VPraetM gn p) ++ sie ; <Pres, Anter, gn, p> => nie ++ perf ! (VPraetM gn p) ++ sie ; --# notpresent
<Fut, Simul, gn, p> => nie ++ bedzie ! <(extract_num!gn), p> ++ sie ++ imperf ! (VPraetM gn P3); <Past, _, gn, p> => nie ++ perf ! (VPraetM gn p) ++ sie ; --# notpresent
<Fut, Anter, gn, p> => nie ++ perf ! (VFinM (extract_num!gn) p) ++ sie; <Fut, Simul, gn, p> => nie ++ bedzie ! <(extract_num!gn), p> ++ sie ++ imperf ! (VPraetM gn P3); --# notpresent
<Cond, Simul, gn, p> => nie ++ imperf ! (VCondM gn p) ++ sie; <Fut, Anter, gn, p> => nie ++ perf ! (VFinM (extract_num!gn) p) ++ sie; --# notpresent
<Cond, Anter, gn, p> => nie ++ perf ! (VCondM gn p) ++ sie <Cond, Simul, gn, p> => nie ++ imperf ! (VCondM gn p) ++ sie; --# notpresent
<Cond, Anter, gn, p> => nie ++ perf ! (VCondM gn p) ++ sie --# notpresent
} }
}; };
@@ -422,17 +423,18 @@ resource VerbMorphoPol = ResPol ** open Prelude, CatPol, (Predef=Predef), (Adj=A
let zostac = (case verb.asp of { Imperfective => conj1 "być"; _ => conj3 "zostać" }).s; in let zostac = (case verb.asp of { Imperfective => conj1 "być"; _ => conj3 "zostać" }).s; in
let nie = case pol of { Pos => "" ; Neg => "nie" }; in let nie = case pol of { Pos => "" ; Neg => "nie" }; in
table { table {
<Pres, Simul, gn, p> => nie ++ byc ! (VFinM (extract_num!gn) p) ++ verb.ppart ! AF gn Nom; <Pres, Simul, gn, p> => nie ++ byc ! (VFinM (extract_num!gn) p) ++ verb.ppart ! AF gn Nom
<Pres, Anter, gn, p> => nie ++ zostac ! (VPraetM gn p) ++ verb.ppart ! AF gn Nom; ; --# notpresent
<Past, Simul, gn, p> => nie ++ byc ! (VPraetM gn p) ++ verb.ppart ! AF gn Nom; <Pres, Anter, gn, p> => nie ++ zostac ! (VPraetM gn p) ++ verb.ppart ! AF gn Nom; --# notpresent
<Past, Anter, gn, p> => nie ++ zostac ! (VPraetM gn p) ++ verb.ppart ! AF gn Nom; <Past, Simul, gn, p> => nie ++ byc ! (VPraetM gn p) ++ verb.ppart ! AF gn Nom; --# notpresent
<Fut, Simul, gn, p> => nie ++ case verb.asp of { <Past, Anter, gn, p> => nie ++ zostac ! (VPraetM gn p) ++ verb.ppart ! AF gn Nom; --# notpresent
Perfective => zostac ! (VFinM (extract_num!gn) p); <Fut, Simul, gn, p> => nie ++ case verb.asp of { --# notpresent
_ => bedzie ! <extract_num!gn, p> Perfective => zostac ! (VFinM (extract_num!gn) p); --# notpresent
} ++ verb.ppart ! AF gn Nom; _ => bedzie ! <extract_num!gn, p> --# notpresent
<Fut, Anter, gn, p> => nie ++ zostac ! (VFinM (extract_num!gn) p) ++ verb.ppart ! AF gn Nom; } ++ verb.ppart ! AF gn Nom; --# notpresent
<Cond, Simul, gn, p> => nie ++ byc ! (VCondM gn p) ++ verb.ppart ! AF gn Nom; <Fut, Anter, gn, p> => nie ++ zostac ! (VFinM (extract_num!gn) p) ++ verb.ppart ! AF gn Nom; --# notpresent
<Cond, Anter, gn, p> => nie ++ zostac ! (VCondM gn p) ++ verb.ppart ! AF gn Nom <Cond, Simul, gn, p> => nie ++ byc ! (VCondM gn p) ++ verb.ppart ! AF gn Nom; --# notpresent
<Cond, Anter, gn, p> => nie ++ zostac ! (VCondM gn p) ++ verb.ppart ! AF gn Nom --# notpresent
}; };
bedzie : Number * Person => Str = table { bedzie : Number * Person => Str = table {

View File

@@ -100,7 +100,13 @@ param
| Ger | Ger
| PPasse Gender Number Species ACase ; | PPasse Gender Number Species ACase ;
TMood = VPres Mood | VImperff | VPasse Mood | VFut | VCondit ; TMood =
VPres Mood
| VImperff --# notpresent
| VPasse Mood --# notpresent
| VFut --# notpresent
| VCondit --# notpresent
;
NumPersI = SgP2 | PlP1 | PlP2 ; NumPersI = SgP2 | PlP1 | PlP2 ;
@@ -109,7 +115,12 @@ param
| VPGerund | VPGerund
| VPInfinit Anteriority Bool ; | VPInfinit Anteriority Bool ;
RTense = RPres | RPast | RFut | RCond ; RTense =
RPres
| RPast --# notpresent
| RFut --# notpresent
| RCond --# notpresent
;
oper oper
copula : VerbPhrase = copula : VerbPhrase =
@@ -193,22 +204,23 @@ oper
in { in {
s = table { s = table {
VPFinite tm Simul => case tm of VPFinite tm Simul => case tm of
{VPres Indic => vf "" (\a -> verb ! Indi Presn a.n a.p) ; {
VPres Conjunct => vf "" (\a -> verb ! Subjo SPres a.n a.p) ; VPres Indic => vf "" (\a -> verb ! Indi Presn a.n a.p) ;
VImperff => vf "" (\a -> verb ! Indi Imparf a.n a.p) ; VPres Conjunct => vf "" (\a -> verb ! Subjo SPres a.n a.p)
VPasse Indic => vf "" (\a -> pComp ! a.n ! a.p ++ verb ! PPasse Masc Sg Indef ANomAcc) ; ; VImperff => vf "" (\a -> verb ! Indi Imparf a.n a.p) --# notpresent
VPasse Conjunct => vf "" (\a -> copula.s! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc) ; ; VPasse Indic => vf "" (\a -> pComp ! a.n ! a.p ++ verb ! PPasse Masc Sg Indef ANomAcc) ; --# notpresent
VFut => vf "" (\a -> pFut ! a.n ! a.p ++ verb ! Inf) ; VPasse Conjunct => vf "" (\a -> copula.s! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc) ; --# notpresent
VCondit => vf "" (\a -> pCond ! a.n ! a.p ++ verb ! Inf) VFut => vf "" (\a -> pFut ! a.n ! a.p ++ verb ! Inf) ; --# notpresent
VCondit => vf "" (\a -> pCond ! a.n ! a.p ++ verb ! Inf) --# notpresent
} ; } ;
VPFinite tm Anter => case tm of VPFinite tm Anter => case tm of { --# notpresent
{VPres Indic => vf "" (\a -> pComp ! a.n ! a.p ++ verb ! PPasse Masc Sg Indef ANomAcc) ; VPres Indic => vf "" (\a -> pComp ! a.n ! a.p ++ verb ! PPasse Masc Sg Indef ANomAcc) ; --# notpresent
(VPres Conjunct | VPasse Conjunct) => vf "să" (\a -> copula.s! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc) ; (VPres Conjunct | VPasse Conjunct) => vf "să" (\a -> copula.s! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc) ; --# notpresent
VFut => vf "" (\a -> pFut !a.n ! a.p ++ copula.s! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc) ; VFut => vf "" (\a -> pFut !a.n ! a.p ++ copula.s! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc) ; --# notpresent
VCondit => vf "" (\a -> pCond ! a.n ! a.p ++ copula.s ! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc); VCondit => vf "" (\a -> pCond ! a.n ! a.p ++ copula.s ! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc); --# notpresent
_ => vf "" (\a -> verb ! Indi PPerfect a.n a.p) _ => vf "" (\a -> verb ! Indi PPerfect a.n a.p) --# notpresent
}; }; --# notpresentx
VPInfinit Anter b=> vf "a" (\a -> copula.s ! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc); VPInfinit Anter b=> vf "a" (\a -> copula.s ! Inf ++ verb ! PPasse Masc Sg Indef ANomAcc); --# notpresent
VPImperat => vf "să" (\a -> verb ! Subjo SPres a.n a.p) ; -- fix it later ! VPImperat => vf "să" (\a -> verb ! Subjo SPres a.n a.p) ; -- fix it later !
VPGerund => vf "" (\a -> vger) ; VPGerund => vf "" (\a -> vger) ;
VPInfinit Simul b => vf "a" (\a -> verb ! Inf) VPInfinit Simul b => vf "a" (\a -> verb ! Inf)
@@ -506,9 +518,9 @@ oper
s = \\d,t,a,b,m => s = \\d,t,a,b,m =>
let let
tm = case t of { tm = case t of {
RPast => VPasse m ; RPast => VPasse m ; --# notpresent
RFut => VFut ; RFut => VFut ; --# notpresent
RCond => VCondit ; RCond => VCondit ; --# notpresent
RPres => VPres m RPres => VPres m
} ; } ;
cmp = case <<t,a,m> : RTense * Anteriority * Mood> of { cmp = case <<t,a,m> : RTense * Anteriority * Mood> of {

41
src/turkish/SymbolTur.gf Normal file
View File

@@ -0,0 +1,41 @@
--# -path=.:../abstract:../common
concrete SymbolTur of Symbol = CatTur ** open Prelude, ResTur in {
{- TODO!
lin
SymbPN i = {s = addGenitiveS i.s ; g = Neutr} ;
IntPN i = {s = addGenitiveS i.s ; g = Neutr} ;
FloatPN i = {s = addGenitiveS i.s ; g = Neutr} ;
NumPN i = {s = i.s ; g = Neutr} ;
CNIntNP cn i = {
s = \\c => cn.s ! Sg ! Nom ++ (addGenitiveS i.s) ! c ;
a = agrgP3 Sg cn.g
} ;
CNSymbNP det cn xs = {
s = \\c => det.s ++ cn.s ! det.n ! Nom ++ (addGenitiveS xs.s) ! c ;
a = agrgP3 det.n cn.g
} ;
CNNumNP cn i = {
s = \\c => cn.s ! Sg ! Nom ++ i.s ! c ;
a = agrgP3 Sg cn.g
} ;
SymbS sy = sy ;
SymbNum sy = { s = addGenitiveS sy.s ; n = Pl ; hasCard = True } ;
SymbOrd sy = { s = \\c => sy.s ++ (regGenitiveS "th")!c} ;
-}
lincat
Symb, [Symb] = SS ;
lin
MkSymb s = s ;
-- BaseSymb = infixSS "and" ;
ConsSymb = infixSS "," ;
}