public Interpreter (ushort[] program) {
this.program = program;
this.qs = null;
// process info block
Debug.Assert ((OpCode)program[0] == OpCode.Info, "Regex", "Cant' find info block");
this.group_count = ReadProgramCount (1) + 1;
this.match_min = ReadProgramCount (3);
//this.match_max = ReadProgramCount (5);
// setup
this.program_start = 7;
this.groups = new int [group_count];
}