mirror of
https://github.com/cimgui/cimgui.git
synced 2025-08-13 13:18:31 +01:00
cpp2ffi: add COMPILER argument to location iterator
This commit is contained in:
@@ -1290,7 +1290,7 @@ M.serializeTableF = function(t)
|
|||||||
return M.serializeTable("defs",t).."\nreturn defs"
|
return M.serializeTable("defs",t).."\nreturn defs"
|
||||||
end
|
end
|
||||||
--iterates lines from a gcc/clang -E in a specific location
|
--iterates lines from a gcc/clang -E in a specific location
|
||||||
local function location(file,locpathT,defines)
|
local function location(file,locpathT,defines,COMPILER)
|
||||||
local define_re = "^#define%s+([^%s]+)%s+([^%s]+)$"
|
local define_re = "^#define%s+([^%s]+)%s+([^%s]+)$"
|
||||||
local number_re = "^-?[0-9]+u*$"
|
local number_re = "^-?[0-9]+u*$"
|
||||||
local hex_re = "0x[0-9a-fA-F]+u*$"
|
local hex_re = "0x[0-9a-fA-F]+u*$"
|
||||||
@@ -1300,6 +1300,7 @@ local function location(file,locpathT,defines)
|
|||||||
else --gcc, clang
|
else --gcc, clang
|
||||||
location_re = '^# (%d+) "([^"]*)"'
|
location_re = '^# (%d+) "([^"]*)"'
|
||||||
end
|
end
|
||||||
|
|
||||||
local path_reT = {}
|
local path_reT = {}
|
||||||
for i,locpath in ipairs(locpathT) do
|
for i,locpath in ipairs(locpathT) do
|
||||||
table.insert(path_reT,'^.*[\\/]('..locpath..')%.h$')
|
table.insert(path_reT,'^.*[\\/]('..locpath..')%.h$')
|
||||||
@@ -1325,6 +1326,7 @@ local function location(file,locpathT,defines)
|
|||||||
if #line==0 then --nothing on emptyline
|
if #line==0 then --nothing on emptyline
|
||||||
elseif not line:match("%S") then --nothing if only spaces
|
elseif not line:match("%S") then --nothing if only spaces
|
||||||
elseif line:sub(1,1) == "#" then
|
elseif line:sub(1,1) == "#" then
|
||||||
|
--elseif line:match"^%s*#" then
|
||||||
-- Is this a location pragma?
|
-- Is this a location pragma?
|
||||||
local loc_num_t,location_match = line:match(location_re)
|
local loc_num_t,location_match = line:match(location_re)
|
||||||
if location_match then
|
if location_match then
|
||||||
|
@@ -553,7 +553,15 @@ local function parseImGuiHeader(header,names)
|
|||||||
local iterator = (HAVE_COMPILER and cpp2ffi.location) or filelines
|
local iterator = (HAVE_COMPILER and cpp2ffi.location) or filelines
|
||||||
|
|
||||||
local tableo = {}
|
local tableo = {}
|
||||||
for line,loca,loca2 in iterator(pipe,names,{}) do
|
--[[
|
||||||
|
local line
|
||||||
|
repeat
|
||||||
|
line =pipe:read"*l"
|
||||||
|
table.insert(tableo,line)
|
||||||
|
until not line
|
||||||
|
cpp2ffi.save_data("cdefs1.lua",table.concat(tableo,"\n"))
|
||||||
|
--]]
|
||||||
|
for line,loca,loca2 in iterator(pipe,names,{},COMPILER) do
|
||||||
parser:insert(line)
|
parser:insert(line)
|
||||||
--table.insert(tableo,line)
|
--table.insert(tableo,line)
|
||||||
--print(loca,loca2)
|
--print(loca,loca2)
|
||||||
@@ -719,7 +727,7 @@ if #implementations > 0 then
|
|||||||
|
|
||||||
local iterator = (HAVE_COMPILER and cpp2ffi.location) or filelines
|
local iterator = (HAVE_COMPILER and cpp2ffi.location) or filelines
|
||||||
|
|
||||||
for line,locat in iterator(pipe,{locati},{}) do
|
for line,locat in iterator(pipe,{locati},{},COMPILER) do
|
||||||
--local line, comment = split_comment(line)
|
--local line, comment = split_comment(line)
|
||||||
parser2:insert(line)
|
parser2:insert(line)
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user