Example #1
0
void f5()
{
    int OutputValue;
    int InputValue = 20;

    OutputFunction(OutputValue);
    InputFunction(InputValue);
}
Example #2
0
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;
}