@@ -105,28 +105,25 @@ function get_iface_decl(name::Symbol, iname::Symbol, gtyp::GType)
105
105
pname = g_type_name (parent)
106
106
piname = symbol (string (pname,' I' ))
107
107
piface_decl = get_iface_decl (pname, piname, parent)
108
- quote
108
+ :(
109
109
if $ (Meta. quot (name)) in keys (gtype_ifaces)
110
110
const $ (esc (iname)) = gtype_ifaces[$ (Meta. quot (name))]
111
111
else
112
112
$ piface_decl
113
113
abstract $ (esc (iname)) <: $ (esc (piname))
114
114
gtype_ifaces[$ (Meta. quot (name))] = $ (esc (iname))
115
115
end
116
- end
116
+ )
117
117
end
118
118
119
119
get_gtype_decl (name:: Symbol , lib, symname:: Expr ) =
120
- quote
121
- GLib. g_type (:: Type{$(esc(name))} ) = $ (esc (symname))
122
- end
120
+ :( GLib. g_type (:: Type{$(esc(name))} ) = $ (esc (symname)) )
123
121
get_gtype_decl (name:: Symbol , lib, symname:: Symbol ) =
124
- quote
125
- GLib. g_type (:: Type{$(esc(name))} ) = ccall (($ (Meta. quot (symbol (string (symname," _get_type" )))), $ (esc (lib))), GType, ())
126
- end
122
+ :( GLib. g_type (:: Type{$(esc(name))} ) =
123
+ ccall (($ (Meta. quot (symbol (string (symname," _get_type" )))), $ (esc (lib))), GType, ()) )
127
124
128
- function get_type_decl (name,iname,gtyp,gtype_decl )
129
- quote
125
+ function get_type_decl (name,iname,gtyp)
126
+ :(
130
127
if $ (Meta. quot (name)) in keys (gtype_wrappers)
131
128
const $ (esc (iname)) = gtype_ifaces[$ (Meta. quot (name))]
132
129
const $ (esc (name)) = gtype_wrappers[$ (Meta. quot (name))]
@@ -138,8 +135,7 @@ function get_type_decl(name,iname,gtyp,gtype_decl)
138
135
end
139
136
gtype_wrappers[$ (Meta. quot (name))] = $ (esc (name))
140
137
end
141
- $ (gtype_decl)
142
- end
138
+ )
143
139
end
144
140
145
141
macro Gtype (name,lib,symname)
@@ -149,20 +145,19 @@ macro Gtype(name,lib,symname)
149
145
error (" not implemented yet" )
150
146
end
151
147
iname = symbol (string (name,' I' ))
152
- gtype_decl = get_gtype_decl (name, lib, symname)
153
- get_type_decl (name,iname,gtyp,gtype_decl)
148
+ Expr (:block ,
149
+ get_type_decl (name, iname, gtyp),
150
+ get_gtype_decl (name, lib, symname))
154
151
end
155
152
156
153
macro Gabstract (iname,lib,symname)
157
154
@assert endswith (string (iname)," I" )
158
155
name = symbol (string (iname)[1 : end - 1 ])
159
156
gtyp = g_type (name, lib, symname)
160
157
@assert name === g_type_name (gtyp)
161
- iface_decl = get_iface_decl (name, iname, gtyp)
162
- quote
163
- $ iface_decl
164
- $ (get_gtype_decl (iname, lib, symname))
165
- end
158
+ Expr (:block ,
159
+ get_iface_decl (name, iname, gtyp),
160
+ get_gtype_decl (iname, lib, symname))
166
161
end
167
162
168
163
macro quark_str (q)
0 commit comments