void f5() { int OutputValue; int InputValue = 20; OutputFunction(OutputValue); InputFunction(InputValue); }
bool TOutputTraverser::visitAggregate(Visit visit, TIntermAggregate *node) { TInfoSinkBase &out = sink; if (node->getOp() == EOpNull) { out.prefix(EPrefixError); out << "node is still EOpNull!"; return true; } OutputTreeText(out, node, mDepth); switch (node->getOp()) { case EOpSequence: out << "Sequence\n"; return true; case EOpComma: out << "Comma\n"; return true; case EOpFunction: OutputFunction(out, "Function Definition", node); break; case EOpFunctionCall: OutputFunction(out, "Function Call", node); break; case EOpParameters: out << "Function Parameters: "; break; case EOpPrototype: OutputFunction(out, "Function Prototype", node); break; case EOpConstructFloat: out << "Construct float"; break; case EOpConstructVec2: out << "Construct vec2"; break; case EOpConstructVec3: out << "Construct vec3"; break; case EOpConstructVec4: out << "Construct vec4"; break; case EOpConstructBool: out << "Construct bool"; break; case EOpConstructBVec2: out << "Construct bvec2"; break; case EOpConstructBVec3: out << "Construct bvec3"; break; case EOpConstructBVec4: out << "Construct bvec4"; break; case EOpConstructInt: out << "Construct int"; break; case EOpConstructIVec2: out << "Construct ivec2"; break; case EOpConstructIVec3: out << "Construct ivec3"; break; case EOpConstructIVec4: out << "Construct ivec4"; break; case EOpConstructUInt: out << "Construct uint"; break; case EOpConstructUVec2: out << "Construct uvec2"; break; case EOpConstructUVec3: out << "Construct uvec3"; break; case EOpConstructUVec4: out << "Construct uvec4"; break; case EOpConstructMat2: out << "Construct mat2"; break; case EOpConstructMat2x3: out << "Construct mat2x3"; break; case EOpConstructMat2x4: out << "Construct mat2x4"; break; case EOpConstructMat3x2: out << "Construct mat3x2"; break; case EOpConstructMat3: out << "Construct mat3"; break; case EOpConstructMat3x4: out << "Construct mat3x4"; break; case EOpConstructMat4x2: out << "Construct mat4x2"; break; case EOpConstructMat4x3: out << "Construct mat4x3"; break; case EOpConstructMat4: out << "Construct mat4"; break; case EOpConstructStruct: out << "Construct structure"; break; case EOpLessThan: out << "Compare Less Than"; break; case EOpGreaterThan: out << "Compare Greater Than"; break; case EOpLessThanEqual: out << "Compare Less Than or Equal"; break; case EOpGreaterThanEqual: out << "Compare Greater Than or Equal"; break; case EOpVectorEqual: out << "Equal"; break; case EOpVectorNotEqual: out << "NotEqual"; break; case EOpMod: out << "mod"; break; case EOpModf: out << "modf"; break; case EOpPow: out << "pow"; break; case EOpAtan: out << "arc tangent"; break; case EOpMin: out << "min"; break; case EOpMax: out << "max"; break; case EOpClamp: out << "clamp"; break; case EOpMix: out << "mix"; break; case EOpStep: out << "step"; break; case EOpSmoothStep: out << "smoothstep"; break; case EOpDistance: out << "distance"; break; case EOpDot: out << "dot-product"; break; case EOpCross: out << "cross-product"; break; case EOpFaceForward: out << "face-forward"; break; case EOpReflect: out << "reflect"; break; case EOpRefract: out << "refract"; break; case EOpMul: out << "component-wise multiply"; break; case EOpOuterProduct: out << "outer product"; break; case EOpDeclaration: out << "Declaration: "; break; case EOpInvariantDeclaration: out << "Invariant Declaration: "; break; default: out.prefix(EPrefixError); out << "Bad aggregation op"; } if (node->getOp() != EOpSequence && node->getOp() != EOpParameters) out << " (" << node->getCompleteString() << ")"; out << "\n"; return true; }