forked from GitHub/gf-rgl
(Construction{Eng,Por}) add timeHour and timeHourMinute
This commit is contained in:
@@ -71,6 +71,7 @@ fun
|
|||||||
|
|
||||||
cat
|
cat
|
||||||
Timeunit ;
|
Timeunit ;
|
||||||
|
Hour ;
|
||||||
Weekday ;
|
Weekday ;
|
||||||
Month ;
|
Month ;
|
||||||
Monthday ;
|
Monthday ;
|
||||||
@@ -79,6 +80,34 @@ cat
|
|||||||
fun
|
fun
|
||||||
timeunitAdv : Card -> Timeunit -> Adv ; -- (for) three hours
|
timeunitAdv : Card -> Timeunit -> Adv ; -- (for) three hours
|
||||||
|
|
||||||
|
oneHour : Hour ;
|
||||||
|
twoHour : Hour ;
|
||||||
|
threeHour : Hour ;
|
||||||
|
fourHour : Hour ;
|
||||||
|
fiveHour : Hour ;
|
||||||
|
sixHour : Hour ;
|
||||||
|
sevenHour : Hour ;
|
||||||
|
eightHour : Hour ;
|
||||||
|
nineHour : Hour ;
|
||||||
|
tenHour : Hour ;
|
||||||
|
elevenHour : Hour ;
|
||||||
|
twelveHour : Hour ;
|
||||||
|
thirteenHour : Hour ;
|
||||||
|
fourteenHour : Hour ;
|
||||||
|
fifteenHour : Hour ;
|
||||||
|
sixteenHour : Hour ;
|
||||||
|
seventeenHour : Hour ;
|
||||||
|
eighteenHour : Hour ;
|
||||||
|
nineteenHour : Hour ;
|
||||||
|
twentyHour : Hour ;
|
||||||
|
twentyOneHour : Hour ;
|
||||||
|
twentyTwoHour : Hour ;
|
||||||
|
twentyThreeHour : Hour ;
|
||||||
|
twentyFourHour : Hour ;
|
||||||
|
|
||||||
|
timeHour : Hour -> Adv ; -- at three (o'clock / am / pm)
|
||||||
|
timeHourMinute : Hour -> Card -> Adv ; -- at forty past six
|
||||||
|
|
||||||
weekdayPunctualAdv : Weekday -> Adv ; -- on Monday
|
weekdayPunctualAdv : Weekday -> Adv ; -- on Monday
|
||||||
weekdayHabitualAdv : Weekday -> Adv ; -- on Mondays
|
weekdayHabitualAdv : Weekday -> Adv ; -- on Mondays
|
||||||
weekdayLastAdv : Weekday -> Adv ; -- last Monday
|
weekdayLastAdv : Weekday -> Adv ; -- last Monday
|
||||||
|
|||||||
@@ -62,16 +62,57 @@ oper from_where_IAdv : IAdv = lin IAdv (ss "from where") ;
|
|||||||
|
|
||||||
lincat
|
lincat
|
||||||
Timeunit = N ;
|
Timeunit = N ;
|
||||||
|
Hour = {s : Str ; am : Bool} ;
|
||||||
Weekday = N ;
|
Weekday = N ;
|
||||||
Monthday = NP ;
|
Monthday = NP ;
|
||||||
Month = N ;
|
Month = N ;
|
||||||
Year = NP ;
|
Year = NP ;
|
||||||
lin
|
|
||||||
|
lin
|
||||||
timeunitAdv n time =
|
timeunitAdv n time =
|
||||||
let n_card : Card = n ;
|
let n_card : Card = n ;
|
||||||
n_hours_NP : NP = mkNP n_card time ;
|
n_hours_NP : NP = mkNP n_card time ;
|
||||||
in SyntaxEng.mkAdv for_Prep n_hours_NP | mkAdv (n_hours_NP.s ! R.npNom) ;
|
in SyntaxEng.mkAdv for_Prep n_hours_NP | mkAdv (n_hours_NP.s ! R.npNom) ;
|
||||||
|
|
||||||
|
oneHour = {s = "one" ; am = True} ;
|
||||||
|
twoHour = {s = "two" ; am = True} ;
|
||||||
|
threeHour = {s = "three" ; am = True} ;
|
||||||
|
fourHour = {s = "four" ; am = True} ;
|
||||||
|
fiveHour = {s = "five" ; am = True} ;
|
||||||
|
sixHour = {s = "six" ; am = True} ;
|
||||||
|
sevenHour = {s = "seven" ; am = True} ;
|
||||||
|
eightHour = {s = "eight" ; am = True} ;
|
||||||
|
nineHour = {s = "nine" ; am = True} ;
|
||||||
|
tenHour = {s = "ten" ; am = True} ;
|
||||||
|
elevenHour = {s = "eleven" ; am = True} ;
|
||||||
|
twelveHour = {s = "twelve" ; am = False} ;
|
||||||
|
thirteenHour = {s = "one" ; am = False} ;
|
||||||
|
fourteenHour = {s = "two" ; am = False} ;
|
||||||
|
fifteenHour = {s = "three" ; am = False} ;
|
||||||
|
sixteenHour = {s = "four" ; am = False} ;
|
||||||
|
seventeenHour = {s = "five" ; am = False} ;
|
||||||
|
eighteenHour = {s = "six" ; am = False} ;
|
||||||
|
nineteenHour = {s = "seven" ; am = False} ;
|
||||||
|
twentyHour = {s = "eight" ; am = False} ;
|
||||||
|
twentyOneHour = {s = "nine" ; am = False} ;
|
||||||
|
twentyTwoHour = {s = "ten" ; am = False} ;
|
||||||
|
twentyThreeHour = {s = "eleven" ; am = False} ;
|
||||||
|
twentyFourHour = {s = "twelve" ; am = True} ;
|
||||||
|
|
||||||
|
timeHour h = SyntaxEng.mkAdv at_Prep (symb (hourStr h)) ;
|
||||||
|
timeHourMinute h m = let
|
||||||
|
min = m.s ! True ! R.Nom
|
||||||
|
in
|
||||||
|
mkAdv (variants {at_Prep.s ++ h.s ++ min ; at_Prep.s ++ min ++ "past" ++ h.s}) ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
at_Prep : Prep ;
|
||||||
|
at_Prep = mkPrep "at" ;
|
||||||
|
|
||||||
|
hourStr : Hour -> Str ;
|
||||||
|
hourStr h = h.s ++ ("" | "o'clock" | if_then_Str h.am "AM" "PM") ;
|
||||||
|
|
||||||
|
lin
|
||||||
weekdayPunctualAdv w = SyntaxEng.mkAdv on_Prep (mkNP w) ; -- on Sunday
|
weekdayPunctualAdv w = SyntaxEng.mkAdv on_Prep (mkNP w) ; -- on Sunday
|
||||||
weekdayHabitualAdv w = SyntaxEng.mkAdv on_Prep (mkNP aPl_Det w) ; -- on Sundays
|
weekdayHabitualAdv w = SyntaxEng.mkAdv on_Prep (mkNP aPl_Det w) ; -- on Sundays
|
||||||
weekdayNextAdv w = SyntaxEng.mkAdv (mkPrep "next") (mkNP w) ; -- next Sunday
|
weekdayNextAdv w = SyntaxEng.mkAdv (mkPrep "next") (mkNP w) ; -- next Sunday
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
concrete ConstructionPor of Construction = CatPor **
|
concrete ConstructionPor of Construction = CatPor **
|
||||||
open SyntaxPor, SymbolicPor, ParadigmsPor, BeschPor,
|
open SyntaxPor, SymbolicPor, ParadigmsPor, BeschPor,
|
||||||
(L = LexiconPor), (E = ExtraPor), (B = IrregBeschPor), (R = ResPor),
|
(L = LexiconPor), (E = ExtraPor), (B = IrregBeschPor), (R = ResPor),
|
||||||
(S = SyntaxPor), (C = CommonRomance),
|
(S = SyntaxPor), (C = CommonRomance), CommonRomance,
|
||||||
Prelude in {
|
Prelude in {
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
|
|
||||||
@@ -52,11 +52,16 @@ lin
|
|||||||
|
|
||||||
lincat
|
lincat
|
||||||
Timeunit = N ;
|
Timeunit = N ;
|
||||||
|
Hour = {s : Str ; pe : Period ; n : Number} ;
|
||||||
Weekday = N ;
|
Weekday = N ;
|
||||||
Monthday = NP ;
|
Monthday = NP ;
|
||||||
Month = N ;
|
Month = N ;
|
||||||
Year = NP ;
|
Year = NP ;
|
||||||
oper
|
|
||||||
|
param
|
||||||
|
Period = Manhã | Tarde | Noite ;
|
||||||
|
|
||||||
|
oper
|
||||||
noPrep : Prep = mkPrep [] ;
|
noPrep : Prep = mkPrep [] ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
@@ -65,6 +70,56 @@ oper
|
|||||||
n_hours_NP : NP = mkNP n_card time ;
|
n_hours_NP : NP = mkNP n_card time ;
|
||||||
in S.mkAdv for_Prep n_hours_NP | S.mkAdv to_Prep n_hours_NP ;--| S.mkAdv (n_hours_NP.s ! R.Nom) ;
|
in S.mkAdv for_Prep n_hours_NP | S.mkAdv to_Prep n_hours_NP ;--| S.mkAdv (n_hours_NP.s ! R.Nom) ;
|
||||||
|
|
||||||
|
oneHour = {s = "uma"; pe = Manhã ; n = Sg} ;
|
||||||
|
twoHour = {s = "duas" ; pe = Manhã ; n = Pl} ;
|
||||||
|
threeHour = {s = "três" ; pe = Manhã ; n = Pl} ;
|
||||||
|
fourHour = {s = "quatro" ; pe = Manhã ; n = Pl} ;
|
||||||
|
fiveHour = {s = "cinco" ; pe = Manhã ; n = Pl} ;
|
||||||
|
sixHour = {s = "seis" ; pe = Manhã ; n = Pl} ;
|
||||||
|
sevenHour = {s = "sete" ; pe = Manhã ; n = Pl} ;
|
||||||
|
eightHour = {s = "oito" ; pe = Manhã ; n = Pl} ;
|
||||||
|
nineHour = {s = "nove" ; pe = Manhã ; n = Pl} ;
|
||||||
|
tenHour = {s = "dez" ; pe = Manhã ; n = Pl} ;
|
||||||
|
elevenHour = {s = "onze" ; pe = Manhã ; n = Pl} ;
|
||||||
|
twelveHour = {s = "doze" ; pe = Tarde ; n = Pl} ;
|
||||||
|
thirteenHour = {s = "uma" ; pe = Tarde ; n = Sg } | {s = "treze" ; pe = Tarde ; n = Pl} ;
|
||||||
|
fourteenHour = {s = "duas" | "catorze" ; pe = Tarde ; n = Pl} ;
|
||||||
|
fifteenHour = {s = "três" | "quinze" ; pe = Tarde ; n = Pl} ;
|
||||||
|
sixteenHour = {s = "quatro" | "dezesseis" ; pe = Tarde ; n = Pl} ;
|
||||||
|
seventeenHour = {s = "cinco" | "dezessete" ; pe = Noite ; n = Pl} ;
|
||||||
|
eighteenHour = {s = "seis" | "dezoito" ; pe = Noite ; n = Pl} ;
|
||||||
|
nineteenHour = {s = "sete" | "dezenove" ; pe = Noite ; n = Pl} ;
|
||||||
|
twentyHour = {s = "oito" | "vinte" ; pe = Noite ; n = Pl} ;
|
||||||
|
twentyOneHour = {s = "nove" | "vinte e uma" ; pe = Noite ; n = Pl} ;
|
||||||
|
twentyTwoHour = {s = "dez" | "vinte e duas" ; pe = Noite ; n = Pl} ;
|
||||||
|
twentyThreeHour = {s = "onze" | "vinte e três" ; pe = Noite ; n = Pl} ;
|
||||||
|
twentyFourHour = {s = "zero" ; pe = Manhã ; n = Pl} | {s = "meia-noite" ; pe = Manhã ; n = Sg} ;
|
||||||
|
|
||||||
|
timeHour h = mkAdv (hourStr h) ;
|
||||||
|
|
||||||
|
timeHourMinute h m = let
|
||||||
|
min = m.s ! Masc ++ variants {"" ; numForms "minuto" "minutos" ! m.n}
|
||||||
|
in
|
||||||
|
mkAdv (a ! h.n ++ h.s ++ (hora ! h.n | "") ++ "e" ++ min ++ variants {"" ; period ! h.pe}) ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
period : Period => Str ;
|
||||||
|
period = table {
|
||||||
|
Manhã => "da manhã" ;
|
||||||
|
Tarde => "da tarde" ;
|
||||||
|
Noite => "da noite"
|
||||||
|
} ;
|
||||||
|
|
||||||
|
a : Number => Str ;
|
||||||
|
a = numForms "à" "às" ;
|
||||||
|
|
||||||
|
hora : Number => Str ;
|
||||||
|
hora = numForms "hora" "horas" ;
|
||||||
|
|
||||||
|
hourStr : Hour -> Str ;
|
||||||
|
hourStr h = a ! h.n ++ h.s ++ variants {"" ; ("" | hora ! h.n) ++ period ! h.pe ; hora ! h.n} ;
|
||||||
|
|
||||||
|
lin
|
||||||
weekdayPunctualAdv w = lin Adv {s = w.s ! C.Sg} ; -- lundi
|
weekdayPunctualAdv w = lin Adv {s = w.s ! C.Sg} ; -- lundi
|
||||||
weekdayHabitualAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det w) ; -- il lunedí ----
|
weekdayHabitualAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det w) ; -- il lunedí ----
|
||||||
weekdayLastAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det (mkCN (mkA "passado") w)) ; -- il lunedí scorso
|
weekdayLastAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det (mkCN (mkA "passado") w)) ; -- il lunedí scorso
|
||||||
|
|||||||
Reference in New Issue
Block a user