anchor.diff:        statement.parent = link(statement);
       }
       currentScope.define(variable);
  -    return statement;
     }
   
     /// Parse `scanner.current` as expression.
  
positive.code:   /// Call any of the `parse*Statement` methods, depending on `scanner.current`.
    /// Link the newly created object to its parent and the parent to its child,
    /// using the assigned `link` callback.
    Statement parseStatement(linkToParent link) {
      var labels = parseLabels();
      switch (scanner.current.type) {
        case TokenType.lcbracket:
  
negative.code:       case TokenType.kw_return:
          return parseReturnStatement(link, labels);
        default:
          isCurrentTokenBeginningOfTypeSpecifier()
              ? parseLocalVariable(link, labels)
              : parseExpressionStatement(link, labels);
      }
    }
  
    /// Parse a [CompoundStatement]. Sets the newly created object as
    /// `currentScope`.
    ///
    /// If `variables` are passed, they are added to this scope. This is useful
    /// for function arguments.
    void parseCompoundStatement(linkToParent link,
        {Iterable<Label> labels: const <Label>[],
        Iterable<Definition> variables: const []}) {
      var openingBracket = scanner.consume([TokenType.lcbracket]);
  