/* * Created by IBM PC LEX from file "scan.l" * - for use with standard I/O */ #include #include #define LL16BIT int int _lmovb(struct lextab *lp, int c, int st) { int base; while ((base = lp->llbase[st]+c) > lp->llnxtmax || (lp->llcheck[base] & 0377) != st) { if (st != lp->llendst) { base = lp->lldefault[st] & 0377; st = base; } else return(-1); } return(lp->llnext[base]&0377); } int lexval; char lbuf[]; #define YYSTYPE int #include "cal_tab.h" int c; extern YYSTYPE yylval; int translate(int type); void count(void); void setLastVar(void); int lookup(int *typeOfObject); #define INTCONST 1 #define DBLCONST 2 #define HEXCONST 3 #define VARIABLE 4 #define OTHER 5 int _Alextab(__na__) { if (__na__ >= 0 && __na__ <= 19) count(); switch (__na__) { case 0: yylval = translate(HEXCONST); return VALUE; case 1: yylval = translate(INTCONST); return VALUE; case 2: yylval = translate(INTCONST); return VALUE; case 3: yylval = translate(DBLCONST); return VALUE; case 4: case 5: setLastVar(); yylval = lookup(&__na__); return __na__; case 6: return '+'; case 7: return '-'; case 8: return '*'; case 9: return '/'; case 10: return '%'; case 11: return '&'; case 12: return '|'; case 13: return '('; case 14: return ')'; case 15: return '='; case 16: return ','; case 17: return ';'; } return (LEXSKIP); } char _Flextab[] = { 1, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 4, 5, 5, 4, 4, 3, 3, 3, 3, 4, 0, 4, 5, 0, 5, 4, 1, 3, 0, 2, -1, 1, -1, }; char _Nlextab[] = { 36, 36, 36, 36, 36, 36, 36, 36, 36, 1, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 1, 36, 36, 36, 36, 9, 8, 36, 6, 5, 11, 13, 3, 12, 19, 10, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 36, 2, 36, 4, 36, 36, 36, 29, 29, 29, 29, 29, 29, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 36, 36, 36, 36, 18, 36, 29, 29, 29, 29, 29, 23, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 18, 18, 18, 18, 36, 7, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 36, 36, 36, 36, 36, 36, 36, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 36, 36, 36, 36, 17, 36, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 36, 36, 36, 36, 36, 36, 36, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 36, 36, 36, 36, 16, 36, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 36, 20, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 36, 36, 36, 36, 36, 36, 36, 25, 25, 25, 25, 25, 25, 36, 24, 36, 36, 36, 36, 36, 36, 20, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 25, 25, 25, 25, 25, 25, 36, 24, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 36, 36, 36, 36, 36, 36, 36, 28, 28, 28, 28, 28, 28, 36, 27, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 28, 28, 28, 28, 28, 28, 31, 27, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 34, 34, 34, 33, 34, 34, 36, 32, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 34, 34, 34, 33, 34, 34, 36, 32, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 36, 36, 36, 36, 36, 36, 36, 34, 34, 34, 34, 34, 34, 36, 32, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 34, 34, 34, 34, 34, 34, 36, 32, }; char _Clextab[] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -1, -1, -1, -1, -1, -1, -1, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -1, -1, -1, -1, 14, -1, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, -1, -1, -1, -1, -1, -1, -1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, -1, -1, -1, -1, 15, -1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, -1, 19, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, -1, -1, -1, -1, -1, -1, -1, 23, 23, 23, 23, 23, 23, -1, 23, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, 23, 23, 23, 23, 23, -1, 23, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, -1, -1, -1, -1, -1, -1, -1, 26, 26, 26, 26, 26, 26, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, 26, 26, 26, 26, 26, 30, 26, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, -1, -1, -1, -1, -1, -1, -1, 30, 30, 30, 30, 30, 30, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, 30, 30, 30, 30, 30, -1, 30, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, -1, -1, -1, -1, -1, -1, -1, 33, 33, 33, 33, 33, 33, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 33, 33, 33, 33, 33, -1, 33, }; char _Dlextab[] = { 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 15, 14, 14, 36, 36, 20, 19, 14, 14, 23, 15, 15, 26, 23, 36, 19, 36, 36, 33, 30, }; int _Blextab[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 152, 0, 0, 0, 227, 237, 0, 0, 249, 0, 0, 306, 0, 0, 0, 363, 0, 0, 420, 0, 0, 0, }; struct lextab lextab = { 36, _Dlextab, _Nlextab, _Clextab, _Blextab, 524, _lmovb, _Flextab, _Alextab, NULL, 0, 0, 0, };