/xbmc/visualizations/Milkdrop/vis_milkdrop/evallib/Scan.l
http://github.com/xbmc/xbmc · LEX · 54 lines · 45 code · 7 blank · 2 comment · 0 complexity · 75ffd13c29e7a513795ce397e69d8ccf MD5 · raw file
- %{
- #define YYSTYPE double
- #include "cal_tab.h"
- int c;
- extern YYSTYPE yylval;
- double translate(int type);
- void count(void);
- void setLastVar(void);
- int lookup(int *typeOfObject);
- struct lextab *lexswitch(struct lextab *lp);
- #define INTCONST 1
- #define DBLCONST 2
- #define HEXCONST 3
- #define VARIABLE 4
- #define OTHER 5
- %}
- digit = [0-9];
- letter = [a-zA-Z_];
- hex = [a-fA-F0-9];
- /* -- */
- space = [\40];
- /*number = (digit* | "-" digit*);*/
- number = digit*;
- exp = [Ee] number;
- doubl = number "." (digit* | digit* exp);
- %%
- hex hex* [hH] { count(); yylval = translate(HEXCONST); return VALUE; }
- digit* { count(); yylval = translate(INTCONST); return VALUE; }
- digit digit* [Dd] { count(); yylval = translate(INTCONST); return VALUE; }
- doubl { count(); yylval = translate(DBLCONST); return VALUE; }
- letter* { count(); { int typeOfObject; setLastVar(); yylval = lookup(&typeOfObject); return typeOfObject; }}
- letter (letter|digit)* { count(); { int typeOfObject; setLastVar(); yylval = lookup(&typeOfObject); return typeOfObject; }}
- '+' { count(); return '+'; }
- '-' { count(); return '-'; }
- '*' { count(); return '*'; }
- '/' { count(); return '/'; }
- '%' { count(); return '%'; }
- '&' { count(); return '&'; }
- '|' { count(); return '|'; }
- '(' { count(); return '('; }
- ')' { count(); return ')'; }
- '=' { count(); return '='; }
- ',' { count(); return ','; }
- ';' { count(); return ';'; }
- [ \t\v\f] { count(); }
- . { count(); }
- %%