diff options
| author | aarne <unknown> | 2004-09-16 14:47:18 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2004-09-16 14:47:18 +0000 |
| commit | ecc132dccfc7617ed413f21ee37539475081f8ec (patch) | |
| tree | f6fe589eb3881e36b9a94d36aaba49fe4d4087e4 /grammars/video/Time | |
| parent | 7769d0fb00a34fb4499017a4aec01a59246b69a1 (diff) | |
Karin C's example
Diffstat (limited to 'grammars/video/Time')
| -rw-r--r-- | grammars/video/Time/time.Catalan.gf | 135 | ||||
| -rw-r--r-- | grammars/video/Time/time.Eng.gf | 130 | ||||
| -rw-r--r-- | grammars/video/Time/time.Prolog.gf | 110 | ||||
| -rw-r--r-- | grammars/video/Time/time.Symb.gf | 127 | ||||
| -rw-r--r-- | grammars/video/Time/time.gf | 106 | ||||
| -rw-r--r-- | grammars/video/Time/timeProlog.gf | 103 | ||||
| -rw-r--r-- | grammars/video/Time/timeResSwe.gf | 7 | ||||
| -rw-r--r-- | grammars/video/Time/timeSwe.gf | 149 |
8 files changed, 867 insertions, 0 deletions
diff --git a/grammars/video/Time/time.Catalan.gf b/grammars/video/Time/time.Catalan.gf new file mode 100644 index 000000000..b987486cb --- /dev/null +++ b/grammars/video/Time/time.Catalan.gf @@ -0,0 +1,135 @@ +-- Time grammar Catalan + +include time.Abs.gf ; + +lin + +hour0 = {s = refs "dotze" "una"} ; +hour1 = {s = refs ["la una"] "dues"} ; +hour2 = {s = refs "dues" "tres"} ; +hour3 = {s = refs "tres" "quatre"} ; +hour4 = {s = refs "quatre" "cinc"} ; +hour5 = {s = refs "cinc" "sis"} ; +hour6 = {s = refs "sis" "set"} ; +hour7 = {s = refs "set" "vuit"} ; +hour8 = {s = refs "vuit" "nou"} ; +hour9 = {s = refs "nou" "deu"} ; +hour10 = {s = refs "deu" "onze"} ; +hour11 = {s = refs "onze" "dotze"} ; +hour12 = {s = refs "dotze" "una" } ; +hour13 = {s = refs "tretze" "dues" }; +hour14 = {s = refs "catorze" "tres" }; +hour15 = {s = refs "quinze" "quatre" }; +hour16 = {s = refs "setze" "cinc" }; +hour17 = {s = refs "disset" "sis" }; +hour18 = {s = refs "divuit" "set" }; +hour19 = {s = refs "dinou" "vuit" } ; +hour20 = {s = refs "vint" "nou" } ; +hour21 = {s = refs "vintiun_a" "deu" } ; +hour22 = {s = refs "vintidues_dos" "onze" } ; +hour23 = {s = refs "vintitres" "dotze" }; + +pattern +--Minutes +minute0 = "zero" ; +minute1 = "una" ; +minute2 = "dues" ; +minute3 = "tres" ; +minute4 = "quatre" ; +minute5 = "cinc" ; +minute6 = "sis" ; +minute7 = "set" ; +minute8 = "vuit" ; +minute9 = "nou" ; +minute10 = "deu" ; +minute11 = "onze" ; +minute12 = "dotze" ; +minute13 = "tretze" ; +minute14 = "catorze" ; +minute15 = "quinze" ; +minute16 = "setze" ; +minute17 = "disset" ; +minute18 = "divuit" ; +minute19 = "dinou" ; +minute20 = "vint" ; +minute21 = "vintiun_a" ; +minute22 = "vintidues_dos" ; +minute23 = "vintitres" ; +minute24 = "vintiquatre" ; +minute25 = "vinticinc" ; +minute26 = "vintisis" ; +minute27 = "vintiset" ; +minute28 = "vintivuit" ; +minute29 = "vintinou" ; +minute30 = "trenta" ; +minute31 = "trentauna" ; +minute32 = "trentadues" ; +minute33 = "trentatres" ; +minute34 = "trentaquatre" ; +minute35 = "trentacinc" ; +minute36 = "trentasis" ; +minute37 = "trentaset" ; +minute38 = "trentavuit" ; +minute39 = "trentanou" ; +minute40 = "quaranta" ; +minute41 = "quarantauna" ; +minute42 = "quarantadues" ; +minute43 = "quarantatres" ; +minute44 = "quarantaquatre" ; +minute45 = "quarantacinc" ; +minute46 = "quarantasis" ; +minute47 = "quarantaset" ; +minute48 = "quarantavuit" ; +minute49 = "quarantanou" ; +minute50 = "cinquenta" ; +minute51 = "cinquentauna" ; +minute52 = "cinquentadues" ; +minute53 = "cinquentatres" ; +minute54 = "cinquentaquatre" ; +minute55 = "cinquentacinc" ; +minute56 = "cinquentasis" ; +minute57 = "cinquentaset" ; +minute58 = "cinquentavuit" ; +minute59 = "cinquentanou" ; + +-- LexMinuteZero +minuteZero = [] ; + +-- LexMinute +minuteQuarter = "un" ++ "quart" ++ "de"; +minuteFive = "mig" ++ "quart" ++ "de"; +minuteTen = "cinc" ++ "minuts" ++ "per" ++ "a" ++ "un" ++ "quart" ++ "de"; +minuteTwenty = "un" ++ "quart" ++ "i" ++ "cinc" ++ "de"; + +-- LexMinuteHalfFive +minuteTwentyFive = "un" ++ "quart" ++ "i" ++ "deu" ++ "de"; +minuteThirtyFive = "dos" ++ "quarts" ++ "i" ++ "cinc" ++ "de"; + +-- LexMinuteTo +minuteQuarterTo = "tres" ++ "quarts" ++ "de" ; +minuteFiveTo = "tres" ++ "quarts" ++ "i" ++ "deu" ++ "de"; +--minuteFiveTo = "cinc" ++ "minuts" ++ "per" ++ "a" ; +minuteTenTo = "tres" ++ "quarts" ++ "i" ++ "cinc" ++ "de"; +minuteTwentyTo = "dos" ++ "quarts" ++ "i" ++ "deu" ++ "de"; +--minuteTwentyTo = "cinc" ++ "minuts" ++ "per" ++ "a" ++ "tres" ++ "quarts" ++ "de"; + +-- LexMinuteHalf +minuteHalf = "dos" ++ "quarts" ; + +-- Creates tables for each hour, consisting of +-- Present hour - Formal, Next hour informal, +-- (in catalan of the n:nd hour) +param RefHour = ThisFormal | NextLex ; +oper refs : Str -> Str -> RefHour => Str = + \x,y -> table {ThisFormal => x ; NextLex => y } ; + +lincat Hour = {s : RefHour => Str} ; + +lin +time h m = {s = h.s ! ThisFormal ++ "i" ++ m.s} ; +timeOnTheHour h m = {s = h.s ! ThisFormal ++ m.s } ; +timePast h m = {s = m.s ++ h.s ! NextLex} ; +timeTo h m = {s = m.s ++ h.s ! NextLex } ; +timeHalf h m = {s = m.s ++ h.s ! NextLex } ; +timeFiveToHalf h m = {s = m.s ++ h.s ! NextLex } ; +timeFivePastHalf h m = {s = m.s ++ h.s ! NextLex } ;
\ No newline at end of file diff --git a/grammars/video/Time/time.Eng.gf b/grammars/video/Time/time.Eng.gf new file mode 100644 index 000000000..04ee13c95 --- /dev/null +++ b/grammars/video/Time/time.Eng.gf @@ -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 + } + };
\ No newline at end of file diff --git a/grammars/video/Time/time.Prolog.gf b/grammars/video/Time/time.Prolog.gf new file mode 100644 index 000000000..564a12431 --- /dev/null +++ b/grammars/video/Time/time.Prolog.gf @@ -0,0 +1,110 @@ +-- Time grammar Prolog output notation + +include time.Abs.gf ; + +--flags lexer=codelit ; unlexer=codelit ; startcat=Time ; +--flags lexer=code ; unlexer=code ; startcat=Time ; + +pattern + +hour0 = "00" ; +hour1 = "01" ; +hour2 = "02" ; +hour3 = "03" ; +hour4 = "04" ; +hour5 = "05" ; +hour6 = "06" ; +hour7 = "07" ; +hour8 = "08" ; +hour9 = "09" ; +hour10 = "10" ; +hour11 = "11" ; +hour12 = "12" ; +hour13 = "13" ; +hour14 = "14" ; +hour15 = "15" ; +hour16 = "16" ; +hour17 = "17" ; +hour18 = "18" ; +hour19 = "19" ; +hour20 = "20" ; +hour21 = "21" ; +hour22 = "22" ; +hour23 = "23" ; + +--Minutes +minute0 = "00" ; +minute1 = "01" ; +minute2 = "02" ; +minute3 = "03" ; +minute4 = "04" ; +minute5 = "05" ; +minute6 = "06" ; +minute7 = "07" ; +minute8 = "08" ; +minute9 = "09" ; +minute10 = "10" ; +minute11 = "11" ; +minute12 = "12" ; +minute13 = "13" ; +minute14 = "14" ; +minute15 = "15" ; +minute16 = "16" ; +minute17 = "17" ; +minute18 = "18" ; +minute19 = "19" ; +minute20 = "20" ; +minute21 = "21" ; +minute22 = "22" ; +minute23 = "23" ; +minute24 = "24" ; +minute25 = "25" ; +minute26 = "26" ; +minute27 = "27" ; +minute28 = "28" ; +minute29 = "29" ; +minute30 = "30" ; + +minute31 = "31" ; +minute32 = "32" ; +minute33 = "33" ; +minute34 = "34" ; +minute35 = "35" ; +minute36 = "36" ; +minute37 = "37" ; +minute38 = "38" ; +minute39 = "39" ; +minute40 = "40" ; +minute41 = "41" ; +minute42 = "42" ; +minute43 = "43" ; +minute44 = "44" ; +minute45 = "45" ; +minute46 = "46" ; +minute47 = "47" ; +minute48 = "48" ; +minute49 = "49" ; +minute50 = "50" ; +minute51 = "51" ; +minute52 = "52" ; +minute53 = "53" ; +minute54 = "54" ; +minute55 = "55" ; +minute56 = "56" ; +minute57 = "57" ; +minute58 = "58" ; +minute59 = "59" ; + +oper +--with single quotes +--app2 : Str -> Str -> Str -> Str = \pred -> \argH -> \argM -> pred ++ "(" ++ "'" ++ argH ++ ":" ++ argM ++ "'" ++ ")" ; +--without single quotes +--app2 : Str -> Str -> Str -> Str = \pred -> \argH -> \argM -> pred ++ "(" ++ argH ++ ":" ++ argM ++ ")" ; + +app3 : Str -> Str -> Str = \argH -> \argM -> argH ++ ":" ++ argM ; + +lin +--timeFormal h m = {s = app2 "time" h.s m.s } ; +--timeInformal h m = {s = app2 "time" h.s m.s } ; +--time h m = {s = app2 "time" h.s m.s } ; +time h m = {s = app3 h.s m.s } ;
\ No newline at end of file diff --git a/grammars/video/Time/time.Symb.gf b/grammars/video/Time/time.Symb.gf new file mode 100644 index 000000000..81f877668 --- /dev/null +++ b/grammars/video/Time/time.Symb.gf @@ -0,0 +1,127 @@ +-- Time grammar Symbolic/Numerical + +include time.Abs.gf ; + +pattern + +hour0 = "00" ; +hour1 = "01" ; +hour2 = "02" ; +hour3 = "03" ; +hour4 = "04" ; +hour5 = "05" ; +hour6 = "06" ; +hour7 = "07" ; +hour8 = "08" ; +hour9 = "09" ; +hour10 = "10" ; +hour11 = "11" ; +hour12 = "12" ; +hour13 = "13" ; +hour14 = "14" ; +hour15 = "15" ; +hour16 = "16" ; +hour17 = "17" ; +hour18 = "18" ; +hour19 = "19" ; +hour20 = "20" ; +hour21 = "21" ; +hour22 = "22" ; +hour23 = "23" ; + +--Minutes +minute0 = "00" ; +minute1 = "01" ; +minute2 = "02" ; +minute3 = "03" ; +minute4 = "04" ; +minute5 = "05" ; +minute6 = "06" ; +minute7 = "07" ; +minute8 = "08" ; +minute9 = "09" ; +minute10 = "10" ; +minute11 = "11" ; +minute12 = "12" ; +minute13 = "13" ; +minute14 = "14" ; +minute15 = "15" ; +minute16 = "16" ; +minute17 = "17" ; +minute18 = "18" ; +minute19 = "19" ; +minute20 = "20" ; +minute21 = "21" ; +minute22 = "22" ; +minute23 = "23" ; +minute24 = "24" ; +minute25 = "25" ; +minute26 = "26" ; +minute27 = "27" ; +minute28 = "28" ; +minute29 = "29" ; +minute30 = "30" ; +minute31 = "31" ; +minute32 = "32" ; +minute33 = "33" ; +minute34 = "34" ; +minute35 = "35" ; +minute36 = "36" ; +minute37 = "37" ; +minute38 = "38" ; +minute39 = "39" ; +minute40 = "40" ; +minute41 = "41" ; +minute42 = "42" ; +minute43 = "43" ; +minute44 = "44" ; +minute45 = "45" ; +minute46 = "46" ; +minute47 = "47" ; +minute48 = "48" ; +minute49 = "49" ; +minute50 = "50" ; +minute51 = "51" ; +minute52 = "52" ; +minute53 = "53" ; +minute54 = "54" ; +minute55 = "55" ; +minute56 = "56" ; +minute57 = "57" ; +minute58 = "58" ; +minute59 = "59" ; + +-- LexMinuteZero +minuteZero = "00" ; + +--LexMinutePast +minuteQuarter = "15" ; +minuteFive = "05" ; +minuteTen = "10" ; +minuteTwenty = "20" ; +--minuteTwentyFive = "25" ; + +--LexMinuteToHalf +minuteTwentyFive = "25" ; + +--LexMinutePastHalf +minuteThirtyFive = "35" ; + +--LexMinuteHalf +minuteHalf = "30" ; + +--LexMinuteTo +minuteQuarterTo = "45" ; +minuteFiveTo = "55" ; +minuteTenTo = "50" ; +minuteTwentyTo = "40" ; +--minuteTwentyFiveTo = "35" ; + +lin +time h m = {s = h.s ++ m.s} ; -- 11 30 +timeOnTheHour h m = {s = h.s ++ m.s} ; -- 11 00 +timePast h m = {s = h.s ++ m.s} ; -- 11 10 +timeTo h m = {s = h.s ++ m.s} ; -- 10 50 +timeHalf h m = {s = h.s ++ m.s} ; +timeFiveToHalf h m = {s = h.s ++ m.s } ; +timeFivePastHalf h m = {s = h.s ++ m.s } ;
\ No newline at end of file diff --git a/grammars/video/Time/time.gf b/grammars/video/Time/time.gf new file mode 100644 index 000000000..30023a0b4 --- /dev/null +++ b/grammars/video/Time/time.gf @@ -0,0 +1,106 @@ +-- Time grammar Abstract syntax + +abstract time = { +cat + +-- Times +Time ; +Hour ; +Minute ; + +fun +-- Time +hour0 : Hour ; +hour1 : Hour ; +hour2 : Hour ; +hour3 : Hour ; +hour4 : Hour ; +hour5 : Hour ; +hour6 : Hour ; +hour7 : Hour ; +hour8 : Hour ; +hour9 : Hour ; +hour10 : Hour ; +hour11 : Hour ; +hour12 : Hour ; +hour13 : Hour ; +hour14 : Hour ; +hour15 : Hour ; +hour16 : Hour ; +hour17 : Hour ; +hour18 : Hour ; +hour19 : Hour ; +hour20 : Hour ; +hour21 : Hour ; +hour22 : Hour ; +hour23 : Hour ; + +-- Minutes +minute0 : Minute ; +minute1 : Minute ; +minute2 : Minute ; +minute3 : Minute ; +minute4 : Minute ; +minute5 : Minute ; +minute6 : Minute ; +minute7 : Minute ; +minute8 : Minute ; +minute9 : Minute ; +minute10 : Minute ; +minute11 : Minute ; +minute12 : Minute ; +minute13 : Minute ; +minute14 : Minute ; +minute15 : Minute ; +minute16 : Minute ; +minute17 : Minute ; +minute18 : Minute ; +minute19 : Minute ; +minute20 : Minute ; +minute21 : Minute ; +minute22 : Minute ; +minute23 : Minute ; +minute24 : Minute ; +minute25 : Minute ; +minute26 : Minute ; +minute27 : Minute ; +minute28 : Minute ; +minute29 : Minute ; +minute30 : Minute ; +minute31 : Minute ; +minute32 : Minute ; +minute33 : Minute ; +minute34 : Minute ; +minute35 : Minute ; +minute36 : Minute ; +minute37 : Minute ; +minute38 : Minute ; +minute39 : Minute ; +minute40 : Minute ; +minute41 : Minute ; +minute42 : Minute ; +minute43 : Minute ; +minute44 : Minute ; +minute45 : Minute ; +minute46 : Minute ; +minute47 : Minute ; +minute48 : Minute ; +minute49 : Minute ; +minute50 : Minute ; +minute51 : Minute ; +minute52 : Minute ; +minute53 : Minute ; +minute54 : Minute ; +minute55 : Minute ; +minute56 : Minute ; +minute57 : Minute ; +minute58 : Minute ; +minute59 : Minute ; + +-- Time expressions +--timeFormal : Hour -> Minute -> Time ; +--timeInformal : Hour -> Minute -> Time ; +time : Hour -> Minute -> Time ; + + +} diff --git a/grammars/video/Time/timeProlog.gf b/grammars/video/Time/timeProlog.gf new file mode 100644 index 000000000..8a791ae0b --- /dev/null +++ b/grammars/video/Time/timeProlog.gf @@ -0,0 +1,103 @@ +-- Time grammar Prolog output notation + +concrete timeProlog of time = open prologResource in { + +--flags lexer=codelit ; unlexer=codelit ; startcat=Time ; +--flags lexer=code ; unlexer=code ; startcat=Time ; + +pattern + +hour0 = "00" ; +hour1 = "01" ; +hour2 = "02" ; +hour3 = "03" ; +hour4 = "04" ; +hour5 = "05" ; +hour6 = "06" ; +hour7 = "07" ; +hour8 = "08" ; +hour9 = "09" ; +hour10 = "10" ; +hour11 = "11" ; +hour12 = "12" ; +hour13 = "13" ; +hour14 = "14" ; +hour15 = "15" ; +hour16 = "16" ; +hour17 = "17" ; +hour18 = "18" ; +hour19 = "19" ; +hour20 = "20" ; +hour21 = "21" ; +hour22 = "22" ; +hour23 = "23" ; + +--Minutes +minute0 = "00" ; +minute1 = "01" ; +minute2 = "02" ; +minute3 = "03" ; +minute4 = "04" ; +minute5 = "05" ; +minute6 = "06" ; +minute7 = "07" ; +minute8 = "08" ; +minute9 = "09" ; +minute10 = "10" ; +minute11 = "11" ; +minute12 = "12" ; +minute13 = "13" ; +minute14 = "14" ; +minute15 = "15" ; +minute16 = "16" ; +minute17 = "17" ; +minute18 = "18" ; +minute19 = "19" ; +minute20 = "20" ; +minute21 = "21" ; +minute22 = "22" ; +minute23 = "23" ; +minute24 = "24" ; +minute25 = "25" ; +minute26 = "26" ; +minute27 = "27" ; +minute28 = "28" ; +minute29 = "29" ; +minute30 = "30" ; + +minute31 = "31" ; +minute32 = "32" ; +minute33 = "33" ; +minute34 = "34" ; +minute35 = "35" ; +minute36 = "36" ; +minute37 = "37" ; +minute38 = "38" ; +minute39 = "39" ; +minute40 = "40" ; +minute41 = "41" ; +minute42 = "42" ; +minute43 = "43" ; +minute44 = "44" ; +minute45 = "45" ; +minute46 = "46" ; +minute47 = "47" ; +minute48 = "48" ; +minute49 = "49" ; +minute50 = "50" ; +minute51 = "51" ; +minute52 = "52" ; +minute53 = "53" ; +minute54 = "54" ; +minute55 = "55" ; +minute56 = "56" ; +minute57 = "57" ; +minute58 = "58" ; +minute59 = "59" ; + +lin +--timeFormal h m = {s = app2 "time" h.s m.s } ; +--timeInformal h m = {s = app2 "time" h.s m.s } ; +--time h m = {s = app2 "time" h.s m.s } ; +time h m = {s = app3 h.s m.s } ; +} diff --git a/grammars/video/Time/timeResSwe.gf b/grammars/video/Time/timeResSwe.gf new file mode 100644 index 000000000..0f9ad0526 --- /dev/null +++ b/grammars/video/Time/timeResSwe.gf @@ -0,0 +1,7 @@ +resource timeResSwe = { +param RefHour = ThisFormal | ThisLex | NextLex ; +oper refs : Str -> Str -> Str -> RefHour => Str = \x,y,z -> table {ThisFormal => x ; ThisLex => y ; NextLex => z } ; +param MinMin = Form | Past | To ; +oper mins : Str -> Str -> Str -> MinMin => Str = \u,x,y -> table {Form => u ; Past => x ; To => y } ; + +} diff --git a/grammars/video/Time/timeSwe.gf b/grammars/video/Time/timeSwe.gf new file mode 100644 index 000000000..e9ea45e31 --- /dev/null +++ b/grammars/video/Time/timeSwe.gf @@ -0,0 +1,149 @@ +-- Time grammar Swedish + +concrete timeSwe of time = open timeResSwe in { + +lincat Time = {s : Str} ; + +--Hours +lin +-- Some of the time expressions is omitted because of the prolog in godis. +-- hours after 13 and 00 are only interpreted as 13,14 etc when explicitly uttered, +-- one o'clock is ONLY interpreted as 01:00, not 13:00. +-- if someone needs the more elaborated forms of time use +-- the commented lines, and comment the corresponding units. + +--hour0 = {s = refs (variants{["noll noll"];["noll"]}) "tolv" "ett"} ; +hour0 = {s = refs (variants{["noll noll"];["noll"]})(variants{}) (variants{})} ; +hour1 = {s = refs "ett" "ett" "två"} ; +hour2 = {s = refs "två" "två" "tre"} ; +hour3 = {s = refs "tre" "tre" "fyra"} ; +hour4 = {s = refs "fyra" "fyra" "fem"} ; +hour5 = {s = refs "fem" "fem" "sex"} ; +hour6 = {s = refs "sex" "sex" "sju"} ; +hour7 = {s = refs "sju" "sju" "åtta"} ; +hour8 = {s = refs "åtta" "åtta" "nio"} ; +hour9 = {s = refs "nio" "nio" "tio"} ; +hour10 = {s = refs "tio" "tio" "elva"} ; +hour11 = {s = refs "elva""elva" "tolv"} ; +hour12 = {s = refs "tolv" "tolv" "ett" } ; + +--hour13 = {s = refs "tretton" "ett" "två" }; +--hour14 = {s = refs "fjorton" "två" "tre" }; +--hour15 = {s = refs "femton" "tre" "fyra" }; +--hour16 = {s = refs "sexton" "fyra" "fem" }; +--hour17 = {s = refs "sjutton" "fem" "sex" }; +--hour18 = {s = refs "arton" "sex" "sju" }; +--hour19 = {s = refs "nitton" "sju" "åtta" } ; +--hour20 = {s = refs "tjugo" "åtta" "nio" } ; +--hour21 = {s = refs ["tjugo ett"] "nio" "tio" } ; +--hour22 = {s = refs ["tjugo två"] "tio" "elva" } ; +--hour23 = {s = refs ["tjugo tre"] "elva" "tolv" }; + +hour13 = {s = refs "tretton" (variants{})(variants{}) }; +hour14 = {s = refs "fjorton"(variants{})(variants{})}; +hour15 = {s = refs "femton"(variants{})(variants{})}; +hour16 = {s = refs "sexton"(variants{})(variants{})}; +hour17 = {s = refs "sjutton"(variants{})(variants{})}; +hour18 = {s = refs "arton"(variants{})(variants{})}; +hour19 = {s = refs "nitton"(variants{})(variants{})} ; +hour20 = {s = refs "tjugo"(variants{})(variants{})} ; +hour21 = {s = refs ["tjugo ett"](variants{})(variants{})} ; +hour22 = {s = refs ["tjugo två"](variants{})(variants{})} ; +hour23 = {s = refs ["tjugo tre"](variants{})(variants{})}; + + +--Minutes +--0-9 +--minute0 = {s = mins (variants{["noll noll"]}) (variants{}) (variants{}) (variants{[""]})} ; +minute0 = {s = mins ["noll noll"] (variants{[""]}) (variants{})} ; +minute1 = {s = mins ["noll ett"] (variants {["ett över"] ; ["en minut över"]}) (variants{}) } ; +minute2 = {s = mins ["noll två"] (variants {["två över"] ; ["två minuter över"]}) (variants{})} ; +minute3 = {s = mins ["noll tre"] (variants { ["tre över"] ; ["tre minuter över"]}) (variants{})} ; +minute4 = {s = mins ["noll fyra"] (variants { ["fyra över"] ; ["fyra minuter över"]}) (variants{})} ; +minute5 = {s = mins ["noll fem"] (variants { ["fem över"] ; ["fem minuter över"]}) (variants{})} ; +minute6 = {s = mins ["noll sex"] (variants { ["sex över"] ; ["sex minuter över"]}) (variants{})} ; +minute7 = {s = mins ["noll sju"] (variants { ["sju över"] ; ["sju minuter över"]}) (variants{})} ; +minute8 = {s = mins ["noll åtta"] (variants { ["åtta över"] ; ["åtta minuter över"]}) (variants{})} ; +minute9 = {s = mins ["noll nio"] (variants { ["nio över"] ; ["nio minuter över"]}) (variants{})} ; + +--10-19 +minute10 = {s = mins ["tio"] (variants { ["tio över"] ; ["tio minuter över"]}) (variants{})} ; +minute11 = {s = mins ["elva"] (variants { ["elva över"] ; ["elva minuter över"]}) (variants{})} ; +minute12 = {s = mins ["tolv"] (variants { ["tolv över"] ; ["tolv minuter över"]}) (variants{})} ; +minute13 = {s = mins ["tretton"] (variants { ["tretton över"] ; ["tretton minuter över"]}) (variants{})} ; +minute14 = {s = mins ["fjorton"] (variants { ["fjorton över"] ; ["fjorton minuter över"]}) (variants{})} ; +minute15 = {s = mins ["femton"] (variants { ["femton över"] ; ["femton minuter över"] ; ["kvart över"]}) (variants{})} ; +minute16 = {s = mins ["sexton"] (variants { ["sexton över"] ; ["sexton minuter över"]}) (variants{})} ; +minute17 = {s = mins ["sjutton"] (variants { ["sjutton över"] ; ["sjutton minuter över"]}) (variants{})} ; +minute18 = {s = mins ["arton"] (variants { ["arton över"] ; ["arton minuter över"]}) (variants{})} ; +minute19 = {s = mins ["nitton"] (variants { ["nitton över"] ; ["nitton minuter över"]}) (variants{})} ; + +--20-29 +minute20 = {s = mins ["tjugo"] (variants { ["tjugo över"] ; ["tjugo minuter över"]}) (variants {})} ; +minute21 = {s = mins ["tjugo ett"] (variants { ["tjugo en över"] ;["tjugo ett över"] ; ["tjugo en minuter över"]}) (variants {}) } ; +minute22 = {s = mins ["tjugo två"] (variants { ["tjugo två över"] ; ["tjugo två minuter över"]}) (variants {}) } ; +minute23 = {s = mins ["tjugo tre"] (variants { ["tjugo tre över"] ; ["tjugo tre minuter över"]}) (variants {}) } ; +minute24 = {s = mins ["tjugo fyra"] (variants { ["tjugo fyra över"] ; ["tjugo fyra minuter över"]}) (variants {["sex minuter i halv"];["sex i halv"]}) } ; +minute25 = {s = mins ["tjugo fem"] (variants { ["tjugo fem över"] ; ["tjugo fem minuter över"]}) (variants {["fem minuter i halv"];["fem i halv"]}) } ; +minute26 = {s = mins ["tjugo sex"] (variants { ["tjugo sex över"] ; ["tjugo sex minuter över"]}) (variants {["fyra minuter i halv"];["fyra i halv"]}) } ; +minute27 = {s = mins ["tjugo sju"] (variants { ["tjugo sju över"] ; ["tjugo sju minuter över"]}) (variants {["tre minuter i halv"];["tre i halv"]}) } ; +minute28 = {s = mins ["tjugo åtta"] (variants { ["tjugo åtta över"] ; ["tjugo åtta minuter över"]}) (variants {["två minuter i halv"];["två i halv"]}) } ; +minute29 = {s = mins ["tjugo nio"] (variants { ["tjugo nio över"] ; ["tjugo nio minuter över"]}) (variants {["en minut i halv"];["en i halv"]}) } ; + +--30-39 +minute30 = {s = mins ["trettio"] (variants { ["trettio minuter över"]}) ["halv"] } ; +minute31 = {s = mins ["trettio ett"] (variants { ["trettio en över"] ; ["trettio ett över"] ; ["trettio en minuter över"]}) (variants {["tjugo nio minuter i"];["tjugo nio i"];["en minut över halv"];["en över halv"]}) } ; +minute32 = {s = mins ["trettio två"] (variants { ["trettio två över"] ; ["trettio två minuter över"]}) (variants {["tjugo åtta minuter i"];["tjugo åtta i"];["två minuter över halv"];["två över halv"]}) } ; +minute33 = {s = mins ["trettio tre"] (variants { ["trettio tre över"] ; ["trettio tre minuter över"]}) (variants {["tjugo sju minuter i"];["tjugo sju i"];["tre minuter över halv"];["tre över halv"]}) } ; +minute34 = {s = mins ["trettio fyra"] (variants { ["trettio fyra över"] ; ["trettio fyra minuter över"]}) (variants {["tjugosex minuter i"];["tjugosex i"];["fyra minuter över halv"];["fyra över halv"]}) } ; +minute35 = {s = mins ["trettio fem"] (variants { ["trettio fem över"] ; ["trettio fem minuter över"]}) (variants {["tjugo fem minuter i"];["tjugo fem i"];["fem minuter över halv"]; ["fem över halv"]}) } ; +minute36 = {s = mins ["trettio sex"] (variants { ["trettio sex över"] ; ["trettio sex minuter över"]}) (variants {["tjugo fyra minuter i"];["tjugo fyra i"];["sex minuter över halv"];["sex över halv"]}) } ; +minute37 = {s = mins ["trettio sju"] (variants { ["trettio sju över"] ; ["trettio sju minuter över"]}) (variants {["tjugo tre minuter i"];["tjugo tre i"];["sju minuter över halv"];["sju över halv"]}) } ; +minute38 = {s = mins ["trettio åtta"] (variants { ["trettio åtta över"] ; ["trettio åtta minuter över"]}) (variants {["tjugo två minuter i"];["tjugo två i"]}) } ; +minute39 = {s = mins ["trettio nio"] (variants { ["trettio nio över"] ; ["trettio nio minuter över"]}) (variants {["tjugo en minuter i"];["tjugo en i"];["tjugo ett i"]}) } ; + +--40-49 +minute40 = {s = mins ["fyrtio"] (variants {}) (variants {["tjugo minuter i"];["tjugo i"]}) } ; +minute41 = {s = mins ["fyrtio ett"] (variants {}) (variants {["nitton minuter i"];["nitton i"]}) } ; +minute42 = {s = mins ["fyrtio två"] (variants {}) (variants {["arton minuter i"];["arton i"]}) } ; +minute43 = {s = mins ["fyrtio tre"] (variants {}) (variants {["sjutton minuter i"];["sjutton i"]}) } ; +minute44 = {s = mins ["fyrtio fyra"] (variants {}) (variants {["sexton minuter i"];["sexton i"]}) } ; +minute45 = {s = mins (variants {["fyrtio fem"];["tre kvart"]}) (variants {}) (variants {["femton minuter i"];["femton i"];["kvart i"]}) } ; +minute46 = {s = mins ["fyrtio sex"] (variants {}) (variants {["fjorton minuter i"];["fjorton i"]}) } ; +minute47 = {s = mins ["fyrtio sju"] (variants {}) (variants {["tretton minuter i"];["tretton i"]}) } ; +minute48 = {s = mins ["fyrtio åtta"] (variants {}) (variants {["tolv minuter i"];["tolv i"]}) } ; +minute49 = {s = mins ["fyrtio nio"] (variants {}) (variants {["elva minuter i"];["elva i"]}) } ; + +--50-59 +minute50 = {s = mins ["femtio"] (variants {}) (variants {["tio minuter i"];["tio i"]}) } ; +minute51 = {s = mins ["femtio ett"] (variants {}) (variants {["nio minuter i"];["nio i"]}) } ; +minute52 = {s = mins ["femtio två"] (variants {}) (variants {["åtta minuter i"];["åtta i"]}) } ; +minute53 = {s = mins ["femtio tre"] (variants {}) (variants {["sju minuter i"];["sju i"]}) } ; +minute54 = {s = mins ["femtio fyra"] (variants {}) (variants {["sex minuter i"];["sex i"]}) } ; +minute55 = {s = mins ["femtio fem"] (variants {}) (variants {["fem minuter i"];["fem i"]}) } ; +minute56 = {s = mins ["femtio sex"] (variants {}) (variants {["fyra minuter i"];["fyra i"]}) } ; +minute57 = {s = mins ["femtio sju"] (variants {}) (variants {["tre minuter i"];["tre i"]}) } ; +minute58 = {s = mins ["femtio åtta"] (variants {}) (variants {["två minuter i"];["två i"]}) } ; +minute59 = {s = mins ["femtio nio"] (variants {}) (variants {["en minut i"];["en i"];["ett i"]}) } ; + +lincat Hour = {s : RefHour => Str} ; + +lincat Minute = {s : MinMin => Str} ; + +-- Time expressions +lin +--timeDotty h m = {s = h.s ! ThisLex ++ m.s ! Dot }; +--timeInformal h m = {s = variants { + --m.s ! Past ++ h.s ! ThisLex ; + --m.s ! To ++ h.s ! NextLex + --} + --}; +--timeFormal h m = {s = h.s ! ThisFormal ++ m.s ! Form} ; +time h m = {s = variants { + h.s ! ThisFormal ++ m.s ! Form ; + h.s ! ThisFormal ++ "och" ++ m.s ! Form ; + m.s ! Past ++ h.s ! ThisLex ; + m.s ! To ++ h.s ! NextLex + } + }; +} |
