location for error messages
null or this expression when this declaration is a field
context
if the first bit is set it means do not issue error message for invalid modification; if the second bit is set, it means that this declaration is a field and a subfield of it is modified.
Modifiable.yes or Modifiable.initialization
Check to see if declaration can be modified in this context (sc). Issue error if not.