//
// (C) Copyright 2011-2012 Sergey A. Babkin.
// This file is a part of Triceps.
// See the file COPYRIGHT for the copyright notice and license information
//
//
// Common subclass for the simple types

#ifndef __Triceps_SimpleType_h__
#define __Triceps_SimpleType_h__

#include <type/Type.h>

namespace TRICEPS_NS {

// Later, when there will be own language, these definitions may become
// more complex and be split into their separate files.

class SimpleType : public Type
{
public:
	SimpleType(TypeId id, int size) :
		Type(true, id),
		size_(size)
	{ }

	// get the size of a basic element
	int getSize() const
	{
		return size_;
	}

	// from Type
	virtual Erref getErrors() const;

protected:
	int size_; // size of the basic element of this type

private:
	SimpleType();
};

}; // TRICEPS_NS

#endif // __Triceps_SimpleType_h__

