%define api.push_pull "push|pull|both"
%define api.pure "true||false"
Might be an idea; but what I dislike is the repetition between
"push_pull" and the argument. We could have "multi-word" options, like
%define api "push pure"
%define api "pull impure glr"
%define api "push pull frobnicating"
which makes error checking a tad more complicated, but should be doable
if well abstracted with m4 (and thanks to the *-skel.m4 refactoring done
as part of the Java port).
I believe that pure/impure is a less fundamental distinction than
push/pull, which is why I proposed something as radical as "api", but I
see your point.
Paolo