'A variation of ``scan`` routine, described on pg. 165 of [1], which
puts at tuple, whenever a deduction occurs, to deduction stack.
See Also
scan, scan_check, scan_and_fill, scan_and_fill_c'

def scan_c(self, alpha, word):

    A_dict = self.A_dict
    A_dict_inv = self.A_dict_inv
    table = self.table
    f = alpha
    i = 0
    r = len(word)
    b = alpha
    j = (r - 1)
    while ((i <= j) and (table[f][A_dict[word[i]]] is not None)):
        f = table[f][A_dict[word[i]]]
        i += 1
    if (i > j):
        if (f != b):
            self.coincidence_c(f, b)
        return
    while ((j >= i) and (table[b][A_dict_inv[word[j]]] is not None)):
        b = table[b][A_dict_inv[word[j]]]
        j -= 1
    if (j < i):
        self.coincidence_c(f, b)
    elif (j == i):
        table[f][A_dict[word[i]]] = b
        table[b][A_dict_inv[word[i]]] = f
        self.deduction_stack.append((f, word[i]))
