struct _CCode {
int type;
int header;
- GString *cbuf;
+ char *cbuf;
+ int line_no;
};
typedef struct _Class Class;
int type;
int stars;
char *name;
+ char *postfix;
};
enum {
struct _Argument {
int type;
char *gtktype;
+ Type *atype;
GList *flags;
char *name;
- GString *get;
- GString *set;
+ char *get;
+ int get_line;
+ char *set;
+ int set_line;
+ int line_no;
};
/*scope type*/
enum {
+ NO_SCOPE,
PUBLIC_SCOPE,
PRIVATE_SCOPE,
+ PROTECTED_SCOPE,
+};
+
+/* method type */
+enum {
+ REGULAR_METHOD,
INIT_METHOD,
CLASS_INIT_METHOD,
VIRTUAL_METHOD,
typedef struct _Method Method;
struct _Method {
int type;
- int scope;
+ int scope; /* scope type */
+ int method; /* method type */
Type *mtype;
char *otype; /*for override methods*/
GList *gtktypes; /*GTK types for a signal*/
char *id;
GList *args;
char *onerror;
- GString *cbuf;
+ char *cbuf;
int line_no;
+ int ccode_line;
+ int vararg;
};
typedef struct _Variable Variable;
int scope;
Type *vtype;
char *id;
+ int line_no;
};
union _Node {
Variable variable;
};
-Node *new_ccode(int header, GString *cbuf);
+Node *new_ccode(int header, char *cbuf, int line_no);
Node *new_class(char *otype, char *ptype, GList *nodes);
-Node *new_type(int stars, char *name);
+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, Type *mtype, char *otype, GList *gtktypes, char *id, GList *args, char *onerror, GString *cbuf,int line_no);
-Node *new_argument(char *gtktype, GList *flags, char *name, GString *get, GString *set);
-Node *new_variable(int scope, Type *vtype, char *id);
+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, int 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);
#endif