TranslationUnit[1:0->12:0] StructOrClassDeclaration[1:7->7:0] MyStruct VariableDeclaration[3:4->4:4] NamedType[3:4->3:8] int x VariableDeclaration[4:4->5:0] Pointer[4:4->4:14] NamedType[4:4->4:12] s next FunctionDeclaration[7:0->12:0] NamedType[7:0->7:4] int foo ( ) FunctionDefinition[8:0->12:0] { VariableDeclaration[9:4->9:14] NamedType[9:4->9:13] MyStruct s FunctionCall[10:4->10:23] Name[10:4->10:10] printf StringLiteral[10:11->10:16] "%d\n" MemberExpression[10:19->10:22] Name[10:19->10:20] s Identifier[10:21->10:21] x ReturnStatement[11:4->11:14] MemberExpression[11:11->11:14] Name[11:11->11:12] s Identifier[11:13->11:13] x }