]> git.draconx.ca Git - gob-dx.git/blobdiff - src/tree.h
Release 0.92.0
[gob-dx.git] / src / tree.h
index c47156f5580cd53bfc1f63cb9789d88932570ce1..474579e6b96f3c5daba9245f22d289011382a5a0 100644 (file)
@@ -41,7 +41,7 @@ typedef struct _CCode CCode;
 struct _CCode {
        int type;
        int header;
-       GString *cbuf;
+       char *cbuf;
        int line_no;
 };
 
@@ -93,39 +93,44 @@ struct _Argument {
        char *gtktype;
        GList *flags;
        char *name;
-       GString *get;
+       char *get;
        int get_line;
-       GString *set;
+       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,
-       PRIVATE_VIRTUAL_METHOD,
        SIGNAL_LAST_METHOD,
        SIGNAL_FIRST_METHOD,
-       PRIVATE_SIGNAL_LAST_METHOD,
-       PRIVATE_SIGNAL_FIRST_METHOD,
        OVERRIDE_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;
@@ -151,13 +156,13 @@ union _Node {
        Variable variable;
 };
 
-Node *new_ccode(int header, GString *cbuf, int line_no);
+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, 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,int ccode_line, int vararg);
-Node *new_argument(char *gtktype, GList *flags, char *name, GString *get, int get_line, GString *set, int set_line, int line_no);
+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, 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