diff --git a/include/psyc/parser.h b/include/psyc/parser.h index 42a4d22..edc15c7 100644 --- a/include/psyc/parser.h +++ b/include/psyc/parser.h @@ -22,7 +22,7 @@ typedef enum { PSYC_HEADER_ONLY = 1, -} PSYC_Flag; +} PSYC_ParserFlag; /** * The return value definitions for the packet parsing function. @@ -59,7 +59,7 @@ typedef enum PSYC_COMPLETE = 7, /// Binary value parsing incomplete, used internally. PSYC_INCOMPLETE = 8, -} PSYC_ReturnCode; +} PSYC_ParseRC; /** * The return value definitions for the list parsing function. @@ -78,7 +78,7 @@ typedef enum PSYC_LIST_END = 2, /// Binary list is incomplete. PSYC_LIST_INCOMPLETE = 3, -} PSYC_ListReturnCode; +} PSYC_ListRC; /** * PSYC packet parts. @@ -108,7 +108,7 @@ typedef struct { size_t length; const uint8_t * ptr; // just an unsigned char for opaque data -} PSYC_Array; +} PSYC_Array; // to be renamed or solved differently.. /** * Struct for keeping parser state. @@ -118,7 +118,7 @@ typedef struct size_t cursor; ///< current position in buffer size_t startc; ///< position where the parsing would be resumed PSYC_Array buffer; - uint8_t flags; ///< flags for the parser, see PSYC_Flag + uint8_t flags; ///< flags for the parser, see PSYC_ParserFlag PSYC_Part part; ///< part of the packet being parsed currently size_t contentParsed; ///< number of bytes parsed from the content so far @@ -126,7 +126,7 @@ typedef struct PSYC_Bool contentLengthFound; ///< is there a length given for this packet? size_t valueParsed; ///< number of bytes parsed from the value so far size_t valueLength; ///< expected length of the value -} PSYC_State; +} PSYC_ParserState; /** * Struct for keeping list parser state. @@ -161,11 +161,11 @@ inline PSYC_Array PSYC_createArray (uint8_t* const memory, size_t length) * Initiates the state struct with flags. * * @param state Pointer to the state struct that should be initiated. - * @param flags Flags to be set for the parser, see PSYC_Flag. + * @param flags Flags to be set for the parser, see PSYC_ParserFlag. */ -inline void PSYC_initState2 (PSYC_State* state, uint8_t flags ) +inline void PSYC_initState2 (PSYC_ParserState* state, uint8_t flags ) { - memset(state, 0, sizeof(PSYC_State)); + memset(state, 0, sizeof(PSYC_ParserState)); state->flags = flags; } @@ -174,9 +174,9 @@ inline void PSYC_initState2 (PSYC_State* state, uint8_t flags ) * * @param state Pointer to the state struct that should be initiated. */ -inline void PSYC_initState (PSYC_State* state) +inline void PSYC_initState (PSYC_ParserState* state) { - memset(state, 0, sizeof(PSYC_State)); + memset(state, 0, sizeof(PSYC_ParserState)); } /** @@ -189,7 +189,7 @@ inline void PSYC_initListState (PSYC_ListState* state) memset(state, 0, sizeof(PSYC_ListState)); } -inline void PSYC_nextBuffer (PSYC_State* state, PSYC_Array newBuf) +inline void PSYC_nextBuffer (PSYC_ParserState* state, PSYC_Array newBuf) { state->buffer = newBuf; state->cursor = 0; @@ -201,7 +201,7 @@ inline void PSYC_nextListBuffer (PSYC_ListState* state, PSYC_Array newBuf) state->cursor = 0; } -inline size_t PSYC_getContentLength (PSYC_State* s) +inline size_t PSYC_getContentLength (PSYC_ParserState* s) { return s->contentLength; } @@ -213,7 +213,7 @@ inline size_t PSYC_getContentLength (PSYC_State* s) * * Generalized line-based packet parser. * - * @param state An initialized PSYC_State + * @param state An initialized PSYC_ParserState * @param modifier A pointer to a character. In case of a variable, it will * be set to the modifier of that variable * @param name A pointer to a PSYC_Array. It will point to the name of @@ -221,12 +221,12 @@ inline size_t PSYC_getContentLength (PSYC_State* s) * @param value A pointer to a PSYC_Array. It will point to the * value/body the variable/method and its length will be set accordingly */ -PSYC_ReturnCode PSYC_parse(PSYC_State* state, uint8_t* modifier, PSYC_Array* name, PSYC_Array* value); +PSYC_ParseRC PSYC_parse(PSYC_ParserState* state, uint8_t* modifier, PSYC_Array* name, PSYC_Array* value); /** * List value parser. */ -PSYC_ListReturnCode PSYC_parseList(PSYC_ListState* state, PSYC_Array *name, PSYC_Array* value, PSYC_Array* elem); +PSYC_ListRC PSYC_parseList(PSYC_ListState* state, PSYC_Array *name, PSYC_Array* value, PSYC_Array* elem); #endif // PSYC_PARSER_H diff --git a/src/parser.c b/src/parser.c index 5ce9aae..1f3b98a 100644 --- a/src/parser.c +++ b/src/parser.c @@ -68,7 +68,7 @@ inline char isKwChar(uint8_t c) * It should contain one or more keyword characters. * @return PSYC_ERROR or PSYC_SUCCESS */ -inline PSYC_ReturnCode PSYC_parseName(PSYC_State* state, PSYC_Array* name) +inline PSYC_ParseRC PSYC_parseName(PSYC_ParserState* state, PSYC_Array* name) { name->ptr = state->buffer.ptr + state->cursor; name->length = 0; @@ -92,7 +92,7 @@ inline PSYC_ReturnCode PSYC_parseName(PSYC_State* state, PSYC_Array* name) * * @return PSYC_COMPLETE or PSYC_INCOMPLETE */ -inline PSYC_ReturnCode PSYC_parseBinaryValue(PSYC_State* state, PSYC_Array* value, size_t* length, size_t* parsed) +inline PSYC_ParseRC PSYC_parseBinaryValue(PSYC_ParserState* state, PSYC_Array* value, size_t* length, size_t* parsed) { size_t remaining = *length - *parsed; value->ptr = state->buffer.ptr + state->cursor; @@ -115,7 +115,7 @@ inline PSYC_ReturnCode PSYC_parseBinaryValue(PSYC_State* state, PSYC_Array* valu * Parse simple or binary variable. * @return PSYC_ERROR or PSYC_SUCCESS */ -inline PSYC_ReturnCode PSYC_parseVar(PSYC_State* state, uint8_t* modifier, PSYC_Array* name, PSYC_Array* value) +inline PSYC_ParseRC PSYC_parseVar(PSYC_ParserState* state, uint8_t* modifier, PSYC_Array* name, PSYC_Array* value) { *modifier = *(state->buffer.ptr + state->cursor); ADVANCE_CURSOR_OR_RETURN(PSYC_INSUFFICIENT); @@ -179,7 +179,7 @@ inline PSYC_ReturnCode PSYC_parseVar(PSYC_State* state, uint8_t* modifier, PSYC_ * Parse PSYC packets. * Generalized line-based parser. */ -PSYC_ReturnCode PSYC_parse(PSYC_State* state, uint8_t* modifier, PSYC_Array* name, PSYC_Array* value) +PSYC_ParseRC PSYC_parse(PSYC_ParserState* state, uint8_t* modifier, PSYC_Array* name, PSYC_Array* value) { int ret; // a return value size_t pos; // a cursor position @@ -367,9 +367,9 @@ PSYC_ReturnCode PSYC_parse(PSYC_State* state, uint8_t* modifier, PSYC_Array* nam /** * List value parser. - * @return see PSYC_ListReturnCodes. + * @return see PSYC_ListRC. */ -PSYC_ListReturnCode PSYC_parseList(PSYC_ListState* state, PSYC_Array *name, PSYC_Array* value, PSYC_Array* elem) +PSYC_ListRC PSYC_parseList(PSYC_ListState* state, PSYC_Array *name, PSYC_Array* value, PSYC_Array* elem) { if (state->cursor >= state->buffer.length) return PSYC_LIST_INCOMPLETE; @@ -440,7 +440,7 @@ PSYC_ListReturnCode PSYC_parseList(PSYC_ListState* state, PSYC_Array *name, PSYC // Start or resume parsing the binary data if (state->elemParsed < state->elemLength) { - if (PSYC_parseBinaryValue((PSYC_State*)state, elem, &(state->elemLength), &(state->elemParsed)) == PSYC_INCOMPLETE) + if (PSYC_parseBinaryValue((PSYC_ParserState*)state, elem, &(state->elemLength), &(state->elemParsed)) == PSYC_INCOMPLETE) return PSYC_LIST_INCOMPLETE; state->elemLength = 0; diff --git a/tests/testParser.c b/tests/testParser.c index 107ec09..a7fc065 100644 --- a/tests/testParser.c +++ b/tests/testParser.c @@ -8,7 +8,7 @@ int main(int argc, char** argv) int index, ret; uint8_t buffer[2048], modifier; PSYC_Array name, value, elem; - PSYC_State state; + PSYC_ParserState state; PSYC_ListState listState; int file = open(argv[1],O_RDONLY);