From 7e60a931c8c531798b73c5f802a01803f62ae881 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Thu, 25 Oct 2018 18:59:01 +0000 Subject: [PATCH] WIP: incorporate @aarneranta's comments --- src/english/ConstructionEng.gf | 63 ++++++++++---------- src/portuguese/ConstructionPor.gf | 97 ++++++++++++++++--------------- 2 files changed, 83 insertions(+), 77 deletions(-) diff --git a/src/english/ConstructionEng.gf b/src/english/ConstructionEng.gf index 6ac58f8a6..d0e6b591f 100644 --- a/src/english/ConstructionEng.gf +++ b/src/english/ConstructionEng.gf @@ -1,7 +1,7 @@ --# -path=.:../abstract concrete ConstructionEng of Construction = CatEng ** - open SyntaxEng, SymbolicEng, ParadigmsEng, (L = LexiconEng), (E = ExtendEng), (G = GrammarEng), (R = ResEng), (S = StructuralEng), Prelude in { + open SyntaxEng, SymbolicEng, ParadigmsEng, (L = LexiconEng), (E = ExtendEng), (G = GrammarEng), (R = ResEng), (Sy = SyntaxEng), (S = StructuralEng), Prelude in { lin @@ -72,45 +72,48 @@ lincat timeunitAdv n time = let n_card : Card = n ; n_hours_NP : NP = mkNP n_card time ; - in SyntaxEng.mkAdv for_Prep n_hours_NP | mkAdv (n_hours_NP.s ! R.npNom) ; + in Sy.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} ; + oneHour = mkHour "1" True ; + twoHour = mkHour "2" True ; + threeHour = mkHour "3" True ; + fourHour = mkHour "4" True ; + fiveHour = mkHour "5" True ; + sixHour = mkHour "6" True ; + sevenHour = mkHour "7" True ; + eightHour = mkHour "8" True ; + nineHour = mkHour "9" True ; + tenHour = mkHour "10" True ; + elevenHour = mkHour "11" True ; + twelveHour = mkHour "12" False ; + thirteenHour = mkHour "1" False ; + fourteenHour = mkHour "2" False ; + fifteenHour = mkHour "3" False ; + sixteenHour = mkHour "4" False ; + seventeenHour = mkHour "5" False ; + eighteenHour = mkHour "6" False ; + nineteenHour = mkHour "7" False ; + twentyHour = mkHour "8" False ; + twentyOneHour = mkHour "9" False ; + twentyTwoHour = mkHour "10" False ; + twentyThreeHour = mkHour "11" False ; + twentyFourHour = mkHour "12" True ; - timeHour h = SyntaxEng.mkAdv at_Prep (symb (hourStr h)) ; + timeHour h = Sy.mkAdv at_Prep (symb (h.s ++ ampm ! h.am)) ; 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}) ; + Sy.mkAdv at_Prep (symb (h.s ++ min ++ ampm ! h.am)) ; oper + mkHour : Str -> Bool -> {s : Str ; am : Bool} ; + mkHour n am = Sy.mkUtt (Sy.mkCard n) ** {am = am} ; + at_Prep : Prep ; at_Prep = mkPrep "at" ; - hourStr : Hour -> Str ; - hourStr h = h.s ++ ("" | "o'clock" | if_then_Str h.am "AM" "PM") ; + ampm : Bool => Str ; + ampm = table {True => "a.m." ; False => "p.m."} ; lin weekdayPunctualAdv w = SyntaxEng.mkAdv on_Prep (mkNP w) ; -- on Sunday diff --git a/src/portuguese/ConstructionPor.gf b/src/portuguese/ConstructionPor.gf index 1bdf87b5d..48ab43d0b 100644 --- a/src/portuguese/ConstructionPor.gf +++ b/src/portuguese/ConstructionPor.gf @@ -64,60 +64,63 @@ lin oper noPrep : Prep = mkPrep [] ; - lin - timeunitAdv n time = - let n_card : Card = lin Card n; - 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) ; + -- lin + -- timeunitAdv n time = + -- let n_card : Card = lin Card n; + -- 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) ; - 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} ; + -- oneHour = mkHour "1" Manhã Sg ; + -- twoHour = mkHour "2" Manhã Pl ; + -- threeHour = mkHour "3" Manhã Pl ; + -- fourHour = mkHour "4" Manhã Pl ; + -- fiveHour = mkHour "5" Manhã Pl ; + -- sixHour = mkHour "6" Manhã Pl ; + -- sevenHour = mkHour "7" Manhã Pl ; + -- eightHour = mkHour "8" Manhã Pl ; + -- nineHour = mkHour "9" Manhã Pl ; + -- tenHour = mkHour "10" Manhã Pl ; + -- elevenHour = mkHour "11" Manhã Pl ; + -- twelveHour = mkHour "12" Tarde Pl ; + -- thirteenHour = mkHour "13" Tarde Sg ; + -- fourteenHour = mkHour "14" Tarde Pl ; + -- fifteenHour = mkHour "15" Tarde Pl ; + -- sixteenHour = mkHour "16" Tarde Pl ; + -- seventeenHour = mkHour "17" Noite Pl ; + -- eighteenHour = mkHour "18" Noite Pl ; + -- nineteenHour = mkHour "19" Noite Pl ; + -- twentyHour = mkHour "20" Noite Pl ; + -- twentyOneHour = mkHour "21" Noite Pl ; + -- twentyTwoHour = mkHour "22" Noite Pl ; + -- twentyThreeHour = mkHour "23" Noite Pl ; + -- twentyFourHour = mkHour "meia-noite" ; pe = Manhã ; n = Sg} ; - timeHour h = mkAdv (hourStr h) ; + -- 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}) ; + -- 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" - } ; + -- oper + -- mkHour : Str -> Period -> Number ; + -- mkHour num p n = S.mkUtt (S.mkCard num) ** {p = p ; n = n} ; + + -- period : Period => Str ; + -- period = table { + -- Manhã => "da manhã" ; + -- Tarde => "da tarde" ; + -- Noite => "da noite" + -- } ; - a : Number => Str ; - a = numForms "à" "às" ; + -- a : Number => Str ; + -- a = numForms "à" "às" ; - hora : Number => Str ; - hora = numForms "hora" "horas" ; + -- 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} ; + -- 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