anchor.diff:  
   @lexer::members {
   
  -  // A queue where extra tokens are pushed on (see the NEWLINE lexer rule).         
  -  private java.util.Queue<Token> tokens = new java.util.LinkedList<>();
  -  
  +  // A queue where extra tokens are pushed on (see the NEWLINE lexer rule).
  +  private java.util.LinkedList<Token> tokens = new java.util.LinkedList<>();
  +
     // The stack that keeps track of the indentation level.
     private java.util.Stack<Integer> indents = new java.util.Stack<>();
  -  
  +
     // The amount of opened braces, brackets and parenthesis.
     private int opened = 0;
   
  
positive.code:     int stop = start + text.length();
      return new CommonToken(this._tokenFactorySourcePair, type, DEFAULT_TOKEN_CHANNEL, start, stop);
    }
    
    // Calculates the indentation of the provided spaces, taking the 
    // following rules into account:
    //
    // "Tabs are replaced (from left to right) by one to eight spaces 
    //  such that the total number of characters up to and including 
    //  the replacement is a multiple of eight [...]"
    //
    //  -- https://docs.python.org/3.1/reference/lexical_analysis.html#indentation
    static int getIndentationCount(String spaces) {
      
      int count = 0;
            
      for (char ch : spaces.toCharArray()) {
        switch (ch) {
          case '\t':
  
negative.code: BREAK : 'break';
  
  NEWLINE
   : ( {atStartOfInput()}?   SPACES
     | ( '\r'? '\n' | '\r' ) SPACES?
     )
     {
       String newLine = getText().replaceAll("[^\r\n]+", "");
       String spaces = getText().replaceAll("[\r\n]+", "");
  