|
@@ -4,7 +4,7 @@
|
|
|
|
|
|
#include "DataType.h"
|
|
|
|
|
|
-#define ARRAY_NAME 30
|
|
|
+#define ARRAY_NAME 256
|
|
|
|
|
|
static int typeNameIndex = 0;
|
|
|
static int typeNameSwap = 0;
|
|
@@ -88,9 +88,12 @@ DataType dtReference(DataType dt) {
|
|
|
return dt;
|
|
|
}
|
|
|
|
|
|
-DataType dtDereference(DataType dt) {
|
|
|
- dt.pointers++;
|
|
|
- return dt;
|
|
|
+bool dtDereference(DataType* dt) {
|
|
|
+ if(dt->pointers == 15) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ dt->pointers++;
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
bool dtCompare(DataType a, DataType b) {
|
|
@@ -98,14 +101,30 @@ bool dtCompare(DataType a, DataType b) {
|
|
|
a.type == b.type;
|
|
|
}
|
|
|
|
|
|
-int dtMaxDimensions() {
|
|
|
- return 15;
|
|
|
+bool dtIsInt(DataType dt) {
|
|
|
+ return dtCompare(dt, dtInt());
|
|
|
+}
|
|
|
+
|
|
|
+bool dtIsFloat(DataType dt) {
|
|
|
+ return dtCompare(dt, dtFloat());
|
|
|
+}
|
|
|
+
|
|
|
+bool dtIsBool(DataType dt) {
|
|
|
+ return dtCompare(dt, dtBool());
|
|
|
+}
|
|
|
+
|
|
|
+bool dtIsVoid(DataType dt) {
|
|
|
+ return dtCompare(dt, dtVoid());
|
|
|
}
|
|
|
|
|
|
bool dtIsPointer(DataType dt) {
|
|
|
return dt.pointers > 0;
|
|
|
}
|
|
|
|
|
|
+bool dtIsVariable(DataType dt) {
|
|
|
+ return dt.type & 8;
|
|
|
+}
|
|
|
+
|
|
|
Struct* dtGetStruct(Structs* sts, DataType dt) {
|
|
|
if(dt.type != DT_STRUCT) {
|
|
|
return NULL;
|
|
@@ -118,10 +137,6 @@ DataType dtToVariable(DataType dt) {
|
|
|
return dt;
|
|
|
}
|
|
|
|
|
|
-bool dtIsVariable(DataType dt) {
|
|
|
- return dt.type & 8;
|
|
|
-}
|
|
|
-
|
|
|
bool dtRemoveVariable(DataType* dt) {
|
|
|
if(dtIsVariable(*dt)) {
|
|
|
dt->type &= 7;
|