mingodad 9 лет назад
Родитель
Сommit
ec80fd2966
1 измененных файлов с 8 добавлено и 29 удалено
  1. 8 29
      SquiLu/samples/generate-cpp-class-wrapper.nut

+ 8 - 29
SquiLu/samples/generate-cpp-class-wrapper.nut

@@ -22,33 +22,19 @@ function generateCppClassWrapper(klass, klass_name="klass")
 		print(rename_code(code));
 		print(rename_code(code));
 	}
 	}
 	
 	
-	local get_var_type = function(var_type, to_declare=false)
-	{
-		switch(var_type)
-		{
-			case "int":
-				return to_declare ? "i" : "INTEGER";
-			case "float":
-				return to_declare ? "f" : "FLOAT";
-			case "str":
-				return to_declare ? "s" : "STRING";
-		}
-		return null;
-	}
-
-	local get_var_type_from_name = function(var_name, to_declare=false)
+	local get_var_type = function(var_name, to_declare=false)
 	{
 	{
 		if(var_name.startswith("int_"))
 		if(var_name.startswith("int_"))
 		{
 		{
-			return get_var_type("int", to_declare);
+			return to_declare ? "i" : "INTEGER";
 		}
 		}
 		if(var_name.startswith("float_"))
 		if(var_name.startswith("float_"))
 		{
 		{
-			return get_var_type("float", to_declare);
+			return to_declare ? "f" : "FLOAT";
 		}
 		}
 		if(var_name.startswith("str_"))
 		if(var_name.startswith("str_"))
 		{
 		{
-			return get_var_type("str", to_declare);
+			return to_declare ? "s" : "STRING";
 		}
 		}
 		return to_declare ? "." : "STRING";
 		return to_declare ? "." : "STRING";
 	}
 	}
@@ -144,8 +130,7 @@ static SQRESULT klass_constructor(HSQUIRRELVM v, KLASS *klass, int free_on_gc)
 				for(local i=1; i < nparams; ++i)
 				for(local i=1; i < nparams; ++i)
 				{
 				{
 					local hasDefParam = ndefparams && (i >= firstDefParam);
 					local hasDefParam = ndefparams && (i >= firstDefParam);
-					local vtype = get_var_type(info.parameters_type[i]);
-					if(!vtype) vtype = get_var_type_from_name(info.parameters[i]);
+					local vtype = get_var_type(info.parameters[i]);
 					if(hasDefParam) print(format("\tSQ_OPT_%s(v, %d, %s, %q);", vtype, i+1, info.parameters[i], info.defparams[i - firstDefParam].tostring()));
 					if(hasDefParam) print(format("\tSQ_OPT_%s(v, %d, %s, %q);", vtype, i+1, info.parameters[i], info.defparams[i - firstDefParam].tostring()));
 					else print(format("\tSQ_GET_%s(v, %d, %s);", vtype, i+1, info.parameters[i]));
 					else print(format("\tSQ_GET_%s(v, %d, %s);", vtype, i+1, info.parameters[i]));
 				}
 				}
@@ -162,14 +147,10 @@ static SQRESULT klass_constructor(HSQUIRRELVM v, KLASS *klass, int free_on_gc)
 					}
 					}
 				}
 				}
 			}
 			}
-			local return_type = info.return_type;
-			if(return_type)
-			{
-				print("\n\tsq_push" + return_type + "(v, " return_type + ");");
-			}
+			//local return_type = 
 			local attr = klass.getattributes(info.name);
 			local attr = klass.getattributes(info.name);
 			if(attr && attr.rawin("cfunc")) print("//", attr.rawget("cfunc"));
 			if(attr && attr.rawin("cfunc")) print("//", attr.rawget("cfunc"));
-			print("\n\treturn " + (return_type ? 1 : 0) + ";\n}\n");
+			print("\n\treturn 0;\n}\n");
 		}
 		}
 	}
 	}
 	
 	
@@ -192,9 +173,7 @@ static SQRegFunction klass_obj_funcs[]={
 			
 			
 			for(local i=1; i < nparams; ++i)
 			for(local i=1; i < nparams; ++i)
 			{
 			{
-				local vtype = get_var_type(info.parameters_type[i], true)
-				if(!vtype) vtype = get_var_type_from_name(info.parameters[i], true)
-				stdout.write(vtype);
+				stdout.write(get_var_type(info.parameters[i], true));
 			}
 			}
 			stdout.write("\")),\n");
 			stdout.write("\")),\n");
 		}
 		}