Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision e048ece8ba334125dcccebb214f58a23f0e29d8a)
+++ src/Parser/ExpressionNode.cc	(revision 7a780ad23506507b6a1feccc46d18e12da183ceb)
@@ -23,6 +23,7 @@
 #include <string>                  // for string, operator+, operator==
 
+#include "AST/BasicKind.hpp"       // for BasicKind
 #include "AST/Expr.hpp"            // for NameExpr
-#include "AST/Type.hpp"            // for BaseType, SueInstType
+#include "AST/Type.hpp"            // for Type, LengthFlag, DimentionFlag
 #include "Common/SemanticError.h"  // for SemanticError
 #include "Common/utility.h"        // for maybeMoveBuild, maybeBuild, CodeLo...
@@ -126,8 +127,8 @@
 ast::Expr * build_constantInteger(
 		const CodeLocation & location, string & str ) {
-	static const ast::BasicType::Kind kind[2][6] = {
+	static const ast::BasicKind kind[2][6] = {
 		// short (h) must be before char (hh) because shorter type has the longer suffix
-		{ ast::BasicType::ShortSignedInt, ast::BasicType::SignedChar, ast::BasicType::SignedInt, ast::BasicType::LongSignedInt, ast::BasicType::LongLongSignedInt, /* BasicType::SignedInt128 */ ast::BasicType::LongLongSignedInt, },
-		{ ast::BasicType::ShortUnsignedInt, ast::BasicType::UnsignedChar, ast::BasicType::UnsignedInt, ast::BasicType::LongUnsignedInt, ast::BasicType::LongLongUnsignedInt, /* BasicType::UnsignedInt128 */ ast::BasicType::LongLongUnsignedInt, },
+		{ ast::BasicKind::ShortSignedInt, ast::BasicKind::SignedChar, ast::BasicKind::SignedInt, ast::BasicKind::LongSignedInt, ast::BasicKind::LongLongSignedInt, /* BasicKind::SignedInt128 */ ast::BasicKind::LongLongSignedInt, },
+		{ ast::BasicKind::ShortUnsignedInt, ast::BasicKind::UnsignedChar, ast::BasicKind::UnsignedInt, ast::BasicKind::LongUnsignedInt, ast::BasicKind::LongLongUnsignedInt, /* BasicKind::UnsignedInt128 */ ast::BasicKind::LongLongUnsignedInt, },
 	};
 
@@ -313,5 +314,5 @@
 		if ( ltype == 6 ) {								// int128, (int128)constant
 			ret2 = new ast::ConstantExpr( location,
-				new ast::BasicType( ast::BasicType::LongLongSignedInt ),
+				new ast::BasicType( ast::BasicKind::LongLongSignedInt ),
 				str2,
 				v2 );
@@ -379,7 +380,7 @@
 ast::Expr * build_constantFloat(
 		const CodeLocation & location, string & str ) {
-	static const ast::BasicType::Kind kind[2][12] = {
-		{ ast::BasicType::Float, ast::BasicType::Double, ast::BasicType::LongDouble, ast::BasicType::uuFloat80, ast::BasicType::uuFloat128, ast::BasicType::uFloat16, ast::BasicType::uFloat32, ast::BasicType::uFloat32x, ast::BasicType::uFloat64, ast::BasicType::uFloat64x, ast::BasicType::uFloat128, ast::BasicType::uFloat128x },
-		{ ast::BasicType::FloatComplex, ast::BasicType::DoubleComplex, ast::BasicType::LongDoubleComplex, ast::BasicType::NUMBER_OF_BASIC_TYPES, ast::BasicType::NUMBER_OF_BASIC_TYPES, ast::BasicType::uFloat16Complex, ast::BasicType::uFloat32Complex, ast::BasicType::uFloat32xComplex, ast::BasicType::uFloat64Complex, ast::BasicType::uFloat64xComplex, ast::BasicType::uFloat128Complex, ast::BasicType::uFloat128xComplex },
+	static const ast::BasicKind kind[2][12] = {
+		{ ast::BasicKind::Float, ast::BasicKind::Double, ast::BasicKind::LongDouble, ast::BasicKind::uuFloat80, ast::BasicKind::uuFloat128, ast::BasicKind::uFloat16, ast::BasicKind::uFloat32, ast::BasicKind::uFloat32x, ast::BasicKind::uFloat64, ast::BasicKind::uFloat64x, ast::BasicKind::uFloat128, ast::BasicKind::uFloat128x },
+		{ ast::BasicKind::FloatComplex, ast::BasicKind::DoubleComplex, ast::BasicKind::LongDoubleComplex, ast::BasicKind::NUMBER_OF_BASIC_TYPES, ast::BasicKind::NUMBER_OF_BASIC_TYPES, ast::BasicKind::uFloat16Complex, ast::BasicKind::uFloat32Complex, ast::BasicKind::uFloat32xComplex, ast::BasicKind::uFloat64Complex, ast::BasicKind::uFloat64xComplex, ast::BasicKind::uFloat128Complex, ast::BasicKind::uFloat128xComplex },
 	};
 
@@ -447,5 +448,5 @@
 
 	ast::Expr * ret = new ast::ConstantExpr( location,
-		new ast::BasicType( ast::BasicType::Char ),
+		new ast::BasicType( ast::BasicKind::Char ),
 		str,
 		(unsigned long long int)(unsigned char)str[1] );
@@ -482,5 +483,5 @@
 	Default:											// char default string type
 	default:
-		strtype = new ast::BasicType( ast::BasicType::Char );
+		strtype = new ast::BasicType( ast::BasicKind::Char );
 	} // switch
 	ast::ArrayType * at = new ast::ArrayType(
@@ -664,5 +665,5 @@
 		member->name
 	);
-	ret->result = new ast::BasicType( ast::BasicType::LongUnsignedInt );
+	ret->result = new ast::BasicType( ast::BasicKind::LongUnsignedInt );
 	delete member;
 	return ret;
