2024-12-04 02:43:58 -07:00
|
|
|
#include "arc/std/parser/helpers.h"
|
|
|
|
|
#include "arc/std/errno.h"
|
|
|
|
|
|
|
|
|
|
void ARC_ParserData_HelperRecurseStringAdd(ARC_String **data, ARC_ParserTagToken *tagToken){
|
|
|
|
|
if(*data == NULL){
|
|
|
|
|
arc_errno = ARC_ERRNO_NULL;
|
|
|
|
|
ARC_DEBUG_LOG_ERROR("ARC_ParserData_RecurseStringAdd(data, tagToken), string data was NULL");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//only adds tokens with data (check the header for more information)
|
|
|
|
|
if(tagToken->token != NULL && tagToken->token->data != NULL){
|
|
|
|
|
ARC_String_Append(data, tagToken->token->data);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//TODO: probs don't need this
|
|
|
|
|
if(tagToken->tagTokens == NULL){
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//recurse through all the tag tokens
|
|
|
|
|
for(uint32_t index = 0; index < ARC_Vector_GetSize(tagToken->tagTokens); index++){
|
|
|
|
|
ARC_ParserData_HelperRecurseStringAdd(data, (ARC_ParserTagToken *)ARC_Vector_Get(tagToken->tagTokens, index));
|
|
|
|
|
}
|
|
|
|
|
}
|