diff options
author | Jeija <norrepli@gmail.com> | 2012-08-08 19:40:39 +0200 |
---|---|---|
committer | Jeija <norrepli@gmail.com> | 2012-08-08 19:40:39 +0200 |
commit | 0ee661d25d297da14c08248126e465e6fb30d2aa (patch) | |
tree | 60e41973d85737efb4726ffdda512a96a643a406 | |
parent | da6cccf332453be9d561505041af5b9aa33387fa (diff) |
Fix a bug in long conditions
-rw-r--r-- | mesecons_microcontroller/init.lua | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua index 56e45a3..2d0e134 100644 --- a/mesecons_microcontroller/init.lua +++ b/mesecons_microcontroller/init.lua @@ -189,23 +189,26 @@ function yc_command_if_parsecondition(cond, L) cond = string.gsub(cond, "!0", "1") cond = string.gsub(cond, "!1", "0") + + print(cond) local i = 2 local l = string.len(cond) while i<=l do local s = cond:sub(i,i) local b = tonumber(cond:sub(i-1, i-1)) local a = tonumber(cond:sub(i+1, i+1)) - if a == nil then break end + if a == "" then print ("ERROR") break end if s == "=" then - buf = (a == b) - if buf == true then buf = "1" end - if buf == false then buf = "0" end + print(b.."="..a.."?") + if a == b then buf = "1" end + if a ~= b then buf = "0" end cond = string.gsub(cond, b..s..a, buf) i = 1 l = string.len(cond) end i = i + 1 end + print(cond) local i = 2 local l = string.len(cond) @@ -213,7 +216,7 @@ function yc_command_if_parsecondition(cond, L) local s = cond:sub(i,i) local b = tonumber(cond:sub(i-1, i-1)) local a = tonumber(cond:sub(i+1, i+1)) - if a == nil then break end + if a == "" then break end if s == "&" then local buf = ((a==1) and (b==1)) if buf == true then buf = "1" end @@ -240,6 +243,7 @@ function yc_command_if_parsecondition(cond, L) end i = i + 1 end + print(cond) return cond end |