From e62357206148229f35698653a5437c18b138e677 Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Mon, 15 Nov 2004 20:51:48 +0000 Subject: [PATCH] add support for 'register' git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6727 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Source/CParse/cscanner.c | 1 + Source/CParse/parser.y | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Source/CParse/cscanner.c b/Source/CParse/cscanner.c index 8489968a7..91c170e36 100644 --- a/Source/CParse/cscanner.c +++ b/Source/CParse/cscanner.c @@ -1238,6 +1238,7 @@ int yylex(void) { /* Ignored keywords */ if (strcmp(yytext,"volatile") == 0) return(VOLATILE); + if (strcmp(yytext,"register") == 0) return(REGISTER); /* SWIG directives */ } else { diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y index 9efb914c1..3682d5e63 100644 --- a/Source/CParse/parser.y +++ b/Source/CParse/parser.y @@ -1248,7 +1248,7 @@ static void default_arguments(Node *n) { %token TYPEDEF %token TYPE_INT TYPE_UNSIGNED TYPE_SHORT TYPE_LONG TYPE_FLOAT TYPE_DOUBLE TYPE_CHAR TYPE_VOID TYPE_SIGNED TYPE_BOOL TYPE_COMPLEX TYPE_TYPEDEF TYPE_RAW %token LPAREN RPAREN COMMA SEMI EXTERN INIT LBRACE RBRACE PERIOD -%token CONST_QUAL VOLATILE STRUCT UNION EQUAL SIZEOF MODULE LBRACKET RBRACKET +%token CONST_QUAL VOLATILE REGISTER STRUCT UNION EQUAL SIZEOF MODULE LBRACKET RBRACKET %token ILLEGAL CONSTANT %token NAME RENAME NAMEWARN EXTEND PRAGMA FEATURE VARARGS %token ENUM @@ -4581,17 +4581,18 @@ pointer : STAR type_qualifier pointer { ; type_qualifier : type_qualifier_raw { - $$ = NewString(""); - SwigType_add_qualifier($$,$1); + $$ = NewString(""); + if ($1) SwigType_add_qualifier($$,$1); } | type_qualifier_raw type_qualifier { - $$ = $2; - SwigType_add_qualifier($$,$1); + $$ = $2; + if ($1) SwigType_add_qualifier($$,$1); } ; type_qualifier_raw : CONST_QUAL { $$ = "const"; } | VOLATILE { $$ = "volatile"; } + | REGISTER { $$ = 0; } ; /* Data type must be a built in type or an identifier for user-defined types