From 94ab1adf9e761712509a1313a7b7116ebc12484c Mon Sep 17 00:00:00 2001 From: sonoro1234 Date: Mon, 29 Jul 2019 12:16:29 +0200 Subject: [PATCH] generator corrections for vectorname to vector name and take care of Pair not present (after 1.71) --- generator/cpp2ffi.lua | 2 ++ generator/generator.lua | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/generator/cpp2ffi.lua b/generator/cpp2ffi.lua index d7a60ec..068dfd0 100644 --- a/generator/cpp2ffi.lua +++ b/generator/cpp2ffi.lua @@ -812,6 +812,7 @@ function M.Parser() te = te:gsub("%*","Ptr") self.templates[ttype] = self.templates[ttype] or {} self.templates[ttype][template] = te + it2 = it2:gsub("(<[%w_%*%s]+>)([^%s])","%1 %2") --add if not present space after <> it2 = it2:gsub("<([%w_%*%s]+)>","_"..te) end --clean mutable @@ -937,6 +938,7 @@ function M.Parser() elseif it.re_name == "struct_re" then local cleanst,structname,strtab = self:clean_struct(it.item) --if not void stname or templated + --M.prtable(cleanst,structname,strtab) if structname and not self.typenames[structname] then outtab.structs[structname] = {} for j=3,#strtab-1 do diff --git a/generator/generator.lua b/generator/generator.lua index 93cd1ae..9f341fa 100644 --- a/generator/generator.lua +++ b/generator/generator.lua @@ -563,9 +563,11 @@ save_data("./output/definitions.lua",serializeTableF(parser1.defsT)) ----------save struct and enums lua table in structs_and_enums.lua for using in bindings local structs_and_enums_table = parser1:gen_structs_and_enums_table() ---correct Pair union member +--correct Pair union member if exists (until 1.71) +if structs_and_enums_table["structs"]["Pair"] then structs_and_enums_table["structs"]["Pair"][2]["name"] = "" structs_and_enums_table["structs"]["Pair"][2]["type"] = structs_and_enums_table["structs"]["Pair"][2]["type"] .. "}" +end ----------------------- save_data("./output/structs_and_enums.lua",serializeTableF(structs_and_enums_table)) save_data("./output/typedefs_dict.lua",serializeTableF(parser1.typedefs_dict))