/* Copyright 1983 - University of Maryland */

%{

#include "y.tab.h"

#undef  input
#undef  output
#undef  unput
#define allprint(c) (putchar(c))
#define sprint(str) (printf("%s",str))
#define output(c) (putchar(c))
#define input() (yytchar=yysptr>yysbuf?U(*--yysptr):getnextchar())
#define unput(c) (*yysptr++=(c))
#define yywrap() 1

%}
star	\*
dash	\-
slash	\/
plus	\+
ocurl	\{
ccurl	\}
space	[ \t] 
nu	[0-9][0-9]*
arb	[a-zA-Z]*
a	[aA]
b	[bB]
c	[cC]
d	[dD]
e	[eE]
f	[fF]
g	[gG]
h	[hH]
i	[iI]
j	[jJ]
k	[kK]
l	[lL]
m	[mM]
n	[nN]
o	[oO]
p	[pP]
q	[qQ]
r	[rR]
s	[sS]
t	[tT]
u	[uU]
v	[vV]
w	[wW]
x	[xX]
y	[yY]
z	[zZ]

%%

{star}{space}		{yylval=0;return(STAR);}
{star}{plus}{nu}	{sscanf(yytext,"*%d",&yylval);
			 return(STAR);}
{star}{dash}{nu}	{sscanf(yytext,"*%d",&yylval);
			 return(STAR);}

{nu}			{sscanf(yytext,"%d",&yylval);
			 return(NUM);}
{ocurl}			{return(OCURL);}
{ccurl}			{return(CCURL);}
{dash}			{return(DASH);}
{slash}			{return(SLASH);}

{j}{a}{n}{arb}	{yylval=1;return(MONTH);}
{f}{e}{b}{arb}	{yylval=2;return(MONTH);}
{m}{a}{r}{arb}	{yylval=3;return(MONTH);}
{a}{p}{r}{arb}	{yylval=4;return(MONTH);}
{m}{a}{y}{arb}	{yylval=5;return(MONTH);}
{j}{u}{n}{arb}	{yylval=6;return(MONTH);}
{j}{u}{l}{arb}	{yylval=7;return(MONTH);}
{a}{u}{g}{arb}	{yylval=8;return(MONTH);}
{s}{e}{p}{arb}	{yylval=9;return(MONTH);}
{o}{c}{t}{arb}	{yylval=10;return(MONTH);}
{n}{o}{v}{arb}	{yylval=11;return(MONTH);}
{d}{e}{c}{arb}	{yylval=12;return(MONTH);}

{s}{u}{n}{arb}	{yylval=0;return(DAY);}
{m}{o}{n}{arb}	{yylval=1;return(DAY);}
{t}{u}{e}{arb}	{yylval=2;return(DAY);}
{w}{e}{d}{arb}	{yylval=3;return(DAY);}
{t}{h}{u}{arb}	{yylval=4;return(DAY);}
{f}{r}{i}{arb}	{yylval=5;return(DAY);}
{s}{a}{t}{arb}	{yylval=6;return(DAY);}

[ \t,]	;
