Implemented initializer list
This commit is contained in:
parent
8e57d7a2b5
commit
638c5e8e00
26
src/parser.c
26
src/parser.c
@ -92,6 +92,7 @@ static int _init_declarator_list(C99 * c99);
|
|||||||
static int _init_declarator(C99 * c99);
|
static int _init_declarator(C99 * c99);
|
||||||
static int _initializer(C99 * c99);
|
static int _initializer(C99 * c99);
|
||||||
static int _initializer_list(C99 * c99);
|
static int _initializer_list(C99 * c99);
|
||||||
|
static int _designation(C99 * c99);
|
||||||
|
|
||||||
|
|
||||||
/* functions */
|
/* functions */
|
||||||
@ -1329,8 +1330,29 @@ static int _initializer(C99 * c99)
|
|||||||
|
|
||||||
/* initializer-list */
|
/* initializer-list */
|
||||||
static int _initializer_list(C99 * c99)
|
static int _initializer_list(C99 * c99)
|
||||||
/* [ designation ] initializer
|
/* [ designation ] initializer { "," [ designation] initializer } */
|
||||||
* initializer-list "," [ designation ] initializer */
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf(stderr, "DEBUG: %s() NOT IMPLEMENTED\n", __func__);
|
||||||
|
#endif
|
||||||
|
if(token_in_set(c99->token, c99set_designation))
|
||||||
|
ret |= _designation(c99);
|
||||||
|
ret |= _initializer(c99);
|
||||||
|
while(token_get_code(c99->token) == C99_CODE_COMMA)
|
||||||
|
{
|
||||||
|
ret |= c99_scan(c99);
|
||||||
|
if(token_in_set(c99->token, c99set_designation))
|
||||||
|
ret |= _designation(c99);
|
||||||
|
ret |= _initializer(c99);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* designation */
|
||||||
|
static int _designation(C99 * c99)
|
||||||
{
|
{
|
||||||
/* FIXME implement */
|
/* FIXME implement */
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -119,6 +119,8 @@ static TokenCode _c99set_designation[] =
|
|||||||
C99_CODE_NULL
|
C99_CODE_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
TokenSet c99set_designation = _c99set_designation;
|
||||||
|
|
||||||
|
|
||||||
/* enum-specifier */
|
/* enum-specifier */
|
||||||
static TokenCode _c99set_enum_specifier[] =
|
static TokenCode _c99set_enum_specifier[] =
|
||||||
|
Loading…
Reference in New Issue
Block a user