def help(plugin, topic="")
"math <expression>, evaluate mathematical expression"
end
def help(plugin, topic="")
"math <expression>, evaluate mathematical expression"
end
+ # ruby doesn't like floating-point values without a 0
+ # in front of them, so find any non-digit followed by
+ # a .<digits> and insert a 0 before the .
+ expr.gsub!(/(\D|^)(\.\d+)/,'\10\2')
+
while expr =~ /(exp ([\w\d]+))/
exp = $1
val = Math.exp($2).to_s
expr.gsub!(/#{Regexp.escape exp}/, "+#{val}")
end
while expr =~ /(exp ([\w\d]+))/
exp = $1
val = Math.exp($2).to_s
expr.gsub!(/#{Regexp.escape exp}/, "+#{val}")
end
expr.gsub!(/\bover /, "/ ")
expr.gsub!(/\bsquared/, "**2 ")
expr.gsub!(/\bcubed/, "**3 ")
expr.gsub!(/\bover /, "/ ")
expr.gsub!(/\bsquared/, "**2 ")
expr.gsub!(/\bcubed/, "**3 ")
expr.gsub!(/\bpercent of/, "*0.01*")
expr.gsub!(/\bpercent/, "*0.01")
expr.gsub!(/\% of\b/, "*0.01*")
expr.gsub!(/\%/, "*0.01")
expr.gsub!(/\bpercent of/, "*0.01*")
expr.gsub!(/\bpercent/, "*0.01")
expr.gsub!(/\% of\b/, "*0.01*")
expr.gsub!(/\%/, "*0.01")
- expr.gsub!(/\bsquare root of (\d+)/, "\1 ** 0.5 ")
- expr.gsub!(/\bcubed? root of (\d+)/, "\1 **(1.0/3.0) ")
+ expr.gsub!(/\bsquare root of (\d+(\.\d+)?)/, '\1 ** 0.5 ')
+ expr.gsub!(/\bcubed? root of (\d+(\.\d+)?)/, '\1 **(1.0/3.0) ')
expr.gsub!(/ of /, " * ")
expr.gsub!(/(bit(-| )?)?xor(\'?e?d( with))?/, "^")
expr.gsub!(/(bit(-| )?)?or(\'?e?d( with))?/, "|")
expr.gsub!(/bit(-| )?and(\'?e?d( with))?/, "& ")
expr.gsub!(/(plus|and)/, "+")
expr.gsub!(/ of /, " * ")
expr.gsub!(/(bit(-| )?)?xor(\'?e?d( with))?/, "^")
expr.gsub!(/(bit(-| )?)?or(\'?e?d( with))?/, "|")
expr.gsub!(/bit(-| )?and(\'?e?d( with))?/, "& ")
expr.gsub!(/(plus|and)/, "+")