Parsifal Software - Home | AnaGram trial copy | Example download
#ifndef EVALDEFS_H
#define EVALDEFS_H
/*****************************************************************
EVALDEFS.H
Interface declarations for EVALKERN.SYN
Copyright (c) 1996 - 1999 Parsifal Software. All Rights Reserved.
For further information about this program, contact
Parsifal Software
http://www.parsifalsoft.com
info@parsifalsoft.com
1-800-879-2755, Voice/Fax 1-508-358-2564
P.O. Box 219
Wayland, MA 01778
*****************************************************************/
/*****************************************************************
Override AnaGram defaults
*****************************************************************/
/* override default definition of SYNTAX_ERROR */
#define SYNTAX_ERROR diagnoseError(evalKernel_pcb.error_message)
/*****************************************************************
Define compile time constants
*****************************************************************/
/* define array sizes */
#define CHAR_STACK_LENGTH 1000 /* Length of char stack */
#define ARG_STACK_LENGTH 200 /* Length of arg stack */
#define N_VARIABLES 100 /* Size of symbol table */
/*****************************************************************
Define data types
*****************************************************************/
/* Define an error record */
typedef struct {
char *message; /* identifies error */
int line; /* location of error */
int column;
} ErrorRecord;
/* Define a symbol table entry */
typedef struct {
char *name;
double value;
} VariableDescriptor;
/**********************************************************************
Function prototypes
**********************************************************************/
void pushChar(int character);
void pushArg(double value);
double checkZero(double value);
double *locateVariable(int nameLength);
double callFunction(int nameLength, int argCount);
void diagnoseError(char *message);
int evaluateExpression(char *expressionString);
/**********************************************************************
Global data
**********************************************************************/
/* Support for error diagnostics */
extern ErrorRecord errorRecord;
/* Symbol table */
extern VariableDescriptor variable[];
extern int nVariables;
#endif
Comments or questions? support@parsifalsoft.com