#include #include #include "nab.h" #include "y.tab.h" #include "errormsg.h" #include "symbol.h" #define BIT(e) (1<<(e)) #define INSET(e,s) (BIT(e)&(s)) extern int cg_emsg_lineno; extern SYMREC_T *astk[]; extern int astkp; static int akind; SYMREC_T *findsym(); static void checkattr(); void checkid(); static char typetab[][15][15] = { { { T_ERROR,T_INT,T_SIZE_T,T_FLOAT,T_STRING,T_POINT,T_MATRIX,T_FILE,T_ATOM,T_RESIDUE,T_MOLECULE,T_BOUNDS,T_ERROR,T_USER,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_INT,T_SIZE_T,T_FLOAT,T_INT,T_ERROR,T_ERROR,T_INT,T_INT,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_STRING,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_NULL,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_MATRIX,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_FILE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_NULL,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ATOM,T_ERROR,T_ERROR,T_ERROR,T_NULL,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_RESIDUE,T_ERROR,T_ERROR,T_NULL,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_MOLECULE,T_ERROR,T_NULL,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_BOUNDS,T_NULL,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_STRING,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_MATRIX,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_FILE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ATOM,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_RESIDUE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_MOLECULE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_BOUNDS,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_ERROR,T_UNDEF,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_UNDEF,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ATOM,T_ATOM,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_RESIDUE,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_STRING,T_ERROR,T_STRING,T_STRING,T_STRING,T_STRING,T_STRING,T_STRING,T_STRING,T_STRING,T_STRING,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_INT,T_INT,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_SIZE_T,T_SIZE_T,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_STRING,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_STRING,T_STRING,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_POINT,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_MATRIX,T_MATRIX,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FILE,T_FILE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ATOM,T_ATOM,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_RESIDUE,T_RESIDUE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_MOLECULE,T_MOLECULE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_BOUNDS,T_BOUNDS,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_USER,T_USER,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_STRING,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_MATRIX,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_FILE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ATOM,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_RESIDUE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_MOLECULE,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_BOUNDS,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_USER,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_INT,T_SIZE_T,T_FLOAT,T_STRING,T_POINT,T_MATRIX,T_FILE,T_ATOM,T_RESIDUE,T_MOLECULE,T_BOUNDS,T_NULL,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_INT,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_SIZE_T,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_INT,T_SIZE_T,T_FLOAT,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_INT,T_ERROR,T_ERROR,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_INT,T_INT,T_FLOAT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_INT,T_SIZE_T,T_FLOAT,T_STRING,T_POINT,T_MATRIX,T_FILE,T_ATOM,T_RESIDUE,T_MOLECULE,T_BOUNDS,T_NULL,T_USER,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_STRING,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_INT,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_SIZE_T,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_STRING,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_POINT,T_POINT,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_SIZE_T,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_POINT,T_POINT,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_SIZE_T,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_FLOAT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_POINT,T_POINT,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_INT,T_SIZE_T,T_FLOAT,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_SIZE_T,T_SIZE_T,T_FLOAT,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_FLOAT,T_FLOAT,T_FLOAT,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_POINT,T_POINT,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_INT,T_INT,T_FLOAT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_INT,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } ,{ { T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_POINT,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } ,{ T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR,T_ERROR } } }; void checkexpr( expr ) NODE_T *expr; { NODE_T *npl, *npr, *npd; char *fname; int class, nd; SYMREC_T *s_array; int l_class, r_class, o_class; int l_kind, r_kind, o_kind; int t_idx, l_type, r_type, o_type; if( expr ){ npl = expr->n_left; npr = expr->n_right; if( expr->n_sym==SYM_LBRACK ){ s_array = findsym( npl->n_val.v_value.v_cval ); akind = s_array ? s_array->s_kind : K_UNDEF; astk[ astkp ] = s_array; astkp++; } checkexpr( npl ); checkexpr( npr ); cg_emsg_lineno = expr->n_lineno; l_class = npl ? npl->n_class : C_UNDEF; r_class = npr ? npr->n_class : C_UNDEF; l_kind = npl ? npl->n_kind : K_UNDEF; r_kind = npr ? npr->n_kind : K_UNDEF; l_type = npl ? npl->n_type : T_UNDEF; r_type = npr ? npr->n_type : T_UNDEF; switch( expr->n_sym ){ case SYM_IDENT : checkid( expr ); break; case SYM_PERIOD : checkattr( expr, npl, npr ); break; case SYM_ALLOCATE : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( r_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'allocate stmt': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 0; if( INSET( r_kind, 010 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'allocate stmt': right operand has wrong kind.\n"); break; } o_kind = K_DARRAY; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'allocate stmt': operands have wrong types.\n"); } break; case SYM_AND : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '&&': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '&&': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 1; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '&&': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '&&': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '&&': operands have wrong types.\n"); } break; case SYM_ASSERT : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'assert stmt': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 2; if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'assert stmt': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'assert stmt': operands have wrong types.\n"); } break; case SYM_ASSIGN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0352 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 3; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=': right operand has wrong kind.\n"); break; } o_kind = l_kind; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=': operands have wrong types.\n"); } break; case SYM_ATSIGN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0150 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '@': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0150 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '@': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 4; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '@': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '@': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '@': operands have wrong types.\n"); } break; case SYM_CALL : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 020 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'function call': left operand has wrong class.\n"); break; } if( !INSET( r_class, 01 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'function call': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 5; if( INSET( l_kind, 02 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'function call': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 01 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'function call': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'function call': operands have wrong types.\n"); } break; case SYM_DEALLOCATE : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( r_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'deallocate stmt': right operand has wrong class.\n"); break; } o_class = C_UNDEF; t_idx = 6; if( INSET( r_kind, 040 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'deallocate stmt': right operand has wrong kind.\n"); break; } o_kind = K_UNDEF; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'deallocate stmt': operands have wrong types.\n"); } break; case SYM_DELETE : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( r_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'delete stmt': right operand has wrong class.\n"); break; } o_class = C_UNDEF; t_idx = 7; if( INSET( r_kind, 0104 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'delete stmt': right operand has wrong kind.\n"); break; } o_kind = K_UNDEF; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'delete stmt': operands have wrong types.\n"); } break; case SYM_DONT_MATCH : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!~': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!~': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 8; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!~': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!~': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!~': operands have wrong types.\n"); } break; case SYM_EQUAL : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0352 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '==': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0352 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '==': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 9; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '==': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '==': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '==': operands have wrong types.\n"); } break; case SYM_FOREACH : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'for in loop': left operand has wrong class.\n"); break; } if( !INSET( r_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'for in loop': right operand has wrong class.\n"); break; } o_class = C_UNDEF; t_idx = 10; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'for in loop': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else if( INSET( r_kind, 0100 ) ) t_idx += 1; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'for in loop': right operand has wrong kind.\n"); break; } o_kind = K_UNDEF; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'for in loop': operands have wrong types.\n"); } break; case SYM_GREATER_EQUAL : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 12; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>=': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>=': operands have wrong types.\n"); } break; case SYM_GREATER : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 13; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '>': operands have wrong types.\n"); } break; case SYM_INDEX : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'array index expr': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0153 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'array index expr': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 14; if( INSET( akind, 060 ) ) t_idx += 0; else if( INSET( akind, 0100 ) ) t_idx += 1; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'array index expr': array operand has wrong kind.\n"); break; } if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'array index expr': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 017 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'array index expr': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'array index expr': operands have wrong types.\n"); } break; case SYM_IN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'in': left operand has wrong class.\n"); break; } if( !INSET( r_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'in': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 16; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'in': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 0100 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'in': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'in': operands have wrong types.\n"); } break; case SYM_LBRACK : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '[': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '[': right operand has wrong class.\n"); break; } o_class = C_VAR; t_idx = 17; if( INSET( l_kind, 060 ) ) t_idx += 0; else if( INSET( l_kind, 0100 ) ) t_idx += 1; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '[': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '[': right operand has wrong kind.\n"); break; } if( INSET( l_kind, 020 ) ) o_kind = K_SCALAR; if( INSET( l_kind, 040 ) ) o_kind = K_DARRAYEL; if( INSET( l_kind, 0100 ) ) o_kind = K_HASHEL; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '[': operands have wrong types.\n"); } break; case SYM_LESS_EQUAL : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 19; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<=': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<=': operands have wrong types.\n"); } break; case SYM_LESS : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 20; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '<': operands have wrong types.\n"); } break; case SYM_LPAREN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 01 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '(': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0352 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '(': right operand has wrong class.\n"); break; } o_class = r_class; t_idx = 21; if( INSET( l_kind, 01 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '(': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 0176 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '(': right operand has wrong kind.\n"); break; } o_kind = r_kind; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '(': operands have wrong types.\n"); } break; case SYM_MATCH : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=~': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=~': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 22; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=~': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=~': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '=~': operands have wrong types.\n"); } break; case SYM_MINUS_ASSIGN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 23; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-=': right operand has wrong kind.\n"); break; } o_kind = l_kind; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-=': operands have wrong types.\n"); } break; case SYM_MINUS_MINUS : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 011 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '--': left operand has wrong class.\n"); break; } if( !INSET( r_class, 011 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '--': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 24; if( INSET( l_kind, 017 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '--': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 017 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '--': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '--': operands have wrong types.\n"); } break; case SYM_MINUS : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 25; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '-': operands have wrong types.\n"); } break; case SYM_MODULUS_ASSIGN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 26; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%=': right operand has wrong kind.\n"); break; } o_kind = l_kind; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%=': operands have wrong types.\n"); } break; case SYM_MODULUS : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 27; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '%': operands have wrong types.\n"); } break; case SYM_NEGATE : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '(Unary) -': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 28; if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '(Unary) -': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '(Unary) -': operands have wrong types.\n"); } break; case SYM_NOT_EQUAL : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0352 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0352 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 29; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!=': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!=': operands have wrong types.\n"); } break; case SYM_NOT : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 30; if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '!': operands have wrong types.\n"); } break; case SYM_OR : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '||': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '||': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 31; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '||': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '||': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '||': operands have wrong types.\n"); } break; case SYM_PARM : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( r_class, 0372 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'parameter': right operand has wrong class.\n"); break; } o_class = C_UNDEF; t_idx = 32; if( INSET( r_kind, 0176 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'parameter': right operand has wrong kind.\n"); break; } o_kind = K_UNDEF; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'parameter': operands have wrong types.\n"); } break; case SYM_PLUS_ASSIGN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 33; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+=': right operand has wrong kind.\n"); break; } o_kind = l_kind; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+=': operands have wrong types.\n"); } break; case SYM_PLUS_PLUS : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 011 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '++': left operand has wrong class.\n"); break; } if( !INSET( r_class, 011 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '++': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 34; if( INSET( l_kind, 017 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '++': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 017 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '++': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '++': operands have wrong types.\n"); } break; case SYM_PLUS : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 35; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '+': operands have wrong types.\n"); } break; case SYM_SLASH_ASSIGN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 36; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/=': right operand has wrong kind.\n"); break; } o_kind = l_kind; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/=': operands have wrong types.\n"); } break; case SYM_SLASH : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 37; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '/': operands have wrong types.\n"); } break; case SYM_STAR_ASSIGN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 38; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*=': right operand has wrong kind.\n"); break; } o_kind = l_kind; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*=': operands have wrong types.\n"); } break; case SYM_STAR : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 39; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '*': operands have wrong types.\n"); } break; case SYM_TEST : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'test-for-true': right operand has wrong class.\n"); break; } o_class = C_UNDEF; t_idx = 40; if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'test-for-true': right operand has wrong kind.\n"); break; } o_kind = K_UNDEF; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator 'test-for-true': operands have wrong types.\n"); } break; case SYM_UPARROW_ASSIGN : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 010 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^=': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^=': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 41; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^=': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^=': right operand has wrong kind.\n"); break; } o_kind = l_kind; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^=': operands have wrong types.\n"); } break; case SYM_UPARROW : expr->n_class = C_UNDEF; expr->n_kind = K_UNDEF; expr->n_type = T_UNDEF; if( l_type == T_ERROR || r_type == T_ERROR ){ expr->n_type = T_ERROR; break; } if( !INSET( l_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^': left operand has wrong class.\n"); break; } if( !INSET( r_class, 0152 ) ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^': right operand has wrong class.\n"); break; } o_class = C_EXPR; t_idx = 42; if( INSET( l_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^': left operand has wrong kind.\n"); break; } if( INSET( r_kind, 016 ) ) t_idx += 0; else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^': right operand has wrong kind.\n"); break; } o_kind = K_SCALAR; o_type = typetab[t_idx][l_type][r_type]; if( o_type != T_ERROR ){ expr->n_class = o_class; expr->n_kind = o_kind; expr->n_type = o_type; }else{ expr->n_type = T_ERROR; errormsg( FALSE,"operator '^': operands have wrong types.\n"); } break; } if( expr->n_sym==SYM_LBRACK ){ astkp--; if( astkp > 0 ) akind = astk[astkp-1]->s_kind; } } } typedef struct atrec_t { char *a_name; int a_type; int a_class; int a_kind; int a_in; int a_access; } ATREC_T; static ATREC_T attab[] = { { "atomname", T_STRING, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "atomnum", T_INT, C_EXPR, K_SCALAR, 0400, A_FUNCTION } ,{ "atomtype", T_STRING, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "bfact", T_FLOAT, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "charge", T_FLOAT, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "element", T_STRING, C_EXPR, K_SCALAR, 0400, A_DIRECT } ,{ "float1", T_FLOAT, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "float2", T_FLOAT, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "fullname", T_STRING, C_EXPR, K_SCALAR, 0400, A_FUNCTION } ,{ "int1", T_INT, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "natoms", T_INT, C_EXPR, K_SCALAR, 02000, A_FUNCTION } ,{ "nresidues", T_INT, C_EXPR, K_SCALAR, 02000, A_FUNCTION } ,{ "nstrands", T_INT, C_EXPR, K_SCALAR, 02000, A_FUNCTION } ,{ "occ", T_FLOAT, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "pos", T_POINT, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "radius", T_FLOAT, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "resid", T_STRING, C_VAR, K_SCALAR, 01400, A_DIRECT } ,{ "resname", T_STRING, C_VAR, K_SCALAR, 01400, A_DIRECT } ,{ "resnum", T_INT, C_EXPR, K_SCALAR, 01400, A_FUNCTION } ,{ "strandname", T_STRING, C_VAR, K_SCALAR, 01400, A_DIRECT } ,{ "strandnum", T_INT, C_EXPR, K_SCALAR, 01400, A_FUNCTION } ,{ "tatomnum", T_INT, C_EXPR, K_SCALAR, 0400, A_FUNCTION } ,{ "tresnum", T_INT, C_EXPR, K_SCALAR, 01400, A_FUNCTION } ,{ "w", T_FLOAT, C_VAR, K_SCALAR, 0400, A_DIRECT } ,{ "x", T_FLOAT, C_VAR, K_SCALAR, 0440, A_DIRECT } ,{ "y", T_FLOAT, C_VAR, K_SCALAR, 0440, A_DIRECT } ,{ "z", T_FLOAT, C_VAR, K_SCALAR, 0440, A_DIRECT } }; static int n_attab = sizeof( attab ) / sizeof( ATREC_T ); int CG_get_attr_access( expr, npl, npr ) NODE_T *expr; NODE_T *npl; NODE_T *npr; { int i; ATREC_T *ap; VALUE_T *vp; char e_msg[ 256 ]; if( npr->n_sym == SYM_IDENT ) return( A_STRUCT ); vp = &npr->n_val; ap = attab; for( i = 0; i < n_attab; i++, ap++ ){ if( !strcmp( ap->a_name, vp->v_value.v_cval ) ) return(ap->a_access); } sprintf( e_msg, "unknown attribute '%s'\n", vp->v_value.v_cval ); expr->n_type = T_ERROR; errormsg( FALSE, e_msg ); return(0); } static void checkattr( expr, npl, npr ) NODE_T *expr; NODE_T *npl; NODE_T *npr; { int i, found; ATREC_T *ap; VALUE_T *vp; NODE_T *npv; SYMREC_T *str, *fld; char e_msg[ 256 ]; if( npl->n_type == T_USER ){ for( npv = npl; npv; npv = npv->n_left ){ if( npv->n_sym == SYM_IDENT ) break; } str = findsym( npv->n_val.v_value.v_cval ); if( openusyms( str ) ){ fld = findsym( npr->n_val.v_value.v_cval ); if( fld == NULL || fld->s_scope != S_USER ){ sprintf(e_msg,"fld '%s' not in struct '%s'\n", npr->n_val.v_value.v_cval, npv->n_val.v_value.v_cval ); errormsg(FALSE,e_msg); return; } expr->n_type = fld->s_type; expr->n_class = fld->s_class; expr->n_kind = fld->s_kind; npr->n_sym = SYM_IDENT; closeusyms( NULL ); }else{ } }else{ vp = &npr->n_val; ap = attab; for( found = FALSE, i = 0; i < n_attab; i++, ap++ ){ if( !strcmp( ap->a_name, vp->v_value.v_cval ) ){ found = TRUE; break; } } if( !found ){ sprintf( e_msg, "unknown attribute '%s'\n", vp->v_value.v_cval ); expr->n_type = T_ERROR; errormsg( FALSE, e_msg ); return; } if( npl->n_class != C_VAR ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '.': left operand must be a variable.\n" ); return; } if( npl->n_kind != K_SCALAR && npl->n_kind != K_DARRAYEL && npl->n_kind != K_HASHEL ){ expr->n_type = T_ERROR; errormsg( FALSE,"operator '.': left operand must be a scalar.\n" ); return; } if( !INSET( npl->n_type, ap->a_in ) ){ expr->n_type = T_ERROR; errormsg_s( FALSE,"operator '.': left operand has no attribute '%s'.\n", ap->a_name ); return; } expr->n_type = ap->a_type; expr->n_class = ap->a_class; expr->n_kind = ap->a_kind; } }