diff options
Diffstat (limited to 'scantime.ll')
-rw-r--r-- | scantime.ll | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/scantime.ll b/scantime.ll new file mode 100644 index 00000000..02d00d78 --- /dev/null +++ b/scantime.ll @@ -0,0 +1,29 @@ +%option c++ 8bit + +%{ +#define YYSTYPE struct ledger::intorchar + +extern int yywrap(); + +#include "times.h" +#include "parsetime.h" + +extern YYSTYPE yylval; +%} + +shortmon (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) +longmon (January|February|March|April|May|June|July|August|September|October|November|December) + +%% + +[ \t] return TOK_SPACE; +[\r\n] ; + +[0-9]{4} yylval = ledger::intorchar(std::atoi(yytext)); return TOK_FOURNUM; +[0-9]{2} yylval = ledger::intorchar(std::atoi(yytext)); return TOK_TWONUM; +[0-9]{1} yylval = ledger::intorchar(std::atoi(yytext)); return TOK_ONENUM; + +{shortmon} yylval = ledger::intorchar(yytext); return TOK_MONTH; +{longmon} yylval = ledger::intorchar(yytext); return TOK_MONTH; + +. return (int) yytext[0]; |