TypeOfToken: Similar result to TokenIsPureNumeric, but may return SYM_OBJECT.
| 17181 | |
| 17182 | // TypeOfToken: Similar result to TokenIsPureNumeric, but may return SYM_OBJECT. |
| 17183 | SymbolType TypeOfToken(ExprTokenType &aToken) |
| 17184 | { |
| 17185 | switch (aToken.symbol) |
| 17186 | { |
| 17187 | case SYM_VAR: |
| 17188 | switch (aToken.var->IsPureNumericOrObject()) |
| 17189 | { |
| 17190 | case VAR_ATTRIB_IS_INT64: return SYM_INTEGER; |
| 17191 | case VAR_ATTRIB_IS_DOUBLE: return SYM_FLOAT; |
| 17192 | case VAR_ATTRIB_IS_OBJECT: return SYM_OBJECT; |
| 17193 | } |
| 17194 | return SYM_STRING; |
| 17195 | default: // Providing a default case produces smaller code on release builds as the compiler can omit the other symbol checks. |
| 17196 | #ifdef _DEBUG |
| 17197 | MsgBox(_T("DEBUG: Unhandled symbol type.")); |
| 17198 | #endif |
| 17199 | case SYM_STRING: |
| 17200 | case SYM_INTEGER: |
| 17201 | case SYM_FLOAT: |
| 17202 | case SYM_OBJECT: |
| 17203 | case SYM_MISSING: |
| 17204 | return aToken.symbol; |
| 17205 | } |
| 17206 | } |
| 17207 | |
| 17208 | |
| 17209 |
no test coverage detected