restoring the use of "shadow" keyword, and updating the tokenizer and
parser to include it