Beispiel #1
0
char * handle_slim_message(char * message)
{
	SlimList* instructions = SlimList_Deserialize(message);
	SlimList* results = ListExecutor_Execute(listExecutor, instructions);
	char * response = SlimList_Serialize(results);
	SlimList_Destroy(results);
	SlimList_Destroy(instructions);
	return response;
}
    void teardown()
    {
		SlimList_Destroy(slimList);

		if (deserializedList)
			SlimList_Destroy(deserializedList);

		if (serializedList != 0)
			SlimList_Release(serializedList);
    }
    void teardown()
    {
		SlimList_Destroy(slimList);

		if (deserializedList)
			SlimList_Destroy(deserializedList);
			
		if (serializedList != 0)
			cpputest_free((void*)serializedList);
    }
Beispiel #4
0
char* Make(ListExecutor* self, SlimList* instruction) {
	char* instanceName = SlimList_GetStringAt(instruction, 2);
	char* className = SlimList_GetStringAt(instruction, 3);
	SlimList* args = SlimList_GetTailAt(instruction, 4);
	char * result = buyString(StatementExecutor_Make(self->executor, instanceName, className, args));
	SlimList_Destroy(args);
	return result;
}
Beispiel #5
0
static void AddResult(SlimList* list, char* id, char* result)
{
	SlimList* pair = SlimList_Create();	
	SlimList_AddString(pair, id);
	SlimList_AddString(pair, result);
	SlimList_AddList(list, pair);
	SlimList_Destroy(pair);	
}
Beispiel #6
0
char* Call(ListExecutor* self, SlimList* instruction) {
	if (SlimList_GetLength(instruction) < 4)
		return MalformedInstruction(self, instruction);
	char* instanceName = SlimList_GetStringAt(instruction, 2);
	char* methodName = SlimList_GetStringAt(instruction, 3);
	SlimList* args = SlimList_GetTailAt(instruction, 4);
		
	char* result = buyString(StatementExecutor_Call(self->executor, instanceName, methodName, args));
	SlimList_Destroy(args);
	return result;
}
Beispiel #7
0
void SlimList_ReplaceAt(SlimList* self, int index, const char * replacementString)
{
    Node* node = SlimList_GetNodeAt(self, index);
    if(node->list != 0) {
        SlimList_Destroy(node->list);
        node->list = 0;
    }
    char * newString = buyString(replacementString);
    free(node->string);
    node->string = newString;
}
Beispiel #8
0
char* CallAndAssign(ListExecutor* self, SlimList* instruction) {
	if (SlimList_GetLength(instruction) < 5)
		return MalformedInstruction(self, instruction);
	char* symbolName = SlimList_GetStringAt(instruction, 2);
	char* instanceName = SlimList_GetStringAt(instruction, 3);
	char* methodName = SlimList_GetStringAt(instruction, 4);
	SlimList* args = SlimList_GetTailAt(instruction, 5);
		
	char* result = CSlim_BuyString(StatementExecutor_Call(self->executor, instanceName, methodName, args));
	StatementExecutor_SetSymbol(self->executor, symbolName, result);
	SlimList_Destroy(args);
	return result;
}
Beispiel #9
0
void SlimList_Destroy(SlimList* self)
{
    Node * node;
    Node * next;
    for(node = self->head; node; node = next)
    {
        if (node->string)
            free(node->string);

        if (node->list)
            SlimList_Destroy(node->list);

        next = node->next;
        free(node);
    }
    free(self);
}
Beispiel #10
0
void replaceSymbols(SymbolTable* symbolTable, SlimList* list) {
	int i;
	for (i=0; i<SlimList_GetLength(list); i++) {
		char* string = SlimList_GetStringAt(list, i);
		SlimList* embeddedList = SlimList_Deserialize(string);
		if (embeddedList == NULL) {
			char* replacedString = replaceString(symbolTable, string);
			SlimList_ReplaceAt(list, i, replacedString);
			free(replacedString);
		} else {
			replaceSymbols(symbolTable, embeddedList);
			char* serializedReplacedList = SlimList_Serialize(embeddedList);
			SlimList_ReplaceAt(list, i, serializedReplacedList);
			SlimList_Destroy(embeddedList);
			free(serializedReplacedList);
		}
	}
}
    void teardown()
    {
		StatementExecutor_Destroy(statementExecutor);
		SlimList_Destroy(args);
		SlimList_Destroy(empty);
    }
  void teardown()
  {
    SlimList_Destroy(slimList);

    SlimList_Release(serializedList);
  }