diff options
author | Juerg Billeter <j@bitron.ch> | 2008-01-18 22:17:00 +0000 |
---|---|---|
committer | Jürg Billeter <juergbi@src.gnome.org> | 2008-01-18 22:17:00 +0000 |
commit | f17d23de90182c2fd05d1d859b60a4cf2ec46409 (patch) | |
tree | 9788af42f8ce6aa73a14d92631c4be5cbea121af /gobject-introspection | |
parent | a980f1c90cfca1b9b83b9032edfc35ae9d0c7efa (diff) | |
download | vala-f17d23de90182c2fd05d1d859b60a4cf2ec46409.tar.gz |
support C99 _Bool type
2008-01-18 Juerg Billeter <j@bitron.ch>
* gobject-introspection/gidlparser.c,
gobject-introspection/scannerlexer.l,
gobject-introspection/scannerparser.y: support C99 _Bool type
svn path=/trunk/; revision=860
Diffstat (limited to 'gobject-introspection')
-rw-r--r-- | gobject-introspection/gidlparser.c | 1 | ||||
-rw-r--r-- | gobject-introspection/scannerlexer.l | 3 | ||||
-rw-r--r-- | gobject-introspection/scannerparser.y | 8 |
3 files changed, 9 insertions, 3 deletions
diff --git a/gobject-introspection/gidlparser.c b/gobject-introspection/gidlparser.c index 3d5292619..6a76b2ca7 100644 --- a/gobject-introspection/gidlparser.c +++ b/gobject-introspection/gidlparser.c @@ -92,6 +92,7 @@ parse_type_internal (gchar *str, gchar **rest) } basic[] = { { "void", TYPE_TAG_VOID, 0 }, { "gpointer", TYPE_TAG_VOID, 1 }, + { "bool", TYPE_TAG_BOOLEAN, 0 }, { "gboolean", TYPE_TAG_BOOLEAN, 0 }, #if 0 { "char", TYPE_TAG_INT8, 0 }, diff --git a/gobject-introspection/scannerlexer.l b/gobject-introspection/scannerlexer.l index 255f7dcd6..d5af511b4 100644 --- a/gobject-introspection/scannerlexer.l +++ b/gobject-introspection/scannerlexer.l @@ -2,7 +2,7 @@ /* GObject introspection: C lexer * * Copyright (c) 1997 Sandro Sigala <ssigala@globalnet.it> - * Copyright (c) 2007 Jürg Billeter <j@bitron.ch> + * Copyright (c) 2007-2008 Jürg Billeter <j@bitron.ch> * * All rights reserved. * @@ -118,6 +118,7 @@ stringtext ([^\"])|(\\.) [a-zA-Z_][a-zA-Z_0-9]* { if (igenerator->macro_scan) return IDENTIFIER; else REJECT; } "auto" { return AUTO; } +"_Bool" { return BOOL; } "break" { return BREAK; } "case" { return CASE; } "char" { return CHAR; } diff --git a/gobject-introspection/scannerparser.y b/gobject-introspection/scannerparser.y index fae5067db..47a97b601 100644 --- a/gobject-introspection/scannerparser.y +++ b/gobject-introspection/scannerparser.y @@ -1,7 +1,7 @@ /* GObject introspection: C parser * * Copyright (c) 1997 Sandro Sigala <ssigala@globalnet.it> - * Copyright (c) 2007 Jürg Billeter <j@bitron.ch> + * Copyright (c) 2007-2008 Jürg Billeter <j@bitron.ch> * * All rights reserved. * @@ -209,7 +209,7 @@ cdirective_free (CDirective *directive) %token ELLIPSIS ADDEQ SUBEQ MULEQ DIVEQ MODEQ XOREQ ANDEQ OREQ SL SR %token SLEQ SREQ EQ NOTEQ LTEQ GTEQ ANDAND OROR PLUSPLUS MINUSMINUS ARROW -%token AUTO BREAK CASE CHAR CONST CONTINUE DEFAULT DO DOUBLE ELSE ENUM +%token AUTO BOOL BREAK CASE CHAR CONST CONTINUE DEFAULT DO DOUBLE ELSE ENUM %token EXTERN FLOAT FOR GOTO IF INLINE INT LONG REGISTER RESTRICT RETURN SHORT %token SIGNED SIZEOF STATIC STRUCT SWITCH TYPEDEF UNION UNSIGNED VOID VOLATILE %token WHILE @@ -787,6 +787,10 @@ type_specifier { $$ = cbasic_type_new ("unsigned"); } + | BOOL + { + $$ = cbasic_type_new ("bool"); + } | struct_or_union_specifier | enum_specifier | typedef_name |