1. Add an argument to each pragma, like "requires statement",
"requires declaration".
2. Every pragma handler returns a pointer to struct or NULL. This
struct describes the parsed pragma. For example, private and shared
variables list for some OMP pragmas.
3. When front end gets a pragma token, it is parsed, then if the
pragma requires statement or declaration, front end parses it, and
attaches the return value from pragma handler to it.
4. During gimplification all attached pragmas are handled in some way.
What do you think of this?