From 637e224fff8869121cafcc5539f9fdaa18afa8ad Mon Sep 17 00:00:00 2001 From: "zik.saleeba" Date: Wed, 3 Jun 2009 02:31:43 +0000 Subject: [PATCH] Now parses but ignores signed/unsigned declarations git-svn-id: http://picoc.googlecode.com/svn/trunk@325 21eae674-98b7-11dd-bd71-f92a316d2d60 --- parse.c | 2 ++ type.c | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/parse.c b/parse.c index 9f8b53c..5a2bfa0 100644 --- a/parse.c +++ b/parse.c @@ -384,6 +384,8 @@ enum ParseResult ParseStatement(struct ParseState *Parser) case TokenStructType: case TokenUnionType: case TokenEnumType: + case TokenSignedType: + case TokenUnsignedType: *Parser = PreState; CheckTrailingSemicolon = ParseDeclaration(Parser, Token); break; diff --git a/type.c b/type.c index 060bb71..3328b45 100644 --- a/type.c +++ b/type.c @@ -288,9 +288,22 @@ int TypeParseFront(struct ParseState *Parser, struct ValueType **Typ) enum LexToken Token = LexGetToken(Parser, NULL, TRUE); *Typ = NULL; + /* just ignore signed/unsigned for now */ + if (Token == TokenSignedType || Token == TokenUnsignedType) + { + Token = LexGetToken(Parser, NULL, FALSE); + if (Token != TokenIntType && Token != TokenLongType && Token != TokenShortType && Token != TokenCharType) + { + *Typ = &IntType; + return TRUE; + } + + Token = LexGetToken(Parser, NULL, TRUE); + } + switch (Token) { - case TokenIntType: case TokenLongType: case TokenShortType: *Typ = &IntType; break; + case TokenIntType: case TokenLongType: case TokenShortType: case TokenSignedType: case TokenUnsignedType: *Typ = &IntType; break; case TokenCharType: *Typ = &CharType; break; #ifndef NO_FP case TokenFloatType: case TokenDoubleType: *Typ = &FPType; break;