anchor.diff:      ;
   
   endStat
  -    : (NL|COMMA|SEMI)
  +    : (NL|COMMA|SEMI) NL*
       ;
   
   endStatNL 
  -    : NL
  +    : NL+
       ;
   
   // Function declaration without the closing end
   partialFunctionDecl
  -    : 'function' outArgs? ID inArgs? endStat (stat endStat NL*)* 
  +    : 'function' outArgs? ID inArgs? endStat (stat endStat)* 
       ; 
   
   // Normal function declaration including closing end
  
positive.code: 
  // Functions inside method blocks can be comma or semi separated 
  methodDecl
      : partialFunctionDecl 'end' endStat NL*
      ;
  
  classDecl
      : 'classdef' ID endStat NL* (propBlockDecl|methodBlockDecl)* 'end' (EOF|endStat) NL*
      ;
  
  propBlockDecl
      : 'properties' endStat NL* prop* 'end' endStat NL*
      ;
  
  methodBlockDecl
      : 'methods' endStat NL* methodDecl* 'end' endStat NL*
      ;
  
  outArgs
  
negative.code: 
  stat
      : dotRef '=' expr
      | 'if' expr endStat (stat endStat)* 
        ('elseif' expr endStat (stat endStat)*)* 
        ('else' endStat (stat endStat)*)* 
        'end'
      | ID
      | NL
  