summaryrefslogtreecommitdiff
path: root/gobject-introspection
diff options
context:
space:
mode:
authorJuerg Billeter <j@bitron.ch>2008-01-18 22:17:00 +0000
committerJürg Billeter <juergbi@src.gnome.org>2008-01-18 22:17:00 +0000
commitf17d23de90182c2fd05d1d859b60a4cf2ec46409 (patch)
tree9788af42f8ce6aa73a14d92631c4be5cbea121af /gobject-introspection
parenta980f1c90cfca1b9b83b9032edfc35ae9d0c7efa (diff)
downloadvala-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.c1
-rw-r--r--gobject-introspection/scannerlexer.l3
-rw-r--r--gobject-introspection/scannerparser.y8
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