X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=giscanner%2Fsourcescanner.h;h=df16cf6ac86abb3f57e3d767272353e474d1c554;hb=7f178ddeadd99ee82ec0da6ff963392b44d223c3;hp=3e2aacdab4ef1162d15d42c641dffdc897df1bc9;hpb=b8b1ab1162b492fcf5176678201ce191b740c3f8;p=platform%2Fupstream%2Fgobject-introspection.git diff --git a/giscanner/sourcescanner.h b/giscanner/sourcescanner.h index 3e2aacd..df16cf6 100644 --- a/giscanner/sourcescanner.h +++ b/giscanner/sourcescanner.h @@ -6,7 +6,7 @@ * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. + * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -28,10 +28,10 @@ G_BEGIN_DECLS +typedef struct _GISourceComment GISourceComment; typedef struct _GISourceScanner GISourceScanner; typedef struct _GISourceSymbol GISourceSymbol; typedef struct _GISourceType GISourceType; -typedef struct _GISourceDirective GISourceDirective; typedef enum { @@ -96,13 +96,22 @@ typedef enum UNARY_LOGICAL_NEGATION } UnaryOperator; +struct _GISourceComment +{ + char *comment; + char *filename; + int line; +}; + struct _GISourceScanner { char *current_filename; gboolean macro_scan; + gboolean private; /* set by gtk-doc comment / */ + gboolean flags; /* set by gtk-doc comment */ GSList *symbols; GList *filenames; - GHashTable *directives_map; + GSList *comments; /* _GIComment */ GHashTable *typedef_table; GHashTable *struct_or_union_or_enum_table; }; @@ -115,9 +124,13 @@ struct _GISourceSymbol char *ident; GISourceType *base_type; gboolean const_int_set; - int const_int; + gboolean private; + gint64 const_int; /* 64-bit we can handle signed and unsigned 32-bit values */ char *const_string; - GSList *directives; /* list of GISourceDirective */ + gboolean const_double_set; + double const_double; + char *source_filename; + int line; }; struct _GISourceType @@ -129,13 +142,7 @@ struct _GISourceType char *name; GISourceType *base_type; GList *child_list; /* list of GISourceSymbol */ -}; - -struct _GISourceDirective -{ - char *name; - char *value; - GSList *options; /* list of options (key=value) */ + gboolean is_bitfield; }; GISourceScanner * gi_source_scanner_new (void); @@ -143,25 +150,20 @@ gboolean gi_source_scanner_lex_filename (GISourceScanner *igener const gchar *filename); gboolean gi_source_scanner_parse_file (GISourceScanner *igenerator, FILE *file); +void gi_source_scanner_parse_macros (GISourceScanner *scanner, + GList *filenames); void gi_source_scanner_set_macro_scan (GISourceScanner *scanner, gboolean macro_scan); GSList * gi_source_scanner_get_symbols (GISourceScanner *scanner); -GSList * gi_source_scanner_get_directives (GISourceScanner *scanner, - const gchar *name); +GSList * gi_source_scanner_get_comments (GISourceScanner *scanner); void gi_source_scanner_free (GISourceScanner *scanner); -GISourceSymbol * gi_source_symbol_new (GISourceSymbolType type); +GISourceSymbol * gi_source_symbol_new (GISourceSymbolType type, const gchar *filename, int line); gboolean gi_source_symbol_get_const_boolean (GISourceSymbol *symbol); GISourceSymbol * gi_source_symbol_ref (GISourceSymbol *symbol); void gi_source_symbol_unref (GISourceSymbol *symbol); -GISourceDirective * gi_source_directive_new (const gchar *name, - const gchar *value, - GSList *options); -void gi_source_directive_free (GISourceDirective *directive); - /* Private */ -GISourceType * gi_source_array_new (void); void gi_source_scanner_add_symbol (GISourceScanner *scanner, GISourceSymbol *symbol); gboolean gi_source_scanner_is_typedef (GISourceScanner *scanner, @@ -176,9 +178,11 @@ GISourceType * gi_source_struct_new (const char *name); GISourceType * gi_source_union_new (const char *name); GISourceType * gi_source_enum_new (const char *name); GISourceType * gi_source_pointer_new (GISourceType *base_type); -GISourceType * gi_source_array_new (void); +GISourceType * gi_source_array_new (GISourceSymbol *size); GISourceType * gi_source_function_new (void); +void ctype_free (GISourceType * type); + G_END_DECLS #endif /* __SOURCE_SCANNER_H__ */