]> git.draconx.ca Git - gob-dx.git/blobdiff - src/tree.h
Release 0.92.2
[gob-dx.git] / src / tree.h
index c47156f5580cd53bfc1f63cb9789d88932570ce1..9d853297f8ebd4b968bc76152256d472814a7abb 100644 (file)
@@ -35,13 +35,21 @@ enum {
        VARIABLE_NODE
 };
 
+/* for ccode type */
+enum {
+       C_CCODE,
+       H_CCODE,
+       HT_CCODE,
+       PH_CCODE
+};
+
 typedef union _Node Node;
 
 typedef struct _CCode CCode;
 struct _CCode {
        int type;
-       int header;
-       GString *cbuf;
+       int cctype;
+       char *cbuf;
        int line_no;
 };
 
@@ -91,44 +99,50 @@ typedef struct _Argument Argument;
 struct _Argument {
        int type;
        char *gtktype;
+       Type *atype;
        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;
+       gboolean vararg;
 };
 
 typedef struct _Variable Variable;
@@ -151,13 +165,13 @@ union _Node {
        Variable variable;
 };
 
-Node *new_ccode(int header, GString *cbuf, int line_no);
+Node *new_ccode(int cctype, 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, 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);
 
 #endif