protected int parseComment() throws IOException {
        // Either we are in a single-line comment or 
        // a multiline comment... we can tell by the next character
        int c = read();
        if( c == '/' ) {
            // Continue to the EOL
            while( (c = read()) >= 0 ) {
                // The line will always have at least a \n and we'd
                // have already skipped the \r
                if( c == '\n' ) {
                    break;
                }
            }
        } else if( c == '*' ) {
            // Continue until the first */
            while( (c = read()) >= 0 ) {
                if( c == '*' ) {
                    c = read();
                    if( c == '/' ) {
                        break;
                    }
                }
            }
        } else {
            error("Malformed comment beginning '/'" + (char)c, position(-1));
        }
        return c;
    }