123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- /*
- Expression Evaluator Library (NS-EEL) v2
- Copyright (C) 2004-2008 Cockos Incorporated
- Copyright (C) 1999-2003 Nullsoft, Inc.
-
- nseel-lextab.c
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
- */
- #include "ns-eel-int.h"
- #define LEXSKIP (-1)
- static 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);
- }
- #define INTCONST 1
- #define DBLCONST 2
- #define HEXCONST 3
- #define VARIABLE 4
- #define OTHER 5
- static int _Alextab(compileContext *ctx, int __na__)
- {
- // fucko: JF> 17 -> 19?
-
- if (__na__ >= 0 && __na__ <= 17)
- nseel_count(ctx);
- switch (__na__)
- {
- case 0:
- *ctx->yytext = 0;
- nseel_gettoken(ctx,ctx->yytext, sizeof(ctx->yytext));
- if (ctx->yytext[0] < '0' || ctx->yytext[0] > '9') // not really a hex value, lame
- {
- nseel_setLastVar(ctx); ctx->yylval = nseel_lookup(ctx,&__na__); return __na__;
- }
- ctx->yylval = nseel_translate(ctx,HEXCONST);
- return VALUE;
- case 1: ctx->yylval = nseel_translate(ctx,INTCONST); return VALUE;
- case 2: ctx->yylval = nseel_translate(ctx,INTCONST); return VALUE;
- case 3: ctx->yylval = nseel_translate(ctx,DBLCONST); return VALUE;
- case 4:
- case 5: nseel_setLastVar(ctx); ctx->yylval = nseel_lookup(ctx,&__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);
- }
- static 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,
- };
- static 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,
- };
- static 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,
- };
- static 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,
- };
- static 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 nseel_lextab = {
- 36,
- _Dlextab,
- _Nlextab,
- _Clextab,
- _Blextab,
- 524,
- _lmovb,
- _Flextab,
- _Alextab,
- 0,
- 0,
- 0,
- 0,
- };
-
|