Listing 2: A function to reset the scanner


void scanner::reset()
    {
    int c;
    while ((c = in_stream.get()) != EOF)
        if (c == ';' || c == '\n')
            break;
    previous_token = token();
    current_token = token();
    next_token = token();
    }