anchor.diff:      : TRY_CLAUSE 
         { $clause = new TryClause($TRY_CLAUSE); }
         (
  -        LPAREN 
           resource
           { $clause.setResource($resource.resource); }
  -        RPAREN
         )? 
         block
         { $clause.setBlock($block.block); }
  
positive.code: catchBlock returns [CatchClause clause]
      : CATCH_CLAUSE 
        { $clause = new CatchClause($CATCH_CLAUSE); }
        LPAREN 
        variable 
        { $clause.setVariable($variable.variable); }
  
negative.code:     ;
  
  resource returns [Resource resource]
      : LPAREN 
      { $resource = new Resource($LPAREN); }
      (
      (COMPILER_ANNOTATION|declarationStart|specificationStart) 
        => specifiedVariable
        { $resource.setVariable($specifiedVariable.variable); }
      //-> ^(RESOURCE specifiedVariable2)
      | expression
        { $resource.setExpression($expression.expression); }
      //-> ^(RESOURCE expression)
      )
      RPAREN
      { $resource.setEndToken($RPAREN); }
      ;
  
  specifiedVariable returns [Variable variable]
  