diff options
Diffstat (limited to 'usr/src/lib/libshell/common/include/streval.h')
-rw-r--r-- | usr/src/lib/libshell/common/include/streval.h | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/usr/src/lib/libshell/common/include/streval.h b/usr/src/lib/libshell/common/include/streval.h deleted file mode 100644 index 32ccbb6824..0000000000 --- a/usr/src/lib/libshell/common/include/streval.h +++ /dev/null @@ -1,198 +0,0 @@ -/*********************************************************************** -* * -* This software is part of the ast package * -* Copyright (c) 1982-2010 AT&T Intellectual Property * -* and is licensed under the * -* Common Public License, Version 1.0 * -* by AT&T Intellectual Property * -* * -* A copy of the License is available at * -* http://www.opensource.org/licenses/cpl1.0.txt * -* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * -* * -* Information and Software Systems Research * -* AT&T Research * -* Florham Park NJ * -* * -* David Korn <dgk@research.att.com> * -* * -***********************************************************************/ -#pragma prototyped -#ifndef SEQPOINT -/* - * D. G. Korn - * - * arithmetic expression evaluator - */ - -/* The following only is needed for const */ -#include <ast.h> -#include <math.h> -#if _AST_VERSION >= 20030127L -# include <ast_float.h> -#endif - -#if _ast_fltmax_double -#define LDBL_LLONG_MAX DBL_LLONG_MAX -#define LDBL_ULLONG_MAX DBL_ULLONG_MAX -#define LDBL_LLONG_MIN DBL_LLONG_MIN -#endif - -#ifndef LDBL_LLONG_MAX -# ifdef LLONG_MAX -# define LDBL_LLONG_MAX ((Sfdouble_t)LLONG_MAX) -# else -# ifdef LLONG_MAX -# define LDBL_LLONG_MAX ((Sfdouble_t)LLONG_MAX) -# else -# define LDBL_LLONG_MAX ((Sfdouble_t)((((Sflong_t)1) << (8*sizeof(Sflong_t)-1)) -1 )) -# endif -# endif -#endif -#ifndef LDBL_ULLONG_MAX -# ifdef ULLONG_MAX -# define LDBL_ULLONG_MAX ((Sfdouble_t)ULLONG_MAX) -# else -# define LDBL_ULLONG_MAX (2.*((Sfdouble_t)LDBL_LLONG_MAX)) -# endif -#endif -#ifndef LDBL_LLONG_MIN -# ifdef LLONG_MIN -# define LDBL_LLONG_MIN ((Sfdouble_t)LLONG_MIN) -# else -# define LDBL_LLONG_MIN (-LDBL_LLONG_MAX) -# endif -#endif -#ifndef LDBL_DIG -# define LDBL_DIG DBL_DIG -#endif - -struct lval -{ - char *value; - Sfdouble_t (*fun)(Sfdouble_t,...); - const char *expr; - short flag; - char isfloat; - char nargs; - short emode; - short level; - short elen; - char nosub; -}; - -struct mathtab -{ - char fname[16]; - Sfdouble_t (*fnptr)(Sfdouble_t,...); -}; - -typedef struct _arith_ -{ - unsigned char *code; - const char *expr; - Sfdouble_t (*fun)(const char**,struct lval*,int,Sfdouble_t); - short size; - short staksize; - short emode; - short elen; -} Arith_t; -#define ARITH_COMP 04 /* set when compile separate from execute */ - -#define MAXPREC 15 /* maximum precision level */ -#define SEQPOINT 0200 /* sequence point */ -#define NOASSIGN 0100 /* assignment legal with this operator */ -#define RASSOC 040 /* right associative */ -#define NOFLOAT 020 /* illegal with floating point */ -#define PRECMASK 017 /* precision bit mask */ - -#define A_EOF 1 -#define A_NEQ 2 -#define A_NOT 3 -#define A_MOD 4 -#define A_ANDAND 5 -#define A_AND 6 -#define A_LPAR 7 -#define A_RPAR 8 -#define A_POW 9 -#define A_TIMES 10 -#define A_PLUSPLUS 11 -#define A_PLUS 12 -#define A_COMMA 13 -#define A_MINUSMINUS 14 -#define A_MINUS 15 -#define A_DIV 16 -#define A_LSHIFT 17 -#define A_LE 18 -#define A_LT 19 -#define A_EQ 20 -#define A_ASSIGN 21 -#define A_COLON 22 -#define A_RSHIFT 23 -#define A_GE 24 -#define A_GT 25 -#define A_QCOLON 26 -#define A_QUEST 27 -#define A_XOR 28 -#define A_OROR 29 -#define A_OR 30 -#define A_TILDE 31 -#define A_REG 32 -#define A_DIG 33 -#define A_INCR 34 -#define A_DECR 35 -#define A_PUSHV 36 -#define A_PUSHL 37 -#define A_PUSHN 38 -#define A_PUSHF 39 -#define A_STORE 40 -#define A_POP 41 -#define A_SWAP 42 -#define A_UMINUS 43 -#define A_JMPZ 44 -#define A_JMPNZ 45 -#define A_JMP 46 -#define A_CALL1F 47 -#define A_CALL2F 48 -#define A_CALL3F 49 -#define A_CALL1I 50 -#define A_CALL2I 51 -#define A_DOT 52 -#define A_LIT 53 -#define A_NOTNOT 54 -#define A_ASSIGNOP 55 - - -/* define error messages */ -extern const unsigned char strval_precedence[35]; -extern const char strval_states[64]; -extern const char e_moretokens[]; -extern const char e_argcount[]; -extern const char e_paren[]; -extern const char e_badnum[]; -extern const char e_badcolon[]; -extern const char e_recursive[]; -extern const char e_divzero[]; -extern const char e_synbad[]; -extern const char e_notlvalue[]; -extern const char e_function[]; -extern const char e_questcolon[]; -extern const char e_incompatible[]; -extern const char e_domain[]; -extern const char e_overflow[]; -extern const char e_singularity[]; -extern const char e_dict[]; -extern const char e_charconst[]; -extern const struct mathtab shtab_math[]; - -/* function code for the convert function */ - -#define LOOKUP 0 -#define ASSIGN 1 -#define VALUE 2 -#define MESSAGE 3 - -extern Sfdouble_t strval(const char*,char**,Sfdouble_t(*)(const char**,struct lval*,int,Sfdouble_t),int); -extern Arith_t *arith_compile(const char*,char**,Sfdouble_t(*)(const char**,struct lval*,int,Sfdouble_t),int); -extern Sfdouble_t arith_exec(Arith_t*); -#endif /* !SEQPOINT */ |