#ifndef COMPILER_TRANSLATOR_ASNODE_H_
#define COMPILER_TRANSLATOR_ASNODE_H_
#include "common/angleutils.h"
#include "compiler/translator/IntermNode.h"
#include <utility>
namespace sh
{
namespace priv
{
template <typename T>
struct AsNode
{ … };
template <>
struct AsNode<TIntermNode>
{ … };
template <>
struct AsNode<TIntermTyped>
{ … };
template <>
struct AsNode<TIntermSymbol>
{ … };
template <>
struct AsNode<TIntermConstantUnion>
{ … };
template <>
struct AsNode<TIntermFunctionPrototype>
{ … };
template <>
struct AsNode<TIntermPreprocessorDirective>
{ … };
template <>
struct AsNode<TIntermSwizzle>
{ … };
template <>
struct AsNode<TIntermBinary>
{ … };
template <>
struct AsNode<TIntermUnary>
{ … };
template <>
struct AsNode<TIntermTernary>
{ … };
template <>
struct AsNode<TIntermIfElse>
{ … };
template <>
struct AsNode<TIntermSwitch>
{ … };
template <>
struct AsNode<TIntermCase>
{ … };
template <>
struct AsNode<TIntermFunctionDefinition>
{ … };
template <>
struct AsNode<TIntermAggregate>
{ … };
template <>
struct AsNode<TIntermBlock>
{ … };
template <>
struct AsNode<TIntermGlobalQualifierDeclaration>
{ … };
template <>
struct AsNode<TIntermDeclaration>
{ … };
template <>
struct AsNode<TIntermLoop>
{ … };
template <>
struct AsNode<TIntermBranch>
{ … };
}
template <typename T>
ANGLE_INLINE T *asNode(TIntermNode *node)
{ … }
}
#endif