commands.cxx

changeset 68
588cc27e84bb
parent 67
0a202714eea4
child 69
29a3e669d648
--- a/commands.cxx	Wed Dec 19 04:20:02 2012 +0200
+++ b/commands.cxx	Wed Dec 19 13:44:18 2012 +0200
@@ -75,7 +75,7 @@
 		
 		// Return value
 		r->MustNext ();
-		comm->returnvalue = GetCommandType (r->token);
+		comm->returnvalue = GetTypeByName (r->token);
 		if (comm->returnvalue == -1)
 			r->ParserError ("bad return value type `%s` for command %s", r->token.chars(), comm->name.chars());
 		
@@ -100,10 +100,10 @@
 			r->MustNext (":");
 			r->MustNext ();
 			
-			int type = GetCommandType (r->token);
+			type_e type = GetTypeByName (r->token);
 			if (type == -1)
 				r->ParserError ("bad argument %d type `%s`", curarg, r->token.chars());
-			if (type == RETURNVAL_VOID)
+			if (type == TYPE_VOID)
 				r->ParserError ("void is not a valid argument type!");
 			comm->argtypes[curarg] = type;
 			
@@ -122,10 +122,17 @@
 			if (curarg >= comm->numargs) {
 				r->MustNext ("=");
 				switch (type) {
-				case RETURNVAL_INT:
-				case RETURNVAL_BOOLEAN:
-					r->MustNumber(); break;
-				case RETURNVAL_STRING: r->MustString(); break;
+				case TYPE_INT:
+				case TYPE_BOOL:
+					r->MustNumber();
+					break;
+				case TYPE_STRING:
+					r->MustString();
+					break;
+				case TYPE_UNKNOWN:
+				case TYPE_FLOAT:
+				case TYPE_VOID:
+					break;
 				}
 				
 				comm->defvals[curarg] = r->token;
@@ -156,43 +163,6 @@
 }
 
 // ============================================================================
-// Get command type by name
-int GetCommandType (str t) {
-	t = t.tolower();
-	return	(t == "int") ? TYPE_INT :
-			(t == "float") ? TYPE_FLOAT :
-			(t == "str") ? TYPE_STRING :
-			(t == "void") ? TYPE_VOID :
-			(t == "bool") ? TYPE_BOOL : -1;
-}
-
-// ============================================================================
-// Inverse operation - type name by value
-str GetTypeName (int r) {
-	switch (r) {
-	case TYPE_INT: return "int"; break;
-	case TYPE_STRING: return "str"; break;
-	case TYPE_VOID: return "void"; break;
-	case TYPE_FLOAT: return "float"; break;
-	case TYPE_BOOL: return "bool"; break;
-	}
-	
-	return "";
-}
-
-// ============================================================================
-str GetReturnTypeName (int r) {
-	switch (r) {
-	case RETURNVAL_INT: return "int"; break;
-	case RETURNVAL_STRING: return "str"; break;
-	case RETURNVAL_VOID: return "void"; break;
-	case RETURNVAL_BOOLEAN: return "bool"; break;
-	}
-	
-	return "";
-}
-
-// ============================================================================
 // Finds a command by name
 CommandDef* FindCommand (str fname) {
 	CommandDef* comm;
@@ -230,7 +200,7 @@
 		if (i >= comm->numargs) {
 			text += '=';
 			
-			bool isString = comm->argtypes[i] == RETURNVAL_STRING;
+			bool isString = comm->argtypes[i] == TYPE_STRING;
 			if (isString) text += '"';
 			
 			char defvalstring[8];

mercurial