diff options
| author | aarne <aarne@chalmers.se> | 2011-02-08 12:30:13 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2011-02-08 12:30:13 +0000 |
| commit | 3c82593fdd59cb6d8861c5a7d37faa50cddbac3b (patch) | |
| tree | 8caeca43c4770c153c2906d79fefa1b88b997bcf /examples/discourse/DiscourseFin.gf | |
| parent | 12ad869c69835d2e46304e43b8b0892e1161b7d3 (diff) | |
examples/discourse on Finnish discourse particles and their translations
Diffstat (limited to 'examples/discourse/DiscourseFin.gf')
| -rw-r--r-- | examples/discourse/DiscourseFin.gf | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/examples/discourse/DiscourseFin.gf b/examples/discourse/DiscourseFin.gf new file mode 100644 index 000000000..6c577d086 --- /dev/null +++ b/examples/discourse/DiscourseFin.gf @@ -0,0 +1,53 @@ +--# -path=.:alltenses + +concrete DiscourseFin of Discourse = + LexiconFin, + NounFin, VerbFin - [SlashV2VNP,SlashVV], + AdjectiveFin, AdverbFin, + StructuralFin - [nobody_NP,nothing_NP], + TenseX +** open SyntaxFin, (P = ParadigmsFin), (R = ParamX), Prelude in { + +lincat + Clause = {subj : NP ; vp : VP} ; + Part = Adv ; + +lin + ClauseS part temp pol cl = + mkS temp pol (mkCl (mkNP cl.subj part) cl.vp) ; + SubjKinS part temp pol cl = + mkS temp pol (mkCl (mkNP (mkNP cl.subj (kin.s ! pol.p)) part) cl.vp) ; + VerbKinS part temp pol cl = + mkS temp pol (mkCl (mkNP cl.subj part) (mkVP cl.vp (kin.s ! pol.p))) ; + AdvKinS part temp pol adv cl = + mkS temp pol (mkCl (mkNP cl.subj part) (mkVP (mkVP cl.vp adv) (kin.s ! pol.p))) ; + PreAdvS part temp pol adv cl = + mkS adv (mkS part (mkS temp pol (mkCl cl.subj cl.vp))) ; + PreAdvKinS part temp pol adv cl = + mkS adv (mkS part (mkS (kin.s ! pol.p) (mkS temp pol (mkCl cl.subj cl.vp)))) ; + PreAdvSubjKinS part temp pol adv cl = + mkS adv (mkS part (mkS temp pol (mkCl (mkNP cl.subj (kin.s ! pol.p)) cl.vp))) ; + PreAdvVerbKinS part temp pol adv cl = + mkS adv (mkS part (mkS temp pol (mkCl cl.subj (mkVP cl.vp (kin.s ! pol.p))))) ; + PreAdvAdvKinS part temp pol adv1 adv2 cl = + mkS adv1 (mkS part (mkS temp pol (mkCl cl.subj (mkVP (mkVP cl.vp adv2) (kin.s ! pol.p))))) ; + + PredClause subj v = {subj = subj ; vp = v} ; + + noPart = P.mkAdv [] ; + han_Part = P.mkAdv (glueTok "han") ; + pa_Part = P.mkAdv (glueTok "pa") ; + pas_Part = P.mkAdv (glueTok "pas") ; + ko_Part = P.mkAdv (glueTok "ko") ; + kos_Part = P.mkAdv (glueTok "kos") ; + kohan_Part = P.mkAdv (glueTok "kohan") ; + pahan_Part = P.mkAdv (glueTok "pahan") ; + + +oper + kin : {s : R.Polarity => Adv} = + {s = table {R.Pos => P.mkAdv (glueTok "kin") ; R.Neg => P.mkAdv (glueTok "kaan")}} ; + + glueTok : Str -> Str = \s -> "&+" ++ s ; + +} |
