Ejemplo n.º 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;
}
Ejemplo n.º 2
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);
		}
	}
}
Ejemplo n.º 3
0
void SlimList_AddList(SlimList* self, SlimList* element)
{
    char * embedded = SlimList_Serialize(element);
    SlimList_AddString(self, embedded);
    free(embedded);
}