From 106c030fa78edd11fddae1f615dd8a46975523eb Mon Sep 17 00:00:00 2001 From: Martin Winkler Date: Thu, 16 Mar 2017 13:46:57 +0000 Subject: [PATCH] - detect "const" for variables --- src/stubser/cfile_if.h | 9 +++++---- src/stubser/cfile_parser.c | 9 +++++++++ src/stubser/cfile_parser_if.h | 2 ++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/stubser/cfile_if.h b/src/stubser/cfile_if.h index dcfcdf3..9ecb0a4 100644 --- a/src/stubser/cfile_if.h +++ b/src/stubser/cfile_if.h @@ -26,10 +26,11 @@ typedef enum _CFILE_VARIABLE_TYPE_T { CVARIABLE_TYPE_UNDEF = 0, /*!< @brief undefined */ - CVARIABLE_TYPE_REGULAR = 1, /*!< @brief Regular C function definition */ - CVARIABLE_TYPE_STATIC = 2, /*!< @brief Static C function definition */ - CVARIABLE_TYPE_EXTERN = 4, /*!< @brief External C function definition */ - CVARIABLE_TYPE_FUPTR = 8, /*!< @brief Function pointer as parameter */ + CVARIABLE_TYPE_REGULAR = 0x01, /*!< @brief Regular C variable definition */ + CVARIABLE_TYPE_STATIC = 0x02, /*!< @brief Static C variable definition */ + CVARIABLE_TYPE_EXTERN = 0x04, /*!< @brief External C variable definition */ + CVARIABLE_TYPE_FUPTR = 0x08, /*!< @brief Function pointer as variable */ + CVARIABLE_TYPE_CONST = 0x10, /*!< @brief Const C variable */ CVARIABLE_TYPE_LAST_ENUM } cfile_variable_type_t; diff --git a/src/stubser/cfile_parser.c b/src/stubser/cfile_parser.c index f01a8fc..5ff7a2c 100644 --- a/src/stubser/cfile_parser.c +++ b/src/stubser/cfile_parser.c @@ -18,6 +18,7 @@ #include "xstring.h" #include "xmalloc.h" #include "cfile_if.h" +#include "cfile_parser_if.h" #include "cfile_parser_loc.h" #include "cfile_parser_worker_loc.h" #include "debug.h" @@ -237,6 +238,14 @@ STATIC int8_t matchPrefix(void *aElement, celement_type_t aElementType, char *aS xmallocStrlcpy(type, temp, strlen(temp)); } + if (CELEMENT_TYPE_VARIABLE == aElementType) + { + if (*type && NULL != strstr(*type, CPARS_ELEMENT_CONST)) + { + CVARIABLE_SET_TYPE(((cfile_variable_t* ) aElement)->type, CVARIABLE_TYPE_CONST); + } + } + free(temp); return 0; } diff --git a/src/stubser/cfile_parser_if.h b/src/stubser/cfile_parser_if.h index a74bbed..30bbb16 100644 --- a/src/stubser/cfile_parser_if.h +++ b/src/stubser/cfile_parser_if.h @@ -14,6 +14,8 @@ #ifndef STUBSER_CFILE_PARSER_IF_H_ #define STUBSER_CFILE_PARSER_IF_H_ +#define CPARS_ELEMENT_CONST "const" + uint32_t cfile_parser(char *aPath, cfile_t *aList); #endif /* STUBSER_CFILE_PARSER_IF_H_ */