Exemple #1
0
vm_t *vm_new() {
  vm_t *vm;

  vm = malloc(sizeof(struct vm));
  if (!vm)
    return NULL;
  memset(vm, '\0', sizeof(struct vm));

  // Allocate 64k for code
  vm->code = malloc(0xFFFF);
  if (vm->code == NULL) {
    return NULL;
  }
  memset(vm->code, '\0', 0xFFFF);
  vm->code_size = 0;

  // Allocate a 64k heap
  GCState* gc = gc_init(0xFFFF * 2);
  vm->gc = gc;

  vm->function_names = strings_new();
  vm->intern_pool = strings_new();
  vm->ip = 0;
  vm->current_frame = 0;
  vm->current_function = NULL;
  memset(vm->functions, NO_FUNCTION, MAX_FUNCTIONS * sizeof(uint64_t));

  opcode_init(vm);

  return vm;
}
Exemple #2
0
int test_strings_new()
{
	/// 
	{
		//
		char *src = "This is a string..";
		char *str = strings_new(src);

		//
		char *assert_message = "Testing strings copy for regular string..";
		int assert_result = (strcmp(str, src) == 0) ? TRUE : FALSE;
		ctest_assert_true(assert_result, assert_message);

		//
		strings_free(str);
	}

	/// 
	{
		//
		char *src = "";
		char *str = strings_new(src);

		//
		char *assert_message = "Testing string copy for empty string..";
		int assert_result = (strcmp(str, src) == 0) ? TRUE : FALSE;
		ctest_assert_true(assert_result, assert_message);

		//
		strings_free(str);
	}

	/// 
	{
		//
		char *src = NULL;
		char *str = strings_new(src);

		//
		char *assert_message = "Testing string copy for NULL..";
		int assert_result = (str == NULL) ? TRUE : FALSE;
		ctest_assert_true(assert_result, assert_message);

		//
		strings_free(str);
	}


	//
	return 0;
}
Exemple #3
0
func_t *func_strings(int n)
{
  func_t *f=NULL;
  f=func_new(__func_strings);
  func_strings_p_replace(f,strings_new(n));
  return f;
}
Exemple #4
0
struct cprocessor_command *cprocessor_command_new(char *nazev, char *kategorie, int (*function)())
{
	//
	struct cprocessor_command *command_ptr;

	//
	command_ptr = (struct cprocessor_command *) malloc(sizeof(struct cprocessor_command));

	//
	if(command_ptr)
	{
		command_ptr -> nazev = strings_new(nazev);
		command_ptr -> kategorie = strings_new(kategorie);
		command_ptr -> function = function;
	}

	//
	return command_ptr;
}
Exemple #5
0
void func_strings_p_new(func_t *f)
{
  if(f->p.s!=NULL){ func_strings_p_del(f); }
  f->ptype=FUNC_P_STRINGS;
  f->p.s=strings_new(0);
}