From dd600a54bac695ca6a0d6639a4b8cf735f730b0b Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Fri, 7 Mar 2008 02:07:13 +0000 Subject: [PATCH] Still working on the parser --- src/parser.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/parser.c b/src/parser.c index f7c7d4d..249a228 100644 --- a/src/parser.c +++ b/src/parser.c @@ -675,11 +675,24 @@ static int _primary_expr(C99 * c99) * string-literal * "(" expression ")" */ { - /* FIXME implement */ + int ret; + int code; + + /* FIXME complete */ #ifdef DEBUG fprintf(stderr, "DEBUG: %s()\n", __func__); #endif - return 0; + if((code = token_get_code(c99->token)) == C99_CODE_IDENTIFIER) + return c99_scan(c99); + else if(code == C99_CODE_OPERATOR_LPAREN) + { + ret = c99_scan(c99); + ret |= _expression(c99); + ret |= _parse_check(c99, C99_CODE_OPERATOR_RPAREN); + return ret; + } + else + return c99_scan(c99); } @@ -1040,7 +1053,7 @@ static int _statement(C99 * c99) * iteration-statement * jump-statement */ { - /* FIXME implement */ + /* FIXME labeled and expression statements conflict */ #ifdef DEBUG fprintf(stderr, "DEBUG: %s()\n", __func__); #endif