summaryrefslogtreecommitdiff
path: root/examples/dates/Dates.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2011-02-25 15:44:25 +0000
committeraarne <aarne@chalmers.se>2011-02-25 15:44:25 +0000
commit77b02544fb91a658346f25019cbf2a21b79f9081 (patch)
tree9f54c2af27a0ee5e328c6984abdaa6ae967009d6 /examples/dates/Dates.gf
parent390566b17e69da2045a49e3da1f8debc60d42ccd (diff)
simple grammar for dates
Diffstat (limited to 'examples/dates/Dates.gf')
-rw-r--r--examples/dates/Dates.gf32
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/dates/Dates.gf b/examples/dates/Dates.gf
new file mode 100644
index 000000000..9ac664a1c
--- /dev/null
+++ b/examples/dates/Dates.gf
@@ -0,0 +1,32 @@
+abstract Dates = {
+
+flags startcat = Date ;
+
+cat
+ Date ; Year ; Month ; Day ; Time ; Hour ; Minute ; Weekday ; Ampm ;
+
+fun
+ DFull : Year -> Month -> Day -> Weekday -> Time -> Date ;
+
+ MkYear : Int -> Year ;
+
+ MJan, MFeb, MMar, MApr, MMay, MJun, MJul, MAug, MSep, MOct, MNov, MDec : Month ;
+
+ MkDay : Int -> Day ;
+
+ MkTime : Ampm -> Hour -> Minute -> Time ;
+
+ H01, H02, H03, H04, H05, H06, H07, H08, H09, H10, H11, H12 : Hour ;
+
+ MkMinute : Int -> Minute ;
+
+ WSun, WMon, WTue, WWed, WThu, WFri, WSat : Weekday ;
+
+ AM, PM : Ampm ;
+
+-- noncanonical ways
+
+ DToday, DYesterday, DTomorrow : Time -> Date ;
+
+}
+