TranslationUnit[1:0->7:0]
  FunctionDeclaration[1:0->7:0]
    NamedType[1:0->1:4]
      int
    foo
    (
    )
    FunctionDefinition[2:0->7:0]
    {
      VariableDeclaration[3:4->3:9]
        NamedType[3:4->3:8]
          int
        x
      VariableDeclaration[4:4->4:16]
        NamedType[4:4->4:11]
          double
        y
        NumericLiteral[4:15->4:15]
        2
      VariableDeclaration[5:4->5:20]
        NamedType[5:4->5:11]
          double
        z
        BinaryExpression[5:15->5:20]
          Name[5:15->5:17]
          x
          +
          Name[5:19->5:20]
          y
      ReturnStatement[6:4->6:12]
        Name[6:11->6:12]
        z
    }
