#pragma prototyped
#include <ast.h>
#include <tm.h>
static char* format[] =
{
"Jan", "Feb", "Mar", "Apr",
"May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec",
"January", "February", "March", "April",
"May", "June", "July", "August",
"September", "October", "November", "December",
"Sun", "Mon", "Tue", "Wed",
"Thu", "Fri", "Sat",
"Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday",
"%H:%M:%S", "%m/%d/%y", "%a %b %e %T %Z %Y",
"AM", "PM",
"GMT", "UTC", "UCT", "CUT",
"DST", "", "", "",
"s", "es", "", "",
"second", "minute", "hour", "day",
"week", "month", "year",
"midnight", "morning", "noon", "evening",
"yesterday", "today", "tomorrow",
"last", "ago", "past",
"this", "now", "current",
"in", "next", "hence",
"exactly", "", "",
"at", "on", "", "",
"st", "nd", "rd", "th", "th",
"th", "th", "th", "th", "th",
"", "", "", "", "",
"", "", "", "", "",
"%a %b %e %T %Y",
"%a %b %e %T %Z %Y",
"%a %b %e %T %z %Z %Y",
"%b %e %H:%M",
"%b %e %Y",
"%I:%M:%S %p",
"", "", "", "", "",
"first", "", "third", "fourth", "fifth",
"sixth", "seventh", "eighth", "ninth", "tenth",
"final", "ending", "nth",
};
static char lex[] =
{
TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,
TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,
TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,
TM_MONTH, TM_MONTH, TM_MONTH, TM_MONTH,
TM_MONTH, TM_MONTH, TM_MONTH, TM_MONTH,
TM_MONTH, TM_MONTH, TM_MONTH, TM_MONTH,
TM_DAY_ABBREV, TM_DAY_ABBREV, TM_DAY_ABBREV, TM_DAY_ABBREV,
TM_DAY_ABBREV, TM_DAY_ABBREV, TM_DAY_ABBREV,
TM_DAY, TM_DAY, TM_DAY, TM_DAY,
TM_DAY, TM_DAY, TM_DAY,
0, 0, 0,
TM_MERIDIAN, TM_MERIDIAN,
TM_UT, TM_UT, TM_UT, TM_UT,
TM_DT, TM_DT, TM_DT, TM_DT,
TM_SUFFIXES, TM_SUFFIXES, TM_SUFFIXES, TM_SUFFIXES,
TM_PARTS, TM_PARTS, TM_PARTS, TM_PARTS,
TM_PARTS, TM_PARTS, TM_PARTS,
TM_HOURS, TM_HOURS, TM_HOURS, TM_HOURS,
TM_DAYS, TM_DAYS, TM_DAYS,
TM_LAST, TM_LAST, TM_LAST,
TM_THIS, TM_THIS, TM_THIS,
TM_NEXT, TM_NEXT, TM_NEXT,
TM_EXACT, TM_EXACT, TM_EXACT,
TM_NOISE, TM_NOISE, TM_NOISE, TM_NOISE,
TM_ORDINAL, TM_ORDINAL, TM_ORDINAL, TM_ORDINAL, TM_ORDINAL,
TM_ORDINAL, TM_ORDINAL, TM_ORDINAL, TM_ORDINAL, TM_ORDINAL,
0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0, 0,
0, 0, 0,
0, 0, 0, 0, 0,
TM_ORDINALS, TM_ORDINALS, TM_ORDINALS, TM_ORDINALS, TM_ORDINALS,
TM_ORDINALS, TM_ORDINALS, TM_ORDINALS, TM_ORDINALS, TM_ORDINALS,
TM_FINAL, TM_FINAL, TM_FINAL,
};
static char digit[] = "0123456789";
static short days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
static short sum[] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 };
static Tm_leap_t leap[] =
{
946684822, 23,
915148821, 22,
867715220, 21,
820454419, 20,
773020818, 19,
741484817, 18,
709948816, 17,
662688015, 16,
631152014, 15,
567993613, 14,
489024012, 13,
425865611, 12,
394329610, 11,
362793609, 10,
315532808, 9,
283996807, 8,
252460806, 7,
220924805, 6,
189302404, 5,
157766403, 4,
126230402, 3,
94694401, 2,
78796800, 1,
0, 0,
0, 0
};
static Tm_zone_t zone[] =
{
0, "GMT", 0, ( 0 * 60), 0,
0, "UCT", 0, ( 0 * 60), 0,
0, "UTC", 0, ( 0 * 60), 0,
0, "CUT", 0, ( 0 * 60), 0,
"USA", "HST", 0, (10 * 60), 0,
0, "YST", "YDT", ( 9 * 60), TM_DST,
0, "PST", "PDT", ( 8 * 60), TM_DST,
0, "PST", "PPET", ( 8 * 60), TM_DST,
0, "MST", "MDT", ( 7 * 60), TM_DST,
0, "CST", "CDT", ( 6 * 60), TM_DST,
0, "EST", "EDT", ( 5 * 60), TM_DST,
"CAN", "AST", "ADT", ( 4 * 60), TM_DST,
0, "NST", 0, ( 3 * 60 + 30), 0,
"GBR", "", "BST", ( 0 * 60), TM_DST,
"EUR", "WET", 0, ( 0 * 60), TM_DST,
0, "CET", 0, -( 1 * 60), TM_DST,
0, "MET", 0, -( 1 * 60), TM_DST,
0, "EET", 0, -( 2 * 60), TM_DST,
"ISR", "IST", "IDT", -( 3 * 60), TM_DST,
"IND", "IST", 0, -( 5 * 60 + 30 ), 0,
"CHN", "HKT", 0, -( 8 * 60), 0,
"KOR", "KST", "KDT", -( 8 * 60), TM_DST,
"SNG", "SST", 0, -( 8 * 60), 0,
"JPN", "JST", 0, -( 9 * 60), 0,
"AUS", "AWST", 0, -( 8 * 60), 0,
0, "WST", 0, -( 8 * 60), 0,
0, "ACST", 0, -( 9 * 60 + 30),TM_DST,
0, "CST", 0, -( 9 * 60 + 30),TM_DST,
0, "AEST", 0, -(10 * 60), TM_DST,
0, "EST", 0, -(10 * 60), TM_DST,
"NZL", "NZST", "NZDT", -(12 * 60), TM_DST,
0, 0, 0, 0, 0
};
#if _BLD_ast && defined(__EXPORT__)
#define extern extern __EXPORT__
#endif
extern Tm_data_t _tm_data_;
#undef extern
Tm_data_t _tm_data_ = { format, lex, digit, days, sum, leap, zone };
__EXTERN__(Tm_data_t, _tm_data_);
__EXTERN__(Tm_data_t*, _tm_datap_);
Tm_data_t* _tm_datap_ = &_tm_data_;