|
|
@@ -8,32 +8,33 @@ public sealed class BitwiseLibrary
|
|
|
|
|
|
public BitwiseLibrary()
|
|
|
{
|
|
|
+ var libraryName = "bit32";
|
|
|
Functions =
|
|
|
[
|
|
|
- new("arshift", ArShift),
|
|
|
- new("band", BAnd),
|
|
|
- new("bnot", BNot),
|
|
|
- new("bor", BOr),
|
|
|
- new("btest", BTest),
|
|
|
- new("bxor", BXor),
|
|
|
- new("extract", Extract),
|
|
|
- new("lrotate", LRotate),
|
|
|
- new("lshift", LShift),
|
|
|
- new("replace", Replace),
|
|
|
- new("rrotate", RRotate),
|
|
|
- new("rshift", RShift),
|
|
|
+ new(libraryName, "arshift", ArShift),
|
|
|
+ new(libraryName, "band", BAnd),
|
|
|
+ new(libraryName, "bnot", BNot),
|
|
|
+ new(libraryName, "bor", BOr),
|
|
|
+ new(libraryName, "btest", BTest),
|
|
|
+ new(libraryName, "bxor", BXor),
|
|
|
+ new(libraryName, "extract", Extract),
|
|
|
+ new(libraryName, "lrotate", LRotate),
|
|
|
+ new(libraryName, "lshift", LShift),
|
|
|
+ new(libraryName, "replace", Replace),
|
|
|
+ new(libraryName, "rrotate", RRotate),
|
|
|
+ new(libraryName, "rshift", RShift),
|
|
|
];
|
|
|
}
|
|
|
|
|
|
- public readonly LuaFunction[] Functions;
|
|
|
+ public readonly LibraryFunction[] Functions;
|
|
|
|
|
|
public ValueTask<int> ArShift(LuaFunctionExecutionContext context, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var x = context.GetArgument<double>(0);
|
|
|
var disp = context.GetArgument<double>(1);
|
|
|
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "arshift", 1, x);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "arshift", 2, disp);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, x);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 2, disp);
|
|
|
|
|
|
var v = Bit32Helper.ToInt32(x);
|
|
|
var a = (int)disp;
|
|
|
@@ -59,14 +60,14 @@ public sealed class BitwiseLibrary
|
|
|
}
|
|
|
|
|
|
var arg0 = context.GetArgument<double>(0);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "band", 1, arg0);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, arg0);
|
|
|
|
|
|
var value = Bit32Helper.ToUInt32(arg0);
|
|
|
|
|
|
for (int i = 1; i < context.ArgumentCount; i++)
|
|
|
{
|
|
|
var arg = context.GetArgument<double>(i);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "band", 1 + i, arg);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1 + i, arg);
|
|
|
|
|
|
var v = Bit32Helper.ToUInt32(arg);
|
|
|
value &= v;
|
|
|
@@ -79,7 +80,7 @@ public sealed class BitwiseLibrary
|
|
|
public ValueTask<int> BNot(LuaFunctionExecutionContext context, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var arg0 = context.GetArgument<double>(0);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "bnot", 1, arg0);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, arg0);
|
|
|
|
|
|
var value = Bit32Helper.ToUInt32(arg0);
|
|
|
return new(context.Return(~value));
|
|
|
@@ -93,14 +94,14 @@ public sealed class BitwiseLibrary
|
|
|
}
|
|
|
|
|
|
var arg0 = context.GetArgument<double>(0);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "bor", 1, arg0);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, arg0);
|
|
|
|
|
|
var value = Bit32Helper.ToUInt32(arg0);
|
|
|
|
|
|
for (int i = 1; i < context.ArgumentCount; i++)
|
|
|
{
|
|
|
var arg = context.GetArgument<double>(i);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "bor", 1 + i, arg);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1 + i, arg);
|
|
|
|
|
|
var v = Bit32Helper.ToUInt32(arg);
|
|
|
value |= v;
|
|
|
@@ -118,14 +119,14 @@ public sealed class BitwiseLibrary
|
|
|
}
|
|
|
|
|
|
var arg0 = context.GetArgument<double>(0);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "btest", 1, arg0);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, arg0);
|
|
|
|
|
|
var value = Bit32Helper.ToUInt32(arg0);
|
|
|
|
|
|
for (int i = 1; i < context.ArgumentCount; i++)
|
|
|
{
|
|
|
var arg = context.GetArgument<double>(i);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "btest", 1 + i, arg);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1 + i, arg);
|
|
|
|
|
|
var v = Bit32Helper.ToUInt32(arg);
|
|
|
value &= v;
|
|
|
@@ -142,14 +143,14 @@ public sealed class BitwiseLibrary
|
|
|
}
|
|
|
|
|
|
var arg0 = context.GetArgument<double>(0);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "bxor", 1, arg0);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, arg0);
|
|
|
|
|
|
var value = Bit32Helper.ToUInt32(arg0);
|
|
|
|
|
|
for (int i = 1; i < context.ArgumentCount; i++)
|
|
|
{
|
|
|
var arg = context.GetArgument<double>(i);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "bxor", 1 + i, arg);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1 + i, arg);
|
|
|
|
|
|
var v = Bit32Helper.ToUInt32(arg);
|
|
|
value ^= v;
|
|
|
@@ -166,9 +167,9 @@ public sealed class BitwiseLibrary
|
|
|
? context.GetArgument<double>(2)
|
|
|
: 1;
|
|
|
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "extract", 1, arg0);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "extract", 2, arg1);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "extract", 3, arg2);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, arg0);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 2, arg1);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 3, arg2);
|
|
|
|
|
|
var n = Bit32Helper.ToUInt32(arg0);
|
|
|
var field = (int)arg1;
|
|
|
@@ -192,8 +193,8 @@ public sealed class BitwiseLibrary
|
|
|
var x = context.GetArgument<double>(0);
|
|
|
var disp = context.GetArgument<double>(1);
|
|
|
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "lrotate", 1, x);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "lrotate", 2, disp);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, x);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 2, disp);
|
|
|
|
|
|
var v = Bit32Helper.ToUInt32(x);
|
|
|
var a = ((int)disp) % 32;
|
|
|
@@ -216,8 +217,8 @@ public sealed class BitwiseLibrary
|
|
|
var x = context.GetArgument<double>(0);
|
|
|
var disp = context.GetArgument<double>(1);
|
|
|
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "lshift", 1, x);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "lshift", 2, disp);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, x);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 2, disp);
|
|
|
|
|
|
var v = Bit32Helper.ToUInt32(x);
|
|
|
var a = (int)disp;
|
|
|
@@ -247,10 +248,10 @@ public sealed class BitwiseLibrary
|
|
|
? context.GetArgument<double>(3)
|
|
|
: 1;
|
|
|
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "replace", 1, arg0);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "replace", 2, arg1);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "replace", 3, arg2);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "replace", 4, arg3);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, arg0);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 2, arg1);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 3, arg2);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 4, arg3);
|
|
|
|
|
|
var n = Bit32Helper.ToUInt32(arg0);
|
|
|
var v = Bit32Helper.ToUInt32(arg1);
|
|
|
@@ -278,8 +279,8 @@ public sealed class BitwiseLibrary
|
|
|
var x = context.GetArgument<double>(0);
|
|
|
var disp = context.GetArgument<double>(1);
|
|
|
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "rrotate", 1, x);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "rrotate", 2, disp);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, x);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 2, disp);
|
|
|
|
|
|
var v = Bit32Helper.ToUInt32(x);
|
|
|
var a = ((int)disp) % 32;
|
|
|
@@ -301,8 +302,8 @@ public sealed class BitwiseLibrary
|
|
|
var x = context.GetArgument<double>(0);
|
|
|
var disp = context.GetArgument<double>(1);
|
|
|
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "rshift", 1, x);
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, "rshift", 2, disp);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 1, x);
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.Thread, 2, disp);
|
|
|
|
|
|
var v = Bit32Helper.ToUInt32(x);
|
|
|
var a = (int)disp;
|