Typedef enum almost done:)

This commit is contained in:
2018-12-18 21:10:57 +01:00
parent 4c204baf6d
commit 34a5203c68
2 changed files with 321 additions and 3 deletions

View File

@@ -34,6 +34,12 @@
%define GTK_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_WINDOW))
%define GTK_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WINDOW))
%define GTK_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_WINDOW, GtkWindowClass))
; typedef struct _GtkWindowPrivate GtkWindowPrivate;
; typedef struct _GtkWindowClass GtkWindowClass;
; typedef struct _GtkWindowGeometryInfo GtkWindowGeometryInfo;
; typedef struct _GtkWindowGroup GtkWindowGroup;
; typedef struct _GtkWindowGroupClass GtkWindowGroupClass;
; typedef struct _GtkWindowGroupPrivate GtkWindowGroupPrivate;
; GtkWindowClass:
; @parent_class: The parent class.
; @set_focus: Sets child as the focus widget for the window.
@@ -64,6 +70,12 @@
; In particular, do not use #GTK_WINDOW_POPUP just to turn off
; the window borders; use gtk_window_set_decorated() for that.
GTK_WINDOW_TOPLEVEL EQU 0
GTK_WINDOW_POPUP EQU 1
/** EQU 2
; GtkWindowPosition:
; @GTK_WIN_POS_NONE: No influence is made on placement.
; @GTK_WIN_POS_CENTER: Windows should be placed in the center of the screen.
@@ -76,11 +88,263 @@
; using #GTK_WIN_POS_CENTER_ALWAYS is almost always a bad idea.
; It wont necessarily work well with all window managers or on all windowing systems.
GTK_WIN_POS_NONE EQU 3
GTK_WIN_POS_CENTER EQU 4
GTK_WIN_POS_MOUSE EQU 5
GTK_WIN_POS_CENTER_ALWAYS EQU 6
GTK_WIN_POS_CENTER_ON_PARENT EQU 7
GDK_AVAILABLE_IN_ALL EQU 8
GDK_AVAILABLE_IN_ALL EQU 9
GDK_AVAILABLE_IN_ALL EQU 10
GDK_AVAILABLE_IN_ALL EQU 11
GDK_AVAILABLE_IN_ALL EQU 12
GDK_AVAILABLE_IN_ALL EQU 13
GDK_AVAILABLE_IN_ALL EQU 14
GDK_AVAILABLE_IN_ALL EQU 15
GDK_AVAILABLE_IN_ALL EQU 16
GDK_AVAILABLE_IN_ALL EQU 17
GDK_AVAILABLE_IN_ALL EQU 18
GDK_AVAILABLE_IN_ALL EQU 19
GDK_AVAILABLE_IN_ALL EQU 20
GDK_AVAILABLE_IN_ALL EQU 21
GDK_AVAILABLE_IN_ALL EQU 22
GDK_AVAILABLE_IN_ALL EQU 23
GDK_AVAILABLE_IN_ALL EQU 24
GDK_AVAILABLE_IN_ALL EQU 25
GDK_AVAILABLE_IN_ALL EQU 26
GDK_AVAILABLE_IN_3_4 EQU 27
GDK_AVAILABLE_IN_3_4 EQU 28
GDK_DEPRECATED_IN_3_8_FOR(gtk_widget_set_opacity) EQU 29
GDK_DEPRECATED_IN_3_8_FOR(gtk_widget_get_opacity) EQU 30
GDK_AVAILABLE_IN_ALL EQU 31
GDK_AVAILABLE_IN_ALL EQU 32
GDK_AVAILABLE_IN_ALL EQU 33
GDK_AVAILABLE_IN_ALL EQU 34
GDK_AVAILABLE_IN_ALL EQU 35
GDK_AVAILABLE_IN_ALL EQU 36
GDK_AVAILABLE_IN_ALL EQU 37
GDK_AVAILABLE_IN_ALL EQU 38
GDK_AVAILABLE_IN_ALL EQU 39
GDK_AVAILABLE_IN_ALL EQU 40
GDK_AVAILABLE_IN_ALL EQU 41
GDK_AVAILABLE_IN_ALL EQU 42
GDK_AVAILABLE_IN_ALL EQU 43
GDK_AVAILABLE_IN_ALL EQU 44
GDK_AVAILABLE_IN_3_4 EQU 45
GDK_AVAILABLE_IN_3_4 EQU 46
GDK_AVAILABLE_IN_ALL EQU 47
GDK_AVAILABLE_IN_ALL EQU 48
GDK_AVAILABLE_IN_3_2 EQU 49
GDK_AVAILABLE_IN_3_2 EQU 50
GDK_AVAILABLE_IN_ALL EQU 51
GDK_AVAILABLE_IN_ALL EQU 52
GDK_AVAILABLE_IN_ALL EQU 53
GDK_AVAILABLE_IN_ALL EQU 54
GDK_AVAILABLE_IN_ALL EQU 55
GDK_AVAILABLE_IN_ALL EQU 56
GDK_AVAILABLE_IN_ALL EQU 57
GDK_AVAILABLE_IN_ALL EQU 58
GDK_AVAILABLE_IN_ALL EQU 59
GDK_AVAILABLE_IN_ALL EQU 60
GDK_AVAILABLE_IN_ALL EQU 61
GDK_AVAILABLE_IN_ALL EQU 62
GDK_AVAILABLE_IN_ALL EQU 63
GDK_AVAILABLE_IN_ALL EQU 64
GDK_AVAILABLE_IN_ALL EQU 65
GDK_AVAILABLE_IN_ALL EQU 66
GDK_AVAILABLE_IN_ALL EQU 67
GDK_AVAILABLE_IN_ALL EQU 68
GDK_AVAILABLE_IN_ALL EQU 69
GDK_AVAILABLE_IN_ALL EQU 70
GDK_AVAILABLE_IN_ALL EQU 71
GDK_AVAILABLE_IN_ALL EQU 72
GDK_AVAILABLE_IN_ALL EQU 73
GDK_AVAILABLE_IN_ALL EQU 74
GDK_AVAILABLE_IN_ALL EQU 75
GDK_AVAILABLE_IN_ALL EQU 76
GDK_AVAILABLE_IN_ALL EQU 77
; If window is set modal, input will be grabbed when show and released when hide
GDK_AVAILABLE_IN_ALL EQU 78
GDK_AVAILABLE_IN_ALL EQU 79
GDK_AVAILABLE_IN_ALL EQU 80
GDK_AVAILABLE_IN_ALL EQU 81
GDK_AVAILABLE_IN_ALL EQU 82
GDK_AVAILABLE_IN_ALL EQU 83
GDK_AVAILABLE_IN_ALL EQU 84
GDK_AVAILABLE_IN_ALL EQU 85
GDK_AVAILABLE_IN_ALL EQU 86
GDK_AVAILABLE_IN_ALL EQU 87
GDK_AVAILABLE_IN_ALL EQU 88
GDK_AVAILABLE_IN_ALL EQU 89
GDK_AVAILABLE_IN_ALL EQU 90
GDK_AVAILABLE_IN_ALL EQU 91
GDK_AVAILABLE_IN_ALL EQU 92
GDK_AVAILABLE_IN_ALL EQU 93
GDK_AVAILABLE_IN_ALL EQU 94
GDK_AVAILABLE_IN_ALL EQU 95
GDK_AVAILABLE_IN_ALL EQU 96
GDK_AVAILABLE_IN_ALL EQU 97
GDK_AVAILABLE_IN_ALL EQU 98
GDK_AVAILABLE_IN_3_18 EQU 99
GDK_AVAILABLE_IN_3_10 EQU 100
GDK_AVAILABLE_IN_ALL EQU 101
GDK_AVAILABLE_IN_ALL EQU 102
GDK_AVAILABLE_IN_ALL EQU 103
GDK_AVAILABLE_IN_ALL EQU 104
; Set initial default size of the window (does not constrain user
; resize operations)
GDK_AVAILABLE_IN_ALL EQU 105
GDK_AVAILABLE_IN_ALL EQU 106
GDK_AVAILABLE_IN_ALL EQU 107
GDK_AVAILABLE_IN_ALL EQU 108
GDK_AVAILABLE_IN_ALL EQU 109
GDK_AVAILABLE_IN_ALL EQU 110
GDK_AVAILABLE_IN_ALL EQU 111
GDK_AVAILABLE_IN_ALL EQU 112
GDK_AVAILABLE_IN_ALL EQU 113
GDK_AVAILABLE_IN_ALL EQU 114
GDK_AVAILABLE_IN_ALL EQU 115
; Ignore this unless you are writing a GUI builder
GDK_DEPRECATED_IN_3_10 EQU 116
GDK_AVAILABLE_IN_ALL EQU 117
GDK_AVAILABLE_IN_ALL EQU 118
GDK_AVAILABLE_IN_ALL EQU 119
; Window grips
GDK_DEPRECATED_IN_3_14 EQU 120
GDK_DEPRECATED_IN_3_14 EQU 121
GDK_DEPRECATED_IN_3_14 EQU 122
GDK_DEPRECATED_IN_3_14 EQU 123
GDK_AVAILABLE_IN_3_10 EQU 124
GDK_AVAILABLE_IN_3_16 EQU 125
GDK_AVAILABLE_IN_3_12 EQU 126
GDK_AVAILABLE_IN_3_14 EQU 127
G_END_DECLS EQU 128
%endif ; __GTK_WINDOW_H__

View File

@@ -60,6 +60,8 @@ class PARSEOBJECT:
self._passes = count(0)
self.inside_comment = False
self.inside_typedef = False
self.typedef_enum = False
self.enum_begin = False
def inc_passes(self):
self.passes = next(self._passes)
@@ -110,7 +112,11 @@ class PARSEOBJECT:
def parsetokens(self, fl):
templine = []
tempfile = []
enum_cnt = 0
for l in fl:
templine = []
tempstr = ""
if len(l) == 0:
templine.append("\n")
continue
@@ -119,20 +125,68 @@ class PARSEOBJECT:
tempfile.append(self.parse_comment(l))
continue
if l[0] == "TYPEDEF" or l[0] == "typedef":
tempfile.append(self.parse_typedef(l))
self.parse_typedef(l)
if self.typedef_enum == False:
templine.append("; ")
for e in l:
templine.append(e)
tempfile.append(templine)
continue
if l[0] == "TOKEN_PREPROCESS":
tempfile.append(self.parse_preprocess(l))
continue
if self.inside_typedef == True:
if self.typedef_enum == True:
if l[0] == "TOKEN_LBRACE" and len(l) == 2:
self.enum_begin = True
continue
if len(l) == 1:
if l[0].endswith(","):
tempstr = l[0]
templine.append(tempstr[:-1]+"\t")
templine.append("EQU\t")
templine.append(str(enum_cnt)+"\n")
tempfile.append(templine)
enum_cnt += 1
continue
else:
templine.append(l[0]+"\t")
templine.append("EQU\t")
templine.append(str(enum_cnt)+"\n")
tempfile.append(templine)
enum_cnt += 1
continue
continue
if len(l) == 3:
if l[0].endswith(","):
tempstr = l[0]
enum_cnt = l[2]
templine.append(tempstr[:-1]+"\t")
templine.append("EQU"+"\t")
templine.append(enum_cnt+"\n")
tempfile.append(templine)
continue
continue
if l[0] == "TOKEN_RBRACE" and len(l) == 3:
self.enum_begin = False
self.typedef_enum = False
self.inside_typedef = False
enum_cnt = 0
continue
continue
continue
return tempfile
def parse_typedef(self, l):
templine = []
for w in l:
if w == "TYPEDEF":
if w == "TYPEDEF" or w == "typedef":
self.inside_typedef = True
continue
if w == "ENUM":
if w == "ENUM" or w == "enum":
self.typedef_enum = True
continue
def parse_comment(self, l):
templine = []