mirror of
https://github.com/cimgui/cimgui.git
synced 2025-08-16 06:18:30 +01:00
simplify parse_enum_values function
This commit is contained in:
@@ -165,50 +165,28 @@ local function parse_enum_value(value, allenums)
|
|||||||
local sep = sepk[ik]
|
local sep = sepk[ik]
|
||||||
local v = seps[i]
|
local v = seps[i]
|
||||||
if sep==v then
|
if sep==v then
|
||||||
|
local val1 = clean(several[i])
|
||||||
|
local val2 = clean(several[i+1])
|
||||||
|
if allenums[val1] then val1 = allenums[val1] end
|
||||||
|
if allenums[val2] then val2 = allenums[val2] end
|
||||||
if v=="~" then
|
if v=="~" then
|
||||||
local val = clean(several[i+1])
|
|
||||||
if allenums[val] then val = allenums[val] end
|
|
||||||
assert(several[i]==" " or several[i]=="")
|
assert(several[i]==" " or several[i]=="")
|
||||||
several[i] = bit.bnot(val)
|
several[i] = bit.bnot(val2)
|
||||||
table.remove(several,i+1)
|
|
||||||
table.remove(seps,i)
|
|
||||||
elseif v=="<<" then
|
elseif v=="<<" then
|
||||||
local val1 = clean(several[i])
|
|
||||||
local val2 = clean(several[i+1])
|
|
||||||
if allenums[val1] then val1 = allenums[val1] end
|
|
||||||
if allenums[val2] then val2 = allenums[val2] end
|
|
||||||
several[i] = bit.lshift(val1,val2)
|
several[i] = bit.lshift(val1,val2)
|
||||||
table.remove(several,i+1)
|
|
||||||
table.remove(seps,i)
|
|
||||||
elseif v==">>" then
|
elseif v==">>" then
|
||||||
local val1 = clean(several[i])
|
|
||||||
local val2 = clean(several[i+1])
|
|
||||||
if allenums[val1] then val1 = allenums[val1] end
|
|
||||||
if allenums[val2] then val2 = allenums[val2] end
|
|
||||||
several[i] = bit.rshift(val1,val2)
|
several[i] = bit.rshift(val1,val2)
|
||||||
table.remove(several,i+1)
|
|
||||||
table.remove(seps,i)
|
|
||||||
elseif v=="&" then
|
elseif v=="&" then
|
||||||
local val1 = clean(several[i])
|
|
||||||
local val2 = clean(several[i+1])
|
|
||||||
if allenums[val1] then val1 = allenums[val1] end
|
|
||||||
if allenums[val2] then val2 = allenums[val2] end
|
|
||||||
several[i] = bit.band(val1,val2)
|
several[i] = bit.band(val1,val2)
|
||||||
table.remove(several,i+1)
|
|
||||||
table.remove(seps,i)
|
|
||||||
elseif v=="^" then
|
elseif v=="^" then
|
||||||
error"^ operator still not done"
|
error"^ operator still not done"
|
||||||
elseif v=="|" then
|
elseif v=="|" then
|
||||||
local val1 = clean(several[i])
|
|
||||||
local val2 = clean(several[i+1])
|
|
||||||
if allenums[val1] then val1 = allenums[val1] end
|
|
||||||
if allenums[val2] then val2 = allenums[val2] end
|
|
||||||
several[i] = bit.bor(val1,val2)
|
several[i] = bit.bor(val1,val2)
|
||||||
table.remove(several,i+1)
|
|
||||||
table.remove(seps,i)
|
|
||||||
else
|
else
|
||||||
error("unknown operator "..v)
|
error("unknown operator "..v)
|
||||||
end
|
end
|
||||||
|
table.remove(several,i+1)
|
||||||
|
table.remove(seps,i)
|
||||||
else
|
else
|
||||||
i = i + 1
|
i = i + 1
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user