diff interp.c @ 63:04baa003de5a

Merged latest changes with better C branch
author Mike Pavone <pavone@retrodev.com>
date Wed, 05 May 2010 22:12:23 -0400
parents 6202b866d72c
children
line wrap: on
line diff
--- a/interp.c	Sat Oct 10 16:43:37 2009 -0400
+++ b/interp.c	Wed May 05 22:12:23 2010 -0400
@@ -1482,6 +1482,11 @@
 	aworker->input_types[0] = BUILTIN_TYPE_WHOLE;
 	aworker->input_types[1] = BUILTIN_TYPE_WHOLE;
 
+	aworker = create_worker(prog, "%@Whole Number", 2, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_whole_modulus;
+	aworker->input_types[0] = BUILTIN_TYPE_WHOLE;
+	aworker->input_types[1] = BUILTIN_TYPE_WHOLE;
+
 	//add_method(this_comp, aworker);
 	
 	current_method = 0;
@@ -1567,6 +1572,14 @@
 	aworker->implement_func=(custom_worker *)vis_real_sqrt;
 	aworker->input_types[0] = BUILTIN_TYPE_REAL;
 
+	aworker = create_worker(prog, "Truncate to Whole@Real Number", 1, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_whole_fromreal;
+	aworker->input_types[0] = BUILTIN_TYPE_REAL;
+
+	aworker = create_worker(prog, "<Whole Number@Real Number", 1, 1, WORKER_TYPE);
+	aworker->implement_func=(custom_worker *)vis_real_fromwhole;
+	aworker->input_types[0] = BUILTIN_TYPE_WHOLE;
+
 	//add_method(this_comp, aworker);
 	
 	current_method = 0;
@@ -1623,7 +1636,7 @@
 	aworker->input_types[0] = BUILTIN_TYPE_LIST;
 	//add_method(this_comp, aworker);
 	
-	aworker = create_worker(prog, "New@List",0, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "List",0, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_list_new;
 	//add_method(this_comp, aworker);
 	
@@ -1672,7 +1685,7 @@
 
 	//add_method(this_comp, aworker);
 	
-	aworker = create_worker(prog, "New@Dictionary",0, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Dictionary",0, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_dict_new;
 	//add_method(this_comp, aworker);
 	
@@ -1829,7 +1842,7 @@
 	aworker->input_types[1] = BUILTIN_TYPE_WHOLE;
 	aworker->input_types[2] = BUILTIN_TYPE_WHOLE;
 	
-	aworker = create_worker(prog, "New@Worker", 1, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Worker", 1, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_worker_new;
 	aworker->input_types[0] = BUILTIN_TYPE_STRING;
 	
@@ -1838,7 +1851,7 @@
 	
 	this_comp = create_company(prog, "Window", 3, 0, FALSE);
 	
-	aworker = create_worker(prog, "New@Window", 3, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Window", 3, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_window_new;
 	aworker->input_types[0] = BUILTIN_TYPE_STRING;
 	aworker->input_types[1] = BUILTIN_TYPE_REAL;
@@ -1899,7 +1912,7 @@
 	current_method = 0;
 	create_company(prog, "Button", 2, 0, FALSE);
 	
-	aworker = create_worker(prog, "New@Button", 3, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Button", 3, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_button_new;
 	aworker->input_types[0] = BUILTIN_TYPE_STRING;
 	aworker->input_types[1] = BUILTIN_TYPE_REAL;
@@ -1916,7 +1929,7 @@
 	current_method = 0;
 	create_company(prog, "Input Box", 2, 0, FALSE);
 		
-	aworker = create_worker(prog, "New@Input Box", 3, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Input Box", 3, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_inputbox_new;
 	aworker->input_types[0] = BUILTIN_TYPE_STRING;
 	aworker->input_types[1] = BUILTIN_TYPE_REAL;
@@ -1932,7 +1945,7 @@
 #endif
 #ifndef NO_NET
 	this_comp = create_company(prog, "Net Client", 3, 0, FALSE);
-	aworker = create_worker(prog, "New@Net Client", 2, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Net Client", 2, 1, WORKER_TYPE);
 	aworker->implement_func =(custom_worker *)net_client_new;
 	aworker->input_types[0] = BUILTIN_TYPE_STRING;
 	aworker->input_types[1] = BUILTIN_TYPE_WHOLE;
@@ -1972,7 +1985,7 @@
 	
 	create_company(prog, "Program", 5, 0, FALSE);
 	
-	aworker = create_worker(prog, "New@Program", 0, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Program", 0, 1, WORKER_TYPE);
 	aworker->implement_func = (custom_worker *)vis_program_new;
 	
 	aworker = create_worker(prog, "New Worker@Program", 2, 2, WORKER_TYPE);
@@ -2003,7 +2016,7 @@
 #ifdef SYLLABLE
 	create_company(prog, "Custom Widget", 2, 0, FALSE);
 	
-	aworker = create_worker(prog, "New@Custom Widget", 3, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Custom Widget", 3, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_customwidget_new;
 	aworker->input_types[0] = BUILTIN_TYPE_STRING;
 	aworker->input_types[1] = BUILTIN_TYPE_REAL;
@@ -2082,7 +2095,7 @@
 #endif
 	create_company(prog, "Buffer", 7, 0, FALSE);
 	
-	aworker = create_worker(prog, "New@Buffer", 1, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Buffer", 1, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_buffer_new;
 	aworker->input_types[0] = BUILTIN_TYPE_WHOLE;
 	
@@ -2138,7 +2151,7 @@
 
 	create_company(prog, "Blueprint", 4, 0, FALSE);
 	
-	aworker = create_worker(prog, "New@Blueprint", 1, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Blueprint", 1, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_blueprint_new;
 	aworker->input_types[0] = BUILTIN_TYPE_STRING;
 	
@@ -2180,7 +2193,7 @@
 #ifdef SYLLABLE
 	create_company(prog, "Checkbox", 2, 0, FALSE);
 
-	aworker = create_worker(prog, "New@Checkbox", 4, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Checkbox", 4, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_checkbox_new;
 	aworker->input_types[0] = BUILTIN_TYPE_STRING;
 	aworker->input_types[1] = BUILTIN_TYPE_REAL;
@@ -2195,7 +2208,7 @@
 
 	create_company(prog, "Dropdown", 4, 0, FALSE);
 
-	aworker = create_worker(prog, "New@Dropdown", 3, 1, WORKER_TYPE);
+	aworker = create_worker(prog, "Dropdown", 3, 1, WORKER_TYPE);
 	aworker->implement_func=(custom_worker *)vis_dropdown_new;
 	aworker->input_types[0] = BUILTIN_TYPE_LIST;
 	aworker->input_types[1] = BUILTIN_TYPE_REAL;
@@ -3060,7 +3073,7 @@
 		DEBUGPRINTF( "Magic method: %s\n", process_def->name);
 		if(!params || !params[0])
 		{
-			ERRORPRINTF("Error: null first parmeter or null parameter array for worker %s\n", process_def->name);
+			ERRORPRINTF("Error: null first parmeter or null parameter array for worker %s, params: %X, params[0]: %X\n", process_def->name, params, params[0]);
 			print_stack_trace(worker_entry.instance);
 			execute_active = FALSE;
 			return -1;