Archeus 0.0.0
A C library and game engine that focuses on documentation
Loading...
Searching...
No Matches
helpers.c File Reference

Go to the source code of this file.

Functions

void ARC_ParserData_HelperRecurseStringAdd (ARC_String **data, ARC_ParserTagToken *tagToken)
 recurses through a tag token adding token strings to a main string
 

Function Documentation

◆ ARC_ParserData_HelperRecurseStringAdd()

void ARC_ParserData_HelperRecurseStringAdd ( ARC_String ** data,
ARC_ParserTagToken * tagToken )

recurses through a tag token adding token strings to a main string

Note
the string needs to be created otherwise this will break
this will only add tokens that have data
Parameters
[in/out]data
[in]tagTokenthe tag token to recurse through

Definition at line 4 of file helpers.c.

4 {
5 if(*data == NULL){
7 ARC_DEBUG_LOG_ERROR("ARC_ParserData_RecurseStringAdd(data, tagToken), string data was NULL");
8 return;
9 }
10
11 //only adds tokens with data (check the header for more information)
12 if(tagToken->token != NULL && tagToken->token->data != NULL){
13 ARC_String_Append(data, tagToken->token->data);
14 return;
15 }
16
17 //TODO: probs don't need this
18 if(tagToken->tagTokens == NULL){
19 return;
20 }
21
22 //recurse through all the tag tokens
23 for(uint32_t index = 0; index < ARC_Vector_GetSize(tagToken->tagTokens); index++){
25 }
26}
int32_t arc_errno
Definition errno.c:5
#define ARC_ERRNO_NULL
Definition errno.h:6
#define ARC_DEBUG_LOG_ERROR(STR)
Definition errno.h:39
void ARC_ParserData_HelperRecurseStringAdd(ARC_String **data, ARC_ParserTagToken *tagToken)
recurses through a tag token adding token strings to a main string
Definition helpers.c:4
void ARC_String_Append(ARC_String **string, ARC_String *append)
appends to an ARC_String with an ARC_String
Definition string.c:126
ARC_String * data
Definition lexer.h:20
a parser type used inside of the parser data create function
Definition parser.h:35
ARC_LexerToken * token
Definition parser.h:38
ARC_Vector * tagTokens
Definition parser.h:39
uint32_t ARC_Vector_GetSize(ARC_Vector *vector)
gets the current size of an ARC_Vector as an unsigned 32 bit integer
Definition vector.c:149
void * ARC_Vector_Get(ARC_Vector *vector, uint32_t index)
gets an item from an ARC_Vector at a position index
Definition vector.c:153

References ARC_DEBUG_LOG_ERROR, arc_errno, ARC_ERRNO_NULL, ARC_ParserData_HelperRecurseStringAdd(), ARC_String_Append(), ARC_Vector_Get(), ARC_Vector_GetSize(), ARC_LexerToken::data, ARC_ParserTagToken::tagTokens, and ARC_ParserTagToken::token.

Referenced by ARC_ParserCSVData_GetDataTag(), ARC_ParserData_HelperRecurseStringAdd(), and TEST_ParserData_CreateStringFn().