add support for 'register'

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6727 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-11-15 20:51:48 +00:00
commit eb4f1acca0
2 changed files with 7 additions and 5 deletions

View file

@ -1238,6 +1238,7 @@ int yylex(void) {
/* Ignored keywords */ /* Ignored keywords */
if (strcmp(yytext,"volatile") == 0) return(VOLATILE); if (strcmp(yytext,"volatile") == 0) return(VOLATILE);
if (strcmp(yytext,"register") == 0) return(REGISTER);
/* SWIG directives */ /* SWIG directives */
} else { } else {

View file

@ -1248,7 +1248,7 @@ static void default_arguments(Node *n) {
%token <ivalue> TYPEDEF %token <ivalue> TYPEDEF
%token <type> 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 <type> 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 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 ILLEGAL CONSTANT
%token NAME RENAME NAMEWARN EXTEND PRAGMA FEATURE VARARGS %token NAME RENAME NAMEWARN EXTEND PRAGMA FEATURE VARARGS
%token ENUM %token ENUM
@ -4581,17 +4581,18 @@ pointer : STAR type_qualifier pointer {
; ;
type_qualifier : type_qualifier_raw { type_qualifier : type_qualifier_raw {
$$ = NewString(""); $$ = NewString("");
SwigType_add_qualifier($$,$1); if ($1) SwigType_add_qualifier($$,$1);
} }
| type_qualifier_raw type_qualifier { | type_qualifier_raw type_qualifier {
$$ = $2; $$ = $2;
SwigType_add_qualifier($$,$1); if ($1) SwigType_add_qualifier($$,$1);
} }
; ;
type_qualifier_raw : CONST_QUAL { $$ = "const"; } type_qualifier_raw : CONST_QUAL { $$ = "const"; }
| VOLATILE { $$ = "volatile"; } | VOLATILE { $$ = "volatile"; }
| REGISTER { $$ = 0; }
; ;
/* Data type must be a built in type or an identifier for user-defined types /* Data type must be a built in type or an identifier for user-defined types