Implemented initializer list

This commit is contained in:
Pierre Pronchery 2008-03-11 17:25:58 +00:00
parent 8e57d7a2b5
commit 638c5e8e00
2 changed files with 26 additions and 2 deletions

View File

@ -92,6 +92,7 @@ static int _init_declarator_list(C99 * c99);
static int _init_declarator(C99 * c99);
static int _initializer(C99 * c99);
static int _initializer_list(C99 * c99);
static int _designation(C99 * c99);
/* functions */
@ -1329,8 +1330,29 @@ static int _initializer(C99 * c99)
/* initializer-list */
static int _initializer_list(C99 * c99)
/* [ designation ] initializer
* initializer-list "," [ designation ] initializer */
/* [ designation ] initializer { "," [ 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 */
#ifdef DEBUG

View File

@ -119,6 +119,8 @@ static TokenCode _c99set_designation[] =
C99_CODE_NULL
};
TokenSet c99set_designation = _c99set_designation;
/* enum-specifier */
static TokenCode _c99set_enum_specifier[] =