summaryrefslogtreecommitdiff
path: root/libm/double/dcalc.h
blob: 0ec2a46dae86d94550bcba356b3f4d43105f3a0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*		calc.h
 * include file for calc.c
 */
 
/* 32 bit memory addresses: */
#define LARGEMEM 1

/* data structure of symbol table */
struct symbol
	{
	char *spel;
	short attrib;
#if LARGEMEM
	long sym;
#else
	short sym;
#endif
	};

struct funent
	{
	char *spel;
	short attrib;
	double (*fun )();
	};

struct varent
        {
	char *spel;
	short attrib;
	double *value;
        };

struct strent
	{
	char *spel;
	short attrib;
	char *string;
	};


/*	general symbol attributes:	*/
#define OPR 0x8000
#define	VAR 0x4000
#define CONST 0x2000
#define FUNC 0x1000
#define ILLEG 0x800
#define BUSY 0x400
#define TEMP 0x200
#define STRING 0x100
#define COMMAN 0x80
#define IND 0x1

/* attributes of operators (ordered by precedence): */
#define BOL 1
#define EOL 2
/* end of expression (comma): */
#define EOE 3
#define EQU 4
#define PLUS 5
#define MINUS 6
#define MULT 7
#define DIV 8
#define UMINUS 9
#define LPAREN 10
#define RPAREN 11
#define COMP 12
#define MOD 13
#define LAND 14
#define LOR 15
#define LXOR 16


extern struct funent funtbl[];
/*extern struct symbol symtbl[];*/
extern struct varent indtbl[];