forked from GitHub/gf-core
Karin C's example
This commit is contained in:
130
grammars/video/Time/time.Eng.gf
Normal file
130
grammars/video/Time/time.Eng.gf
Normal file
@@ -0,0 +1,130 @@
|
||||
-- Time grammar English
|
||||
|
||||
include time.Abs.gf ;
|
||||
|
||||
|
||||
lin
|
||||
hour0 = {s = refs ["null null"] (variants {["midnight"];["twelve"]}) "one"} ;
|
||||
hour1 = {s = refs "one" (variants {["one"];["one a.m"]}) "two"} ;
|
||||
hour2 = {s = refs "two" (variants {["two"];["two a.m"]}) "three"} ;
|
||||
hour3 = {s = refs "three" (variants {["three"];["three a.m"]}) "four"} ;
|
||||
hour4 = {s = refs "four" (variants {["four"];["four a.m"]}) "five"} ;
|
||||
hour5 = {s = refs "five" (variants {["five"];["five a.m"]}) "six"} ;
|
||||
hour6 = {s = refs "six" (variants {["six"];["six a.m"]}) "seven"} ;
|
||||
hour7 = {s = refs "seven" (variants {["seven"];["seven a.m"]}) "eight"} ;
|
||||
hour8 = {s = refs "eight" (variants {["eight"];["eight a.m"]}) "nine"} ;
|
||||
hour9 = {s = refs "nine" (variants {["nine"];["nine a.m"]}) "ten"} ;
|
||||
hour10 = {s = refs "ten" (variants {["ten"];["ten a.m"]}) "eleven"} ;
|
||||
hour11 = {s = refs "eleven" (variants {["eleven"];["eleven a.m"]}) "twelve"} ;
|
||||
hour12 = {s = refs "twelve" (variants {["twelve"];["twelve a.m"]}) "one" } ;
|
||||
hour13 = {s = refs "thirten" (variants {["one"];["one p.m"]}) "two" };
|
||||
hour14 = {s = refs "fourteen" (variants {["two"];["two p.m"]}) "three" } ;
|
||||
hour15 = {s = refs "fifteen" (variants {["three"];["three p.m"]}) "four" } ;
|
||||
hour16 = {s = refs "sixteen" (variants {["four"];["four p.m"]}) "five" } ;
|
||||
hour17 = {s = refs "seventeen" (variants {["five"];["five p.m"]}) "six" } ;
|
||||
hour18 = {s = refs "eighteen" (variants {["six"];["six p.m"]}) "seven" } ;
|
||||
hour19 = {s = refs "nineteen" (variants {["seven"];["seven p.m"]}) "eight" } ;
|
||||
hour20 = {s = refs "twenty" (variants {["eight"];["eight p.m"]}) "nine" } ;
|
||||
hour21 = {s = refs ["twenty one"] (variants {["nine"];["nine p.m"]}) "eight" } ;
|
||||
hour22 = {s = refs ["twenty two"] (variants {["ten"];["ten p.m"]}) "eleven" } ;
|
||||
hour23 = {s = refs ["twenty three"] (variants {["eleven"]}) (variants {["midnight"];["twelve"]})} ;
|
||||
|
||||
|
||||
lin
|
||||
|
||||
minute0 = {s = mins (variants {["o'clock"];["sharp"];["hundred hours"]}) (variants{[""]}) (variants{})};
|
||||
minute1 = {s = mins ["oh one"] (variants{["one minute past"];["one past"]}) (variants{})};
|
||||
minute2 = {s = mins ["oh two"] (variants{["two minutes past"];["two past"]}) (variants{})};
|
||||
minute3 = {s = mins ["oh three"] (variants{["three minutes past"];["three past"]}) (variants{})};
|
||||
minute4 = {s = mins ["oh four"] (variants{["four minutes past"];["four past"]}) (variants{})};
|
||||
minute5 = {s = mins ["oh five"] (variants{["five minutes past"];["five past"]}) (variants{})};
|
||||
minute6 = {s = mins ["oh six"] (variants{["six minutes past"];["six past"]}) (variants{})};
|
||||
minute7 = {s = mins ["oh seven"] (variants{["seven minutes past"];["seven past"]}) (variants{})};
|
||||
minute8 = {s = mins ["oh eight"] (variants{["eight minutes past"];["eight past"]}) (variants{})};
|
||||
minute9 = {s = mins ["oh nine"] (variants{["nine minutes past"];["nine past"]}) (variants{})};
|
||||
|
||||
minute10 = {s = mins ["ten"] (variants{["ten minutes past"];["ten past"]}) (variants{})};
|
||||
minute11 = {s = mins ["eleven"] (variants{["eleven minutes past"];["eleven past"]}) (variants{})};
|
||||
minute12 = {s = mins ["twelve"] (variants{["twelve minutes past"];["twelve past"]}) (variants{})};
|
||||
minute13 = {s = mins ["thirteen"] (variants{["thirteen minutes past"];["thirteen past"]}) (variants{})};
|
||||
minute14 = {s = mins ["fourteen"] (variants{["fourteen minutes past"];["fourteen past"]}) (variants{})};
|
||||
minute15 = {s = mins ["fifteen"] (variants{["fifteen minutes past"];["fifteen past"];["quarter past"];["a quarter past"]}) (variants{})};
|
||||
minute16 = {s = mins ["sixteen"] (variants{["sixteen minutes past"];["sixteen past"]}) (variants{})};
|
||||
minute17 = {s = mins ["seventeen"] (variants{["seventeen minutes past"];["seventeen past"]}) (variants{})};
|
||||
minute18 = {s = mins ["eightteen"] (variants{["eighteen minutes past"];["eighteen past"]}) (variants{})};
|
||||
minute19 = {s = mins ["nineteen"] (variants{["nineteen minutes past"];["nineteen past"]}) (variants{})};
|
||||
|
||||
minute20 = {s = mins ["twenty"] (variants{["twenty minutes past"];["twenty past"]}) (variants{})};
|
||||
minute21 = {s = mins ["twenty one"] (variants{["twenty one minutes past"];["twenty one past"]}) (variants{})};
|
||||
minute22 = {s = mins ["twenty two"] (variants{["twenty two minutes past"];["twenty two past"]}) (variants{})};
|
||||
minute23 = {s = mins ["twenty three"] (variants{["twenty three minutes past"];["twenty three past"]}) (variants{})};
|
||||
minute24 = {s = mins ["twenty four"] (variants{["twenty four minutes past"];["twenty four past"]}) (variants{})};
|
||||
minute25 = {s = mins ["twenty five"] (variants{["twenty five minutes past"];["twenty two five past"]}) (variants{})};
|
||||
minute26 = {s = mins ["twenty six"] (variants{["twenty six minutes past"];["twenty six past"]}) (variants{})};
|
||||
minute27 = {s = mins ["twenty seven"] (variants{["twenty seven minutes past"];["twenty seven past"]}) (variants{})};
|
||||
minute28 = {s = mins ["twenty eight"] (variants{["twenty eight minutes past"];["twenty eight past"]}) (variants{})};
|
||||
minute29 = {s = mins ["twenty nine"] (variants{["twenty nine minutes past"];["twenty nine past"]}) (variants{})};
|
||||
|
||||
minute30 = {s = mins ["thirty"] (variants{["thirty minutes past"];["thirty past"];["half past"]}) (variants{})};
|
||||
|
||||
minute31 = {s = mins ["thirty one"] (variants{["one minute past half past????"]}) (variants{["twenty nine minutes to"];["twenty nine to"]})};
|
||||
minute32 = {s = mins ["thirty two"] (variants{}) (variants{["twenty eight minutes to"];["twenty eight to"]})};
|
||||
minute33 = {s = mins ["thirty three"] (variants{}) (variants{["twenty seven minutes to"];["twenty seven to"]})};
|
||||
minute34 = {s = mins ["thirty four"] (variants{}) (variants{["twenty six minutes to"];["twenty six to"]})};
|
||||
minute35 = {s = mins ["thirty five"] (variants{}) (variants{["twenty five minutes to"];["twenty five to"]})};
|
||||
minute36 = {s = mins ["thirty six"] (variants{}) (variants{["twenty four minutes to"];["twenty four to"]})};
|
||||
minute37 = {s = mins ["thirty seven"] (variants{}) (variants{["twenty three minutes to"];["twenty three to"]})};
|
||||
minute38 = {s = mins ["thirty eight"] (variants{}) (variants{["twenty two minutes to"];["twenty two to"]})};
|
||||
minute39 = {s = mins ["thirty nine"] (variants{}) (variants{["twenty one minutes to"];["twenty one to"]})};
|
||||
minute40 = {s = mins ["fourty"] (variants{}) (variants{["twenty minutes to"];["twenty to"]})};
|
||||
|
||||
minute41 = {s = mins ["fourty one"] (variants{}) (variants{["nineteen minutes to"];["nineteen to"]})};
|
||||
minute42 = {s = mins ["fourty two"] (variants{}) (variants{["eightteen minutes to"];["eightteen to"]})};
|
||||
minute43 = {s = mins ["fourty three"] (variants{}) (variants{["seventeen minutes to"];["seventeen to"]})};
|
||||
minute44 = {s = mins ["fourty four"] (variants{}) (variants{["sixteen minutes to"];["sixteen to"]})};
|
||||
minute45 = {s = mins ["fourty five"] (variants{["three quarters past???"]}) (variants{["fifteen minutes to"];["fifteen to"]})};
|
||||
minute46 = {s = mins ["fourty six"] (variants{}) (variants{["fourteen minutes to"];["fourteen to"]})};
|
||||
minute47 = {s = mins ["fourty seven"] (variants{}) (variants{["thirteen minutes to"];["thirteen to"]})};
|
||||
minute48 = {s = mins ["fourty eight"] (variants{}) (variants{["twelve minutes to"];["twelve to"]})};
|
||||
minute49 = {s = mins ["fourty nine"] (variants{}) (variants{["eleven minutes to"];["eleven to"]})};
|
||||
minute50 = {s = mins ["fifty"] (variants{}) (variants{["ten minutes to"];["ten to"]})};
|
||||
|
||||
minute51 = {s = mins ["fifty one"] (variants{}) (variants{["nine minutes to"];["nine to"]})};
|
||||
minute52 = {s = mins ["fifty two"] (variants{}) (variants{["eight minutes to"];["eight to"]})};
|
||||
minute53 = {s = mins ["fifty three"] (variants{}) (variants{["seven minutes to"];["seven to"]})};
|
||||
minute54 = {s = mins ["fifty four"] (variants{}) (variants{["six minutes to"];["six to"]})};
|
||||
minute55 = {s = mins ["fifty five"] (variants{}) (variants{["five minutes to"];["five to"]})};
|
||||
minute56 = {s = mins ["fifty six"] (variants{}) (variants{["four minutes to"];["four to"]})};
|
||||
minute57 = {s = mins ["fifty seven"] (variants{}) (variants{["three minutes to"];["three to"]})};
|
||||
minute58 = {s = mins ["fifty eight"] (variants{}) (variants{["two minutes to"];["two to"]})};
|
||||
minute59 = {s = mins ["fifty nine"] (variants{}) (variants{["one minute to"];["one to"]})};
|
||||
|
||||
|
||||
param RefHour = ThisFormal | ThisLex | NextLex ;
|
||||
oper refs : Str -> Str -> Str -> RefHour => Str =
|
||||
\x,y,z -> table {ThisFormal => x ; ThisLex => y ; NextLex => z } ;
|
||||
|
||||
lincat Hour = {s : RefHour => Str} ;
|
||||
lincat Minute = {s : MinMin => Str} ;
|
||||
|
||||
param MinMin = Form | Past | To ;
|
||||
oper mins : Str -> Str -> Str -> MinMin => Str = \x,y,z -> table {Form => x ; Past => y ; To => z } ;
|
||||
--oper mins : Str -> Str -> Str -> MinMin => Str = \x,y,z -> table {Form => x ; Past => y ; To => z } ;
|
||||
-- jag vill ha en variantsexpanderare, tänk tänk
|
||||
--oper mins : Str -> Str -> Str -> MinMin => Str = \x,y,z -> table {Form => (variants{x}) ; Past => (variants{y}) ; To => (variants{z}) } ;
|
||||
-- Time expressions
|
||||
lin
|
||||
|
||||
--timeFormal h m = {s = h.s ! ThisFormal ++ m.s ! Form} ;
|
||||
--timeInformal h m = {s = variants {
|
||||
--m.s ! Past ++ h.s ! ThisLex ;
|
||||
--m.s ! To ++ h.s ! NextLex
|
||||
--}
|
||||
--};
|
||||
|
||||
time h m = {s = variants {
|
||||
h.s ! ThisFormal ++ m.s ! Form ;
|
||||
m.s ! Past ++ h.s ! ThisLex ;
|
||||
m.s ! To ++ h.s ! NextLex
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user