mirror of
https://github.com/cimgui/cimgui.git
synced 2025-08-10 11:58:30 +01:00
cpp2ffi: add locations to struct_and_enums
This commit is contained in:
@@ -1106,7 +1106,7 @@ function M.Parser()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
function par:gen_structs_and_enums_table()
|
function par:gen_structs_and_enums_table()
|
||||||
local outtab = {enums={},structs={}}
|
local outtab = {enums={},structs={},locations={}}
|
||||||
self.typedefs_table = {}
|
self.typedefs_table = {}
|
||||||
self.vardefs = {}
|
self.vardefs = {}
|
||||||
|
|
||||||
@@ -1153,6 +1153,7 @@ function M.Parser()
|
|||||||
local name,value = line:match("%s*([%w_]+)%s*=%s*([^,]+)")
|
local name,value = line:match("%s*([%w_]+)%s*=%s*([^,]+)")
|
||||||
if value then
|
if value then
|
||||||
table.insert(outtab.enums[enumname],{name=name,value=value})
|
table.insert(outtab.enums[enumname],{name=name,value=value})
|
||||||
|
outtab.locations[enumname] = it.locat
|
||||||
else --increment by one
|
else --increment by one
|
||||||
local name = line:match("%s*([^,]+)")
|
local name = line:match("%s*([^,]+)")
|
||||||
local enum_table = outtab.enums[enumname]
|
local enum_table = outtab.enums[enumname]
|
||||||
@@ -1167,6 +1168,7 @@ function M.Parser()
|
|||||||
end
|
end
|
||||||
if name then --avoid last , if present
|
if name then --avoid last , if present
|
||||||
table.insert(outtab.enums[enumname],{name=name,value=value})
|
table.insert(outtab.enums[enumname],{name=name,value=value})
|
||||||
|
outtab.locations[enumname] = it.locat
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1176,6 +1178,7 @@ function M.Parser()
|
|||||||
--M.prtable(cleanst,structname,strtab)
|
--M.prtable(cleanst,structname,strtab)
|
||||||
if structname and not self.typenames[structname] then
|
if structname and not self.typenames[structname] then
|
||||||
outtab.structs[structname] = {}
|
outtab.structs[structname] = {}
|
||||||
|
outtab.locations[structname] = it.locat
|
||||||
self.order[structname]=i
|
self.order[structname]=i
|
||||||
for j=3,#strtab-1 do
|
for j=3,#strtab-1 do
|
||||||
self:parse_struct_line(strtab[j],outtab.structs[structname])
|
self:parse_struct_line(strtab[j],outtab.structs[structname])
|
||||||
@@ -1189,6 +1192,7 @@ function M.Parser()
|
|||||||
local cleanst,structname,strtab = self:clean_struct(it.item, it.locat)
|
local cleanst,structname,strtab = self:clean_struct(it.item, it.locat)
|
||||||
if structname then --not empty struc
|
if structname then --not empty struc
|
||||||
outtab.structs[structname] = {}
|
outtab.structs[structname] = {}
|
||||||
|
outtab.locations[structname] = it.locat
|
||||||
for j=3,#strtab-1 do
|
for j=3,#strtab-1 do
|
||||||
self:parse_struct_line(strtab[j],outtab.structs[structname])
|
self:parse_struct_line(strtab[j],outtab.structs[structname])
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user