diff options
| author | aarne <aarne@chalmers.se> | 2011-02-25 15:44:25 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2011-02-25 15:44:25 +0000 |
| commit | 77b02544fb91a658346f25019cbf2a21b79f9081 (patch) | |
| tree | 9f54c2af27a0ee5e328c6984abdaa6ae967009d6 /examples/dates/DatesEng.gf | |
| parent | 390566b17e69da2045a49e3da1f8debc60d42ccd (diff) | |
simple grammar for dates
Diffstat (limited to 'examples/dates/DatesEng.gf')
| -rw-r--r-- | examples/dates/DatesEng.gf | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/examples/dates/DatesEng.gf b/examples/dates/DatesEng.gf new file mode 100644 index 000000000..2113c11dd --- /dev/null +++ b/examples/dates/DatesEng.gf @@ -0,0 +1,66 @@ +concrete DatesEng of Dates = open Prelude in { + +lincat + Date, Year, Month, Day, Time, Hour, Minute, Weekday, Ampm = Str ; + +lin + DFull y m d w t = opts (opts "on" ++ w ++ comma) ++ opts (bothWays m d ++ opts comma) ++ opts (y ++ opts comma) ++ opts ("at" ++ t) ; + + MkYear i = i.s ; + + MJan = "January" ; + MFeb = "February" ; + MMar = "March" ; + MApr = "April" ; + MMay = "May" ; + MJun = "June" ; + MJul = "July" ; + MAug = "August" ; + MSep = "September" ; + MOct = "October" ; + MNov = "November" ; + MDec = "December" ; + + MkDay i = i.s ; + + MkTime ap h m = h ++ opts (dot ++ m) ++ opts ap ; + + H01 = "1" ; + H02 = "2" ; + H03 = "3" ; + H04 = "4" ; + H05 = "5" ; + H06 = "6" ; + H07 = "7" ; + H08 = "8" ; + H09 = "9" ; + H10 = "10" ; + H11 = "11" ; + H12 = "12" ; + + MkMinute i = i.s ; + + WSun = "Sunday" ; + WMon = "Monday" ; + WTue = "Tuesday" ; + WWed = "Wednesday" ; + WThu = "Thursday" ; + WFri = "Friday" ; + WSat = "Saturday" ; + + AM = "a.m." ; + PM = "p.m." ; + +oper + opts = optStr ; + dot = "." ; + comma = "," ; + +lin + DToday t = "today" ++ opts ("at" ++ t) ; + DTomorrow t = "tomorrow" ++ opts ("at" ++ t) ; + DYesterday t = "yesterday" ++ opts ("at" ++ t) ; + + +} + |
