public override LuaValueType GetType()
{
switch (OpType)
{
case LuaBinaryOperatorType.Add: return LuaValueType.Number;
case LuaBinaryOperatorType.Concatenate: return LuaValueType.String;
case LuaBinaryOperatorType.Divide: return LuaValueType.Number;
case LuaBinaryOperatorType.IsEqualTo:
case LuaBinaryOperatorType.IsGreaterThan:
case LuaBinaryOperatorType.IsGreaterThanOrEqualTo:
case LuaBinaryOperatorType.IsLessThan:
case LuaBinaryOperatorType.IsLessThanOrEqualTo:
case LuaBinaryOperatorType.IsNotEqualTo:
return LuaValueType.Boolean;
case LuaBinaryOperatorType.LogicalAnd:
case LuaBinaryOperatorType.LogicalOr:
return Left.GetType() | Right.GetType();
case LuaBinaryOperatorType.Modulus: return LuaValueType.Number;
case LuaBinaryOperatorType.Multiply: return LuaValueType.Number;
case LuaBinaryOperatorType.RaiseToPower: return LuaValueType.Number;
case LuaBinaryOperatorType.Subtract: return LuaValueType.Number;
default: return LuaValueType.Any;
}
}