-- 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 ; }