{ "body": { "id": 10, "nodeType": "Block", "src": "113:2:0", "statements": [] }, "condition": { "argumentTypes": null, "expression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "id": 13, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "123:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_S_$3_storage_ptr", "typeString": "struct C.S storage pointer" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 12, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "127:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_S_$3_storage", "typeString": "struct C.S storage ref" } }, "src": "123:5:0", "typeDescriptions": { "typeIdentifier": "t_struct$_S_$3_storage_ptr", "typeString": "struct C.S storage pointer" } } ], "id": 14, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "122:7:0", "typeDescriptions": { "typeIdentifier": "t_struct$_S_$3_storage_ptr", "typeString": "struct C.S storage pointer" } }, "id": 15, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "f", "nodeType": "MemberAccess", "referencedDeclaration": 2, "src": "122:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 16, "nodeType": "DoWhileStatement", "src": "110:23:0" }