Now have a 'when' (when the variable is true in *any* recent context) and 'if' (if the variable is true only in the *most* recent context).  Added to the lexer a handler to determine if the block name is valid.  This duplicates code from the parser, but it allows the lexer to tell the user when he's being dumb.