diff options
author | Colin Walters <walters@verbum.org> | 2009-02-25 15:25:36 -0500 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2009-02-25 15:34:21 -0500 |
commit | 0b9dda0e725446882dca84b6a64688c8f0e5a4e3 (patch) | |
tree | fd7b7e5d75dc86ea18c1168310d80402fddf5c45 /giscanner/scannerparser.y | |
parent | c58582c7a88a95616fa87b81517ab8a2a76af92f (diff) | |
download | gobject-introspection-0b9dda0e725446882dca84b6a64688c8f0e5a4e3.tar.gz |
Bug 555964 - Parse floating-point #defines
Previously we just supported int and string, add double to this.
Technically we should probably differentiate between float and
double, but it's not likely to be very useful in practice to do so.
Diffstat (limited to 'giscanner/scannerparser.y')
-rw-r--r-- | giscanner/scannerparser.y | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/giscanner/scannerparser.y b/giscanner/scannerparser.y index 85640fec..c92a5381 100644 --- a/giscanner/scannerparser.y +++ b/giscanner/scannerparser.y @@ -167,7 +167,10 @@ primary_expression } | FLOATING { - $$ = gi_source_symbol_new (CSYMBOL_TYPE_INVALID); + $$ = gi_source_symbol_new (CSYMBOL_TYPE_CONST); + $$->const_double_set = TRUE; + $$->const_double = 0.0; + sscanf (yytext, "%lf", &($$->const_double)); } | strings | '(' expression ')' @@ -1256,7 +1259,7 @@ function_macro_define object_macro_define : object_macro constant_expression { - if ($2->const_int_set || $2->const_string != NULL) { + if ($2->const_int_set || $2->const_double_set || $2->const_string != NULL) { $2->ident = $1; gi_source_scanner_add_symbol (scanner, $2); gi_source_symbol_unref ($2); |