Instrument Neutral Distributed Interface INDI  2.0.2
Classes | Macros | Enumerations | Functions
compiler.c File Reference
#include <ctype.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Classes

struct  Var
 

Macros

#define LPAREN   255
 
#define RPAREN   254
 
#define COMMA   253
 
#define ERR   (-1)
 
#define UNI_PREC   7 /* unary ops have highest precedence */
 
#define MAX_STACK   32
 
#define MAX_PROG   32
 
#define OP_SHIFT   8
 
#define OP_MASK   0xff
 
#define MAX_OPX   64 /* max number of operands */
 
#define MAXFLDLEN   64 /* longest allowed operand name */
 

Enumerations

enum  {
  HALT , ADD , SUB , MULT ,
  DIV , AND , OR , GT ,
  GE , EQ , NE , LT ,
  LE , NEG , NOT , CONST ,
  VAR , ABS , FLOOR , SIN ,
  COS , TAN , ASIN , ACOS ,
  ATAN , PITOK , DEGRAD , RADDEG ,
  LOG , LOG10 , EXP , SQRT ,
  POW , ATAN2
}
 

Functions

int compileExpr (char *exp, char *errbuf)
 
int evalExpr (double *vp, char *errbuf)
 
int setOperand (char *name, double valu)
 
int allOperandsSet ()
 
int getAllOperands (char ***ops)
 
int getSetOperands (char ***ops)
 
int getUnsetOperands (char ***ops)
 
void compiler_log (char *name, double value)
 

Macro Definition Documentation

◆ COMMA

#define COMMA   253

Definition at line 76 of file compiler.c.

◆ ERR

#define ERR   (-1)

Definition at line 77 of file compiler.c.

◆ LPAREN

#define LPAREN   255

Definition at line 74 of file compiler.c.

◆ MAX_OPX

#define MAX_OPX   64 /* max number of operands */

Definition at line 106 of file compiler.c.

◆ MAX_PROG

#define MAX_PROG   32

Definition at line 95 of file compiler.c.

◆ MAX_STACK

#define MAX_STACK   32

Definition at line 87 of file compiler.c.

◆ MAXFLDLEN

#define MAXFLDLEN   64 /* longest allowed operand name */

Definition at line 107 of file compiler.c.

◆ OP_MASK

#define OP_MASK   0xff

Definition at line 98 of file compiler.c.

◆ OP_SHIFT

#define OP_SHIFT   8

Definition at line 97 of file compiler.c.

◆ RPAREN

#define RPAREN   254

Definition at line 75 of file compiler.c.

◆ UNI_PREC

#define UNI_PREC   7 /* unary ops have highest precedence */

Definition at line 84 of file compiler.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
HALT 
ADD 
SUB 
MULT 
DIV 
AND 
OR 
GT 
GE 
EQ 
NE 
LT 
LE 
NEG 
NOT 
CONST 
VAR 
ABS 
FLOOR 
SIN 
COS 
TAN 
ASIN 
ACOS 
ATAN 
PITOK 
DEGRAD 
RADDEG 
LOG 
LOG10 
EXP 
SQRT 
POW 
ATAN2 

Definition at line 29 of file compiler.c.

Function Documentation

◆ allOperandsSet()

int allOperandsSet ( )

Definition at line 186 of file compiler.c.

◆ compileExpr()

int compileExpr ( char *  exp,
char *  errbuf 
)

Definition at line 127 of file compiler.c.

◆ compiler_log()

void compiler_log ( char *  name,
double  value 
)

Definition at line 249 of file compiler.c.

◆ evalExpr()

int evalExpr ( double *  vp,
char *  errbuf 
)

Definition at line 157 of file compiler.c.

◆ getAllOperands()

int getAllOperands ( char ***  ops)

Definition at line 199 of file compiler.c.

◆ getSetOperands()

int getSetOperands ( char ***  ops)

Definition at line 214 of file compiler.c.

◆ getUnsetOperands()

int getUnsetOperands ( char ***  ops)

Definition at line 230 of file compiler.c.

◆ setOperand()

int setOperand ( char *  name,
double  valu 
)

Definition at line 168 of file compiler.c.