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 }