public void EmitSet(char lo, BitArray set, bool negate, bool ignore, bool reverse)
{
this.Emit(OpCode.Set, PatternCompiler.MakeFlags(negate, ignore, reverse, false));
this.Emit((ushort)lo);
int num = set.Length + 15 >> 4;
this.Emit((ushort)num);
int num2 = 0;
while (num-- != 0)
{
ushort num3 = 0;
for (int i = 0; i < 16; i++)
{
if (num2 >= set.Length)
{
break;
}
if (set[num2++])
{
num3 |= (ushort)(1 << i);
}
}
this.Emit(num3);
}
}