typedef struct { byte EED_errorCode; /* ParserScannerEvaluatorError */ } EvalErrorData;
typedef ByteFlags EvalFlags; #define EF_MAKE_DEPENDENCIES 0x80 #define EF_ONLY_NAMES 0x40 #define EF_KEEP_LAST_CELL 0x20 #define EF_NO_NAMES 0x10 #define EF_ERROR_PUSHED 0x08 #define EVAL_MAX_NESTED_LEVELS 32
typedef struct { CommonParameters EP_common; EvalFlags EP_flags; word EP_fpStack; word EP_depHandle; word EP_nestedLevel; dword EP_nestedAddresses[EVAL_MAX_NESTED_LEVELS]; } EvalParameters;
typedef struct { CellReference ERD_firstCell; CellReference ERD_lastCell; } EvalRangeData;
typedef union { EvalStringData ESAD_string; EvalRangeData ESAD_range; EvalErrorData ESAD_error; } EvalStackArgumentData;
typedef ByteFlags EvalStackArgumentType; #define ESAT_EMPTY 0x80 #define ESAT_ERROR 0x40 #define ESAT_RANGE 0x20 #define ESAT_STRING 0x10 #define ESAT_NUMBER 0x08 #define ESAT_NUM_TYPE 0x03 #define ESAT_TOP_OF_STACK 0 #define ESAT_NAME (ESAT_RANGE | ESAT_STRING) #define ESAT_FUNCTION (ESAT_NUMBER | ESAT_STRING)
typedef union { EvalOperatorData ESOD_operator; EvalFunctionData ESOD_function; } EvalStackOperatorData;
typedef ByteEnum EvalStackOperatorType; #define ESOT_OPERATOR 0 #define ESOT_FUNCTION 1 #define ESOT_OPEN_PAREN 2 #define ESOT_TOP_OF_STACK 3
typedef ByteFlags ExitFlags; #define EF_PANIC 0x80 #define EF_RUN_DOS 0x40 #define EF_OLD_EXIT 0x20 #define EF_RESET 0x10 #define EF_RESTART 0x08
typedef ByteFlags ExportControlToolboxFeatures; #define EXPORTCTF_DIALOG_BOX 0x01