
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: api/rascal/datetime/extracted
Source used for this grammar: Jurgen J. Vinju, Mark Hills, DateTime, 2009–2013 [Explore]
datetime, tuple[datetime date, datetime time], interval, tuple[int,int,int,int,int,int,int], Duration, int, list[datetime], str), 0 root (—), 7 top (datetime, tuple[datetime date, datetime time], tuple[int,int,int,int,int,int,int], Duration, int, list[datetime], str), 0 bottom (—).[now], [createDate], [createTime] 2, [createDateTime] 2, [joinDateAndTime], [splitDateTime], [incrementYears] 2, [incrementMonths] 2, [incrementDays] 2, [incrementHours] 2, [incrementMinutes] 2, [incrementSeconds] 2, [incrementMilliseconds] 2, [decrementYears] 2, [decrementMonths] 2, [decrementDays] 2, [decrementHours] 2, [decrementMinutes] 2, [decrementSeconds] 2, [decrementMilliseconds] 2, [createInterval], [createDurationInternal], [createDuration] 2, [daysInInterval], [daysDiff], [dateRangeByDay], [parseDate], [parseDateInLocale], [parseTime], [parseTimeInLocale], [parseDateTime], [parseDateTimeInLocale], [printDate] 2, [printDateInLocale] 2, [printTime] 2, [printTimeInLocale] 2, [printDateTime] 2, [printDateTimeInLocale] 2.⟨year⟩ 3, ⟨month⟩ 3, ⟨day⟩ 3, ⟨hour⟩ 4, ⟨minute⟩ 4, ⟨second⟩ 4, ⟨millisecond⟩ 4, ⟨timezoneHourOffset⟩ 2, ⟨timezoneMinuteOffset⟩ 2, ⟨date⟩, ⟨time⟩, ⟨dt⟩ 29, ⟨n⟩ 14, ⟨begin⟩ 4, ⟨end⟩ 4, ⟨i⟩ 3, ⟨inputDate⟩ 6, ⟨formatString⟩ 12, ⟨locale⟩ 9, ⟨inputTime⟩ 6, ⟨inputDateTime⟩ 6.datetime ::= [now]::ε
datetime ::= [createDate]::⟨year⟩:integer ⟨month⟩:integer ⟨day⟩:integer
datetime ::= [createTime]::⟨hour⟩:integer ⟨minute⟩:integer ⟨second⟩:integer ⟨millisecond⟩:integer
datetime ::= [createTime]::⟨hour⟩:integer ⟨minute⟩:integer ⟨second⟩:integer ⟨millisecond⟩:integer ⟨timezoneHourOffset⟩:integer ⟨timezoneMinuteOffset⟩:integer
datetime ::= [createDateTime]::⟨year⟩:integer ⟨month⟩:integer ⟨day⟩:integer ⟨hour⟩:integer ⟨minute⟩:integer ⟨second⟩:integer ⟨millisecond⟩:integer
datetime ::= [createDateTime]::⟨year⟩:integer ⟨month⟩:integer ⟨day⟩:integer ⟨hour⟩:integer ⟨minute⟩:integer ⟨second⟩:integer ⟨millisecond⟩:integer ⟨timezoneHourOffset⟩:integer ⟨timezoneMinuteOffset⟩:integer
datetime ::= [joinDateAndTime]::⟨date⟩:string ⟨time⟩:string
tuple[datetime date, datetime time] ::=
[splitDateTime]::⟨dt⟩:stringdatetime ::= [incrementYears]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[incrementYears]::⟨dt⟩:stringdatetime ::= [incrementMonths]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[incrementMonths]::⟨dt⟩:stringdatetime ::= [incrementDays]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[incrementDays]::⟨dt⟩:stringdatetime ::= [incrementHours]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[incrementHours]::⟨dt⟩:stringdatetime ::= [incrementMinutes]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[incrementMinutes]::⟨dt⟩:stringdatetime ::= [incrementSeconds]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[incrementSeconds]::⟨dt⟩:stringdatetime ::= [incrementMilliseconds]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[incrementMilliseconds]::⟨dt⟩:stringdatetime ::= [decrementYears]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[decrementYears]::⟨dt⟩:stringdatetime ::= [decrementMonths]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[decrementMonths]::⟨dt⟩:stringdatetime ::= [decrementDays]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[decrementDays]::⟨dt⟩:stringdatetime ::= [decrementHours]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[decrementHours]::⟨dt⟩:stringdatetime ::= [decrementMinutes]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[decrementMinutes]::⟨dt⟩:stringdatetime ::= [decrementSeconds]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[decrementSeconds]::⟨dt⟩:stringdatetime ::= [decrementMilliseconds]::⟨dt⟩:string ⟨n⟩:integer
datetime ::=
[decrementMilliseconds]::⟨dt⟩:stringinterval ::= [createInterval]::⟨begin⟩:string ⟨end⟩:string
tuple[int,int,int,int,int,int,int] ::= [createDurationInternal]::⟨begin⟩:string ⟨end⟩:string
Duration ::= [createDuration]::⟨begin⟩:string ⟨end⟩:string
Duration ::=
[createDuration]::⟨i⟩:intervalint ::=
[daysInInterval]::⟨i⟩:intervalint ::= [daysDiff]::⟨begin⟩:string ⟨end⟩:string
list[datetime] ::=
[dateRangeByDay]::⟨i⟩:intervaldatetime ::= [parseDate]::⟨inputDate⟩:string ⟨formatString⟩:string
datetime ::= [parseDateInLocale]::⟨inputDate⟩:string ⟨formatString⟩:string ⟨locale⟩:string
datetime ::= [parseTime]::⟨inputTime⟩:string ⟨formatString⟩:string
datetime ::= [parseTimeInLocale]::⟨inputTime⟩:string ⟨formatString⟩:string ⟨locale⟩:string
datetime ::= [parseDateTime]::⟨inputDateTime⟩:string ⟨formatString⟩:string
datetime ::= [parseDateTimeInLocale]::⟨inputDateTime⟩:string ⟨formatString⟩:string ⟨locale⟩:string
str ::= [printDate]::⟨inputDate⟩:string ⟨formatString⟩:string
str ::=
[printDate]::⟨inputDate⟩:stringstr ::= [printDateInLocale]::⟨inputDate⟩:string ⟨formatString⟩:string ⟨locale⟩:string
str ::= [printDateInLocale]::⟨inputDate⟩:string ⟨locale⟩:string
str ::= [printTime]::⟨inputTime⟩:string ⟨formatString⟩:string
str ::=
[printTime]::⟨inputTime⟩:stringstr ::= [printTimeInLocale]::⟨inputTime⟩:string ⟨formatString⟩:string ⟨locale⟩:string
str ::= [printTimeInLocale]::⟨inputTime⟩:string ⟨locale⟩:string
str ::= [printDateTime]::⟨inputDateTime⟩:string ⟨formatString⟩:string
str ::=
[printDateTime]::⟨inputDateTime⟩:stringstr ::= [printDateTimeInLocale]::⟨inputDateTime⟩:string ⟨formatString⟩:string ⟨locale⟩:string
str ::= [printDateTimeInLocale]::⟨inputDateTime⟩:string ⟨locale⟩:string