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