📄 dates.lex
字号:
/* * dates.lex: An example of using start states to * distinguish between different date formats. */%{#include <ctype.h>char month[20],dow[20],day[20],year[20];%}skip of|the|[ \t,]*mon (mon(day)?)tue (tue(sday)?)wed (wed(nesday)?)thu (thu(rsday)?)fri (fri(day)?)sat (sat(urday)?)sun (sun(day)?)day_of_the_week ({mon}|{tue}|{wed}|{thu}|{fri}|{sat}|{sun})jan (jan(uary)?)feb (feb(ruary)?)mar (mar(ch)?)apr (apr(il)?)may (may)jun (jun(e)?)jul (jul(y)?)aug (aug(ust)?)sep (sep(tember)?)oct (oct(ober)?)nov (nov(ember)?)dec (dec(ember)?)first_half ({jan}|{feb}|{mar}|{apr}|{may}|{jun})second_half ({jul}|{aug}|{sep}|{oct}|{nov}|{dec})month {first_half}|{second_half}nday [1-9]|[1-2][0-9]|3[0-1]nmonth [1-9]|1[0-2]nyear [0-9]{1,4}year_ext (ad|AD|bc|BC)?day_ext (st|nd|rd|th)?%s LONG SHORT%s DAY DAY_FIRST YEAR_FIRST YEAR_LAST YFMONTH YLMONTH%% /* the default is month-day-year */<LONG>{day_of_the_week} strcpy(dow,yytext); <LONG>{month} strcpy(month,yytext); BEGIN(DAY); /* handle the form: day-month-year */<LONG>{nday}{day_ext} strcpy(day,yytext); BEGIN(DAY_FIRST);<DAY_FIRST>{month} strcpy(month,yytext); BEGIN(LONG);<DAY>{nday}{day_ext} strcpy(day,yytext); BEGIN(LONG); <LONG>{nyear}{year_ext} { printf("Long:\n"); printf(" DOW : %s \n",dow); printf(" Day : %s \n",day); printf(" Month : %s \n",month); printf(" Year : %s \n",yytext); strcpy(dow,""); strcpy(day,""); strcpy(month,""); } /* handle dates of the form: day-month-year */<SHORT>{nday} strcpy(day,yytext); BEGIN(YEAR_LAST);<YEAR_LAST>{nmonth} strcpy(month,yytext);BEGIN(YLMONTH);<YLMONTH>{nyear} strcpy(year,yytext); BEGIN(SHORT); /* handle dates of the form: year-month-day */<SHORT>{nyear} strcpy(year,yytext); BEGIN(YEAR_FIRST);<YEAR_FIRST>{nmonth} strcpy(month,yytext);BEGIN(YFMONTH);<YFMONTH>{nday} strcpy(day,yytext); BEGIN(SHORT);<SHORT>\n { printf("Short:\n"); printf(" Day : %s \n",day); printf(" Month : %s \n",month); printf(" Year : %s \n",year); strcpy(year,""); strcpy(day,""); strcpy(month,""); }long\n BEGIN(LONG);short\n BEGIN(SHORT);{skip}*\n.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -