summaryrefslogtreecommitdiff
path: root/examples/extmini/ParadigmsIta.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2012-08-24 06:30:10 +0000
committeraarne <aarne@chalmers.se>2012-08-24 06:30:10 +0000
commit2b77d3e0b05d59c9e7c5a9d50b3a850ddeed82dd (patch)
treecb40c4fda2f40d68d3ae1b16c0eae10bd7d67279 /examples/extmini/ParadigmsIta.gf
parent57b260508c2fac00c15843003154d1cdf0ad083b (diff)
extended mini resource grammar in examples, with Eng, Ita, Cmn (Mandarin Chinese by Jolene)
Diffstat (limited to 'examples/extmini/ParadigmsIta.gf')
-rw-r--r--examples/extmini/ParadigmsIta.gf64
1 files changed, 64 insertions, 0 deletions
diff --git a/examples/extmini/ParadigmsIta.gf b/examples/extmini/ParadigmsIta.gf
new file mode 100644
index 000000000..210abbc16
--- /dev/null
+++ b/examples/extmini/ParadigmsIta.gf
@@ -0,0 +1,64 @@
+resource ParadigmsIta = GrammarIta [N,A,V] **
+ open ResIta, GrammarIta, Prelude in {
+
+oper
+ masculine : Gender = Masc ;
+ feminine : Gender = Fem ;
+
+ accusative : Case = Acc ;
+ dative : Case = Dat ;
+
+ indicative : Mood = Ind ;
+ conjunctive : Mood = Con ;
+
+ mkN = overload {
+ mkN : (vino : Str) -> N
+ = \n -> lin N (regNoun n) ;
+ mkN : (uomo, uomini : Str) -> Gender -> N
+ = \s,p,g -> lin N (mkNoun s p g) ;
+ } ;
+
+ mkPN = overload {
+ mkPN : (anna : Str) -> PN
+ = \p -> let n = regNoun p in lin PN {s = p ; g = n.g} ;
+ mkPN : Str -> Gender -> PN
+ = \s,g -> lin PN {s = s ; g = g} ;
+ } ;
+
+ mkA = overload {
+ mkA : (nero : Str) -> A
+ = \a -> lin A (regAdj a) ;
+ mkA : (buono,buona,buoni,buone : Str) -> Bool -> A
+ = \sm,sf,pm,pf,p -> lin A (mkAdj sm sf pm pf False) ;
+ } ;
+
+ preA : A -> A
+ = \a -> lin A {s = a.s ; isPre = True} ;
+
+ mkV = overload {
+ mkV : (finire : Str) -> V
+ = \v -> lin V (regVerb v) ;
+ mkV : (andare,vado,vadi,va,andiamo,andate,vanno,andava,andro,vada,andassi,andato : Str) -> V
+ = \i,p1,p2,p3,p4,p5,p6,imp,fut,con,conp,p ->
+ lin V (mkVerb i p1 p2 p3 p4 p5 p6 imp fut con conp p Avere) ;
+ } ;
+
+ essereV : V -> V
+ = \v -> lin V {s = v.s ; aux = Essere} ;
+
+ mkV2 = overload {
+ mkV2 : Str -> V2
+ = \s -> lin V2 (regVerb s ** {c = accusative}) ;
+ mkV2 : V -> V2
+ = \v -> lin V2 (v ** {c = accusative}) ;
+ mkV2 : V -> Case -> V2
+ = \v,c -> lin V2 (v ** {c = c}) ;
+ } ;
+
+ mkVS : V -> Mood -> VS = \v,m ->
+ lin VS (v ** {m = m}) ;
+ mkVQ : V -> VQ = \v ->
+ lin VQ v ;
+ mkVV : V -> VV = \v ->
+ lin VV v ;
+}