Shouldn't you be more loose here and simply skip until the next `}` or `,` or something?  This seems to suggest it could break a lot of parsing when a `priv ...` is malformed, whereas recovering don't seem so hard, is it?