#ifndef _CHARACTER_REF_H
#define _CHARACTER_REF_H

class ANY;

/*
 *
 * Non-expanded forms of basic type
*/

class CHARACTER_REF : public virtual ANY {
public:
	CHARACTER val;
	CHARACTER_REF(); 
	virtual void set_value( CHARACTER); 
	virtual CHARACTER item (); 
	virtual STRING *out(); 
	virtual void print( ANY *);

	virtual CHARACTER_REF* _Clone (int, int, CHARACTER_REF*); 
	virtual CHARACTER_REF* _localClone (int, int); 
	virtual void _Copy ( int, int, CHARACTER_REF*); 
	BOOLEAN _Equal ( int, int, CHARACTER_REF*); 
	void*   _rev_cvt ( int _type);
	BOOLEAN is_equal (CHARACTER_REF*); 
	BOOLEAN equal (ANY*, CHARACTER_REF*); 
	void copy ( CHARACTER_REF*);
	CHARACTER_REF* clone ( CHARACTER_REF*);
	BOOLEAN deep_equal ( CHARACTER_REF*, CHARACTER_REF*);
	void deep_copy ( CHARACTER_REF*);
	CHARACTER_REF* deep_clone ( CHARACTER_REF*);
	BOOLEAN _INFIX_LEQ ( CHARACTER_REF*);
	CHARACTER_REF* _INFIX_ADD ( CHARACTER_REF*);
	CHARACTER_REF* _INFIX_SUB ( CHARACTER_REF*);
	CHARACTER_REF* _INFIX_MUL ( CHARACTER_REF*);
	CHARACTER_REF* _INFIX_DIV ( CHARACTER_REF*);
   	BOOLEAN _Conforms_to ( int other_id);
};

CHARACTER_REF* _ert_clone_CHARACTER ( CHARACTER);
CHARACTER_REF* _ert_clone_CHARACTER_REF ( CHARACTER_REF *v);
CHARACTER_REF* _CHARACTER_REF_chk ( CHARACTER_REF*, char *);
CHARACTER_REF* _bibt_CHARACTER_CHARACTER_REF ( CHARACTER);


#endif /* _CHARACTER_REF_H */
