sloc Homework Hints

void doNormal(int ch) 
{
    switch (ch) {
        case ';':
            ++statements;
            break;
        case '"':
            state = IN_A_STRING;
            break;
    }
}
void processChar(int ch)
{
    if (ch === '\n') ++physicalLines;
    switch (state) {
        case NORMAL:
            doNormal(ch);
            break;
        case IN_A_STRING:
            doInAString(ch);
            break;
        case ESCAPED_IN_A_STRING:
            doEscapedInAString(ch);
            break;
    }
}
void processAFile(File *f)
{
    int ch = getc(f);
    while (ch!= EOF) {
        processChar(ch);
        ch = getc(f);
    }
}