VIOL rework
This encompasses multiple TODO entries:
- rework VIOL to produce a "violation" token in the AST (via h_action). then, a validation (h_attr_bool) should let the parse fail if applicable (severity vs. strictness). non-fatal violations should be extracted and printed to stderr after the parse.
- somehow rid VIOL() of the internal parser for getting at the severity parameter. this is, i guess, an artefact of h_action() taking a single void pointer of context, so it was not trivial to pass two arguments (message and severity) to the action.