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 _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
|
||||
|
@ -119,6 +119,8 @@ static TokenCode _c99set_designation[] =
|
||||
C99_CODE_NULL
|
||||
};
|
||||
|
||||
TokenSet c99set_designation = _c99set_designation;
|
||||
|
||||
|
||||
/* enum-specifier */
|
||||
static TokenCode _c99set_enum_specifier[] =
|
||||
|
Loading…
Reference in New Issue
Block a user