/* for ccode type */
enum {
+ A_CCODE,
+ AT_CCODE,
C_CCODE,
H_CCODE,
HT_CCODE,
NO_SCOPE,
PUBLIC_SCOPE,
PRIVATE_SCOPE,
- PROTECTED_SCOPE,
+ PROTECTED_SCOPE
};
/* method type */
Type *mtype;
char *otype; /*for override methods*/
GList *gtktypes; /*GTK types for a signal*/
+ GList *flags; /* GTK_RUN_* flags for a signal */
char *id;
GList *args;
char *onerror;
Type *vtype;
char *id;
int line_no;
+ char *destructor;
+ int destructor_line;
+ gboolean destructor_simple;
+ char *initializer;
+ int initializer_line;
};
union _Node {
Node *new_type(int stars, char *name, char *postfix);
Node *new_check(int chtype, char *number);
Node *new_funcarg(Type *atype, char *name, GList *checks);
-Node *new_method(int scope, int method, Type *mtype, char *otype, GList *gtktypes, char *id, GList *args, char *onerror, char *cbuf, int line_no, int ccode_line, gboolean vararg);
-Node *new_argument(char *gtktype, Type *atype, GList *flags, char *name, char *get, int get_line, char *set, int set_line, int line_no);
-Node *new_variable(int scope, Type *vtype, char *id,int line_no);
+Node *new_method(int scope, int method, Type *mtype, char *otype,
+ GList *gtktypes, GList *flags, char *id, GList *args,
+ char *onerror, char *cbuf, int line_no, int ccode_line,
+ gboolean vararg);
+Node *new_argument(char *gtktype, Type *atype, GList *flags, char *name,
+ char *get, int get_line, char *set, int set_line,
+ int line_no);
+Node *new_variable(int scope, Type *vtype, char *id, int line_no,
+ char *destructor, int destructor_line,
+ gboolean destructor_simple,
+ char *initializer, int initializer_line);
+
+Type *copy_type(Type *type);
#endif