anchor.diff:          $destructure = new Destructure(null);
           $destructure.setType(vm); }
         (
  -        (var ENTRY_OP) => keyValue
  +        (keyValueStart) => keyValue
           { $destructure.setDestructuredVariables($keyValue.keyValue); }
         |
           variableTuple
  
positive.code:     ;
  
  keyValue returns [KeyValue keyValue]
      : v1=var
        { $keyValue = new KeyValue(null);
          $keyValue.setKey($v1.variable); }
        ENTRY_OP
        { $keyValue.setEndToken($ENTRY_OP); }
        (
          v2=var
          { $keyValue.setValue($v2.variable); 
            $keyValue.setEndToken(null); }
        )?
      ;
  
  destructure returns [Destructure destructure]
  
negative.code:       (LIDENTIFIER|UIDENTIFIER|FUNCTION_MODIFIER|VALUE_MODIFIER|VOID_MODIFIER)
      ;
  
  destructureStart
      : VALUE_MODIFIER compilerAnnotations (LBRACKET|UIDENTIFIER|VOID_MODIFIER|VALUE_MODIFIER|FUNCTION_MODIFIER|LIDENTIFIER ENTRY_OP)
      ;
  
  declarationOrStatement returns [Statement statement]
      options {memoize=true;}
      : compilerAnnotations
        (
          (destructureStart) => d1=destructure
          { $statement=$d1.destructure; }
        | (annotatedDeclarationStart) => d3=declaration
          { $statement=$d3.declaration; }
        | (annotatedAssertionStart) => assertion
  