#include <stdio.h>
#define WIDTH_STR(width) #width
#define FIXED_FIELD(width) "%" WIDTH_STR(width)
#define TERMINAL(set) "[^" set "]%*1[" set "] "
#define W 1024
int parse(FILE *f) {
char x[W+1], y[W+1], z[W+1];
if (fscanf(f
, FIXED_FIELD
(W
) TERMINAL
(":"), x
) <= 0) { return EOF
; } if (fscanf(f
, FIXED_FIELD
(W
) TERMINAL
(","), y
) <= 0) { return EOF
; } if (fscanf(f
, FIXED_FIELD
(W
) TERMINAL
("\n"), z
) <= 0) { return EOF
; } return 0;
}
int main(void) {
printf("parse returned: %d\n", parse
(stdin
)); }
ICAgICNpbmNsdWRlIDxzdGRpby5oPgoKICAgICNkZWZpbmUgV0lEVEhfU1RSKHdpZHRoKSAjd2lkdGgKICAgICNkZWZpbmUgRklYRURfRklFTEQod2lkdGgpICIlIiBXSURUSF9TVFIod2lkdGgpCiAgICAjZGVmaW5lIFRFUk1JTkFMKHNldCkgIlteIiBzZXQgIl0lKjFbIiBzZXQgIl0gIgoKICAgICNkZWZpbmUgVyAxMDI0CiAgICBpbnQgcGFyc2UoRklMRSAqZikgewogICAgICAgIGNoYXIgeFtXKzFdLCB5W1crMV0sIHpbVysxXTsKICAgICAgICBpZiAoZnNjYW5mKGYsIEZJWEVEX0ZJRUxEKFcpIFRFUk1JTkFMKCI6IiksICB4KSA8PSAwKSB7IHJldHVybiBFT0Y7IH0KICAgICAgICBpZiAoZnNjYW5mKGYsIEZJWEVEX0ZJRUxEKFcpIFRFUk1JTkFMKCIsIiksICB5KSA8PSAwKSB7IHJldHVybiBFT0Y7IH0KICAgICAgICBpZiAoZnNjYW5mKGYsIEZJWEVEX0ZJRUxEKFcpIFRFUk1JTkFMKCJcbiIpLCB6KSA8PSAwKSB7IHJldHVybiBFT0Y7IH0KICAgICAgICBwcmludGYoIjwlcz5cbiIsIHgpOwogICAgICAgIHByaW50ZigiPCVzPlxuIiwgeSk7CiAgICAgICAgcHJpbnRmKCI8JXM+XG4iLCB6KTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIAogICAgaW50IG1haW4odm9pZCkgewogICAgCXByaW50ZigicGFyc2UgcmV0dXJuZWQ6ICVkXG4iLCBwYXJzZShzdGRpbikpOwogICAgfQ==