12#ifndef OPENVDB_AX_AST_TOKENS_HAS_BEEN_INCLUDED 
   13#define OPENVDB_AX_AST_TOKENS_HAS_BEEN_INCLUDED 
   17#include <openvdb/version.h> 
   69        if (type == 
"vec2i") 
return VEC2I;
 
   70        if (type == 
"vec2f") 
return VEC2F;
 
   71        if (type == 
"vec2d") 
return VEC2D;
 
   72        if (type == 
"vec3i") 
return VEC3I;
 
   73        if (type == 
"vec3f") 
return VEC3F;
 
   74        if (type == 
"vec3d") 
return VEC3D;
 
   75        if (type == 
"vec4i") 
return VEC4I;
 
   76        if (type == 
"vec4f") 
return VEC4F;
 
   77        if (type == 
"vec4d") 
return VEC4D;
 
   79    else if (type[0] == 
'm') {
 
   80        if (type == 
"mat3f") 
return MAT3F;
 
   81        if (type == 
"mat3d") 
return MAT3D;
 
   82        if (type == 
"mat4f") 
return MAT4F;
 
   83        if (type == 
"mat4d") 
return MAT4D;
 
   85    else if (type[0] == 
'q') {
 
   86        if (type == 
"quatf") 
return QUATF;
 
   87        if (type == 
"quatd") 
return QUATD;
 
   89    else if (type[0] == 
'i') {
 
   90        if (type == 
"int16") 
return INT16;
 
   91        if (type == 
"int")   
return INT32;
 
   92        if (type == 
"int32") 
return INT32;
 
   93        if (type == 
"int64") 
return INT64;
 
   95    else if (type == 
"bool")   
return BOOL;
 
   96    else if (type == 
"char")   
return CHAR;
 
   97    else if (type == 
"float")  
return FLOAT;
 
   98    else if (type == 
"double") 
return DOUBLE;
 
   99    else if (type == 
"string") 
return STRING;
 
  104    if (type[0] == 
'v') {
 
  105        if (type == 
"vec2s") 
return VEC2F;
 
  106        if (type == 
"vec3s") 
return VEC3F;
 
  107        if (type == 
"vec4s") 
return VEC4F;
 
  109    else if (type[0] == 
'm') {
 
  110        if (type == 
"mat3s") 
return MAT3F;
 
  111        if (type == 
"mat4s") 
return MAT4F;
 
  113    else if (type == 
"quats") 
return QUATF;
 
 
  121        case BOOL    : 
return "bool";
 
  122        case CHAR    : 
return "char";
 
  123        case INT16   : 
return "int16";
 
  124        case INT32   : 
return "int32";
 
  125        case INT64   : 
return "int64";
 
  126        case FLOAT   : 
return "float";
 
  127        case DOUBLE  : 
return "double";
 
  128        case VEC2I   : 
return "vec2i";
 
  129        case VEC2F   : 
return "vec2f";
 
  130        case VEC2D   : 
return "vec2d";
 
  131        case VEC3I   : 
return "vec3i";
 
  132        case VEC3F   : 
return "vec3f";
 
  133        case VEC3D   : 
return "vec3d";
 
  134        case VEC4I   : 
return "vec4i";
 
  135        case VEC4F   : 
return "vec4f";
 
  136        case VEC4D   : 
return "vec4d";
 
  137        case MAT3F   : 
return "mat3f";
 
  138        case MAT3D   : 
return "mat3d";
 
  139        case MAT4F   : 
return "mat4f";
 
  140        case MAT4D   : 
return "mat4d";
 
  141        case QUATF   : 
return "quatf";
 
  142        case QUATD   : 
return "quatd";
 
  143        case STRING  : 
return "string";
 
 
  212    const size_t idx = 
static_cast<size_t>(token);
 
  214    if (idx <= 
static_cast<size_t>(
NOT))             
return LOGICAL;
 
 
  223    if (name == 
"+")    
return PLUS;
 
  224    if (name == 
"-")    
return MINUS;
 
  226    if (name == 
"/")    
return DIVIDE;
 
  227    if (name == 
"%")    
return MODULO;
 
  228    if (name == 
"&&")   
return AND;
 
  229    if (name == 
"||")   
return OR;
 
  230    if (name == 
"!")    
return NOT;
 
  239    if (name == 
"&")    
return BITAND;
 
  240    if (name == 
"|")    
return BITOR;
 
  241    if (name == 
"^")    
return BITXOR;
 
  242    if (name == 
"~")    
return BITNOT;
 
  243    if (name == 
"=")    
return EQUALS;
 
 
  260        case PLUS              : 
return "+";
 
  261        case MINUS             : 
return "-";
 
  265        case AND               : 
return "&&";
 
  266        case OR                : 
return "||";
 
  267        case NOT               : 
return "!";
 
  277        case BITOR             : 
return "|";
 
 
  306        case FOR      : 
return "for";
 
  307        case DO       : 
return "do";
 
  308        case WHILE    : 
return "while";
 
 
  324        case RETURN      : 
return "return";
 
  325        case BREAK       : 
return "break";
 
 
 
Definition Exceptions.h:36
std::string operatorNameFromToken(const OperatorToken token)
Definition Tokens.h:257
OperatorToken
Definition Tokens.h:151
@ NOT
Definition Tokens.h:165
@ BITOR
Definition Tokens.h:181
@ DIVIDE
Definition Tokens.h:158
@ LESSTHANOREQUAL
Definition Tokens.h:174
@ SHIFTRIGHT
Definition Tokens.h:179
@ BITNOT
Definition Tokens.h:183
@ MORETHANOREQUAL
Definition Tokens.h:173
@ MINUSEQUALS
Definition Tokens.h:189
@ SHIFTLEFTEQUALS
Definition Tokens.h:193
@ BITOREQUALS
Definition Tokens.h:197
@ BITXOREQUALS
Definition Tokens.h:196
@ MODULOEQUALS
Definition Tokens.h:192
@ PLUSEQUALS
Definition Tokens.h:188
@ EQUALSEQUALS
RELATIONAL.
Definition Tokens.h:169
@ BITXOR
Definition Tokens.h:182
@ BITAND
Definition Tokens.h:180
@ AND
LOGICAL.
Definition Tokens.h:163
@ PLUS
ARITHMETIC.
Definition Tokens.h:155
@ LESSTHAN
Definition Tokens.h:172
@ DIVIDEEQUALS
Definition Tokens.h:191
@ EQUALS
ASSIGNMENT.
Definition Tokens.h:187
@ OR
Definition Tokens.h:164
@ MODULO
Definition Tokens.h:159
@ MORETHAN
Definition Tokens.h:171
@ MULTIPLYEQUALS
Definition Tokens.h:190
@ BITANDEQUALS
Definition Tokens.h:195
@ NOTEQUALS
Definition Tokens.h:170
@ SHIFTRIGHTEQUALS
Definition Tokens.h:194
@ MULTIPLY
Definition Tokens.h:157
@ SHIFTLEFT
BITWISE.
Definition Tokens.h:178
@ MINUS
Definition Tokens.h:156
std::string typeStringFromToken(const CoreType type)
Definition Tokens.h:118
std::string loopNameFromToken(const LoopToken loop)
Definition Tokens.h:303
OperatorToken operatorTokenFromName(const std::string &name)
Definition Tokens.h:221
OperatorType operatorType(const OperatorToken token)
Definition Tokens.h:210
KeywordToken
Definition Tokens.h:315
@ CONTINUE
Definition Tokens.h:318
@ RETURN
Definition Tokens.h:316
@ BREAK
Definition Tokens.h:317
OperatorType
Definition Tokens.h:201
@ ASSIGNMENT
Definition Tokens.h:206
@ LOGICAL
Definition Tokens.h:203
@ BITWISE
Definition Tokens.h:205
@ ARITHMETIC
Definition Tokens.h:202
@ RELATIONAL
Definition Tokens.h:204
@ UNKNOWN_OPERATOR
Definition Tokens.h:207
LoopToken
Definition Tokens.h:297
@ WHILE
Definition Tokens.h:300
@ FOR
Definition Tokens.h:298
@ DO
Definition Tokens.h:299
CoreType tokenFromTypeString(const std::string &type)
Definition Tokens.h:66
std::string keywordNameFromToken(const KeywordToken keyw)
Definition Tokens.h:321
CoreType
Definition Tokens.h:32
@ VEC3D
Definition Tokens.h:47
@ MAT3F
Definition Tokens.h:53
@ MAT3D
Definition Tokens.h:54
@ MAT4D
Definition Tokens.h:57
@ DOUBLE
Definition Tokens.h:39
@ INT64
Definition Tokens.h:37
@ CHAR
Definition Tokens.h:34
@ VEC3F
Definition Tokens.h:46
@ VEC2I
Definition Tokens.h:41
@ UNKNOWN
Definition Tokens.h:63
@ MAT4F
Definition Tokens.h:56
@ VEC4F
Definition Tokens.h:50
@ VEC4I
Definition Tokens.h:49
@ FLOAT
Definition Tokens.h:38
@ VEC2D
Definition Tokens.h:43
@ VEC3I
Definition Tokens.h:45
@ VEC4D
Definition Tokens.h:51
@ INT32
Definition Tokens.h:36
@ INT16
Definition Tokens.h:35
@ QUATF
Definition Tokens.h:59
@ QUATD
Definition Tokens.h:60
@ BOOL
Definition Tokens.h:33
@ VEC2F
Definition Tokens.h:42
@ STRING
Definition Tokens.h:62
Definition Exceptions.h:13
#define OPENVDB_THROW(exception, message)
Definition Exceptions.h:74
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition version.h.in:121
#define OPENVDB_USE_VERSION_NAMESPACE
Definition version.h.in:218