mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-27 13:32:51 -06:00
gf-book web page index and toc
This commit is contained in:
36
gf-book/examples/chapter3/ResIta.gf
Normal file
36
gf-book/examples/chapter3/ResIta.gf
Normal file
@@ -0,0 +1,36 @@
|
||||
resource ResIta = open Prelude in {
|
||||
param
|
||||
Number = Sg | Pl ;
|
||||
Gender = Masc | Fem ;
|
||||
oper
|
||||
NounPhrase : Type =
|
||||
{s : Str ; g : Gender ; n : Number} ;
|
||||
Noun : Type = {s : Number => Str ; g : Gender} ;
|
||||
Adjective : Type = {s : Gender => Number => Str} ;
|
||||
|
||||
det : Number -> Str -> Str -> Noun -> NounPhrase =
|
||||
\n,m,f,cn -> {
|
||||
s = table {Masc => m ; Fem => f} ! cn.g ++
|
||||
cn.s ! n ;
|
||||
g = cn.g ;
|
||||
n = n
|
||||
} ;
|
||||
noun : Str -> Str -> Gender -> Noun =
|
||||
\vino,vini,g -> {
|
||||
s = table {Sg => vino ; Pl => vini} ;
|
||||
g = g
|
||||
} ;
|
||||
adjective : (nero,nera,neri,nere : Str) -> Adjective =
|
||||
\nero,nera,neri,nere -> {
|
||||
s = table {
|
||||
Masc => table {Sg => nero ; Pl => neri} ;
|
||||
Fem => table {Sg => nera ; Pl => nere}
|
||||
}
|
||||
} ;
|
||||
regAdj : Str -> Adjective = \nero ->
|
||||
let ner : Str = init nero
|
||||
in
|
||||
adjective nero (ner+"a") (ner+"i") (ner+"e") ;
|
||||
copula : Number => Str =
|
||||
table {Sg => "è" ; Pl => "sono"} ;
|
||||
}
|
||||
Reference in New Issue
Block a user