/*                      QBCC Project

This source file is licensed under the GNU Public Licence which should be 
included with the distribution of this source.

*/
// Information pass header file

#ifndef __INFO_H__
#define __INFO_H__

#include "qbcc.h"

// Info Passing Prototypes

// Adding functions
int AddVariable(char *name, int type, int size, int flags, type_t *structtype);
int AddFunction(char *name, int ret, type_t *structtype);
int AddArgument(char *name, int type, int size, int flags, char *nametype,type_t *structtype);
int AddType(char *name);
int AddMember(char *name, int type, int size, int flags, type_t *structtype);

// Misc functions
int GetVariableAttrib(char *name, int *type, int *size, int *flags);
int FindFunction(char *name, int set);
int FindType(char *name,int set);
int FindVariable(char *name, var_t *varstruct);
int FindArguement(char *name, var_t *varstruct);
int FindMember(char *name,var_t *varstruct);

// Passes
void VarFuncPass(void);

// Translations
void TranslateDECLARE(void);
void TranslateDIM(void);
int TYPEtoNumber(char *name);
void TranslateTYPE(void);
void TranslateDEF(char *name);
void TranslateCONST(void);
void TranslateDATA(char *DATA);

#endif  //  __INFO_H__