secondaryCheck method

bool secondaryCheck(
  1. List<int> stack,
  2. int stack_top,
  3. int buffer_position,
  4. int distance,
)

Implementation

bool secondaryCheck(
    List<int> stack, int stack_top, int buffer_position, int distance) {
  for (var top = stack_top - 1; top >= 0; top--) {
    var j = parseCheck(stack, top, tokStream.getKind(buffer[buffer_position]),
        buffer_position + 1);
    if (((j - buffer_position + 1) > MIN_DISTANCE) && (j > distance)) {
      return true;
    }
  }

  var scope_repair = PrimaryRepairInfo();
  scope_repair.bufferPosition = buffer_position + 1;
  scope_repair.distance = distance;
  scopeTrial(scope_repair, stack, stack_top);

  return ((scope_repair.distance - buffer_position) > MIN_DISTANCE &&
      scope_repair.distance > distance);
}