/******************************************************************************/
/*                                                                            */
/* CONST.H - System and program limitation constants                          */
/*           This also contains typedefs, structs, et cetera.                 */
/*                                                                            */
/******************************************************************************/

#define MAXPOSNUM 2147483647

#if ! defined ( PI )
#define PI 3.141592653589793
#endif

#define ERROR_ESCAPE 1
#define ERROR_ABORT 2
#define ERROR_INSUFFICIENT_MEMORY 3
#define ERROR_CANNOT_OPEN_FILE 5
#define ERROR_CANNOT_READ_FILE 6
#define ERROR_BAD_PARAMETER 8
#define ERROR_REFERENCE_NO_SECONDARY 10
#define ERROR_INVALID_PRODUCTION_OPERATION 11

#define KEY_ESCAPE 27

#define P_PLUS 1
#define P_MINUS 2
#define P_PRIMARY 3
#define P_SECONDARY 4
#define P_NOLINE 5
#define P_PUSH 6
#define P_POP 7
#define P_SHRINK 8
#define P_FORWARD 9
#define P_PITCH_DOWN 10
#define P_PITCH_UP 11
#define P_ROLL_LEFT 12
#define P_ROLL_RIGHT 13
#define P_TURN_AROUND 14
#define P_STEP 16
#define P_START_BRACE 17
#define P_END_BRACE 18
#define P_COLOR 19
#define P_NAME 20


#define MAX_NAME_LENGTH 15     /* Max characters in a macro or production name */
#define MAX_RULE 63            /* Max characters in ER and AG axiom and production rules (ignored for 3DAG) */
#define MAX_PRODUCTIONS 64     /* Max 3DAG macros and productions (each) */
#define MAX_RANDOMS 3          /* Max random version of same production */
#define MAX_LINE 1024          /* Max characters in a 3DAG line */
