1 /* 2 * $Source: /home/nlfm/Working/CVS/frink/vars.h,v $ 3 * $Date: 2002/08/27 10:25:34 $ 4 * $Revision: 2.3 $ 5 * 6 *------------------------------------------------------------------------ 7 * AUTHOR: Lindsay Marshall <lindsay.marshall@newcastle.ac.uk> 8 *------------------------------------------------------------------------ 9 * Copyright 1994-2003 The University of Newcastle upon Tyne (see COPYRIGHT) 10 *======================================================================== 11 * 12 */ 13 14 #ifndef FRINK_VARS_H 15 #define FRINK_VARS_H 16 17 enum VarType 18 { 19 VLOCAL = 0, /* local variable */ 20 VGLOBAL = 1, /* global variable */ 21 VVAR = 2, /* namespace variable */ 22 VFOR = 3, /* foreach variable */ 23 VARG = 4 /* argument */ 24 }; 25 26 typedef struct vardata_s 27 { 28 char *name; 29 enum VarType type; 30 int used; 31 int set; 32 int dval; 33 int array; 34 } VarData; 35 36 enum varCheck 37 { 38 VC_NONE = 0x0000, 39 VC_SET = 0x0001, 40 VC_USE = 0x0002, 41 VC_BEFORE = 0x0004, 42 VC_DECL = 0x0010, 43 VC_UNKNOWN = 0x0040, 44 VC_ARRAY = 0x0080, 45 }; 46 47 48 extern void checkName(Token *, int); 49 extern VarData *varKnown(const char *); 50 extern VarData *declareVar(const Token *, enum VarType, int); 51 extern VarData *useVar(const Token *, enum VarType, int); 52 extern VarData *setVar(const Token *, enum VarType, int); 53 54 #endif 55