00001 /* 00002 node_types.h 00003 00004 Qore Programming Language 00005 00006 Copyright 2003 - 2009 David Nichols 00007 00008 This library is free software; you can redistribute it and/or 00009 modify it under the terms of the GNU Lesser General Public 00010 License as published by the Free Software Foundation; either 00011 version 2.1 of the License, or (at your option) any later version. 00012 00013 This library is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Lesser General Public License for more details. 00017 00018 You should have received a copy of the GNU Lesser General Public 00019 License along with this library; if not, write to the Free Software 00020 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00021 */ 00022 00023 #ifndef _QORE_NODE_TYPES_H 00024 00025 #define _QORE_NODE_TYPES_H 00026 00031 // qore global system type constants 00032 // value types must come first to support the operator matrix optimization 00033 const qore_type_t NT_NOTHING = 0; 00034 const qore_type_t NT_INT = 1; 00035 const qore_type_t NT_FLOAT = 2; 00036 const qore_type_t NT_STRING = 3; 00037 const qore_type_t NT_DATE = 4; 00038 const qore_type_t NT_BOOLEAN = 5; 00039 const qore_type_t NT_NULL = 6; 00040 const qore_type_t NT_BINARY = 7; 00041 const qore_type_t NT_LIST = 8; 00042 const qore_type_t NT_HASH = 9; 00043 const qore_type_t NT_OBJECT = 10; 00044 const qore_type_t NT_BACKQUOTE = 11; 00045 const qore_type_t NT_CONTEXTREF = 12; 00046 const qore_type_t NT_COMPLEXCONTEXTREF = 13; 00047 const qore_type_t NT_VARREF = 14; 00048 const qore_type_t NT_TREE = 15; 00049 const qore_type_t NT_FIND = 16; 00050 const qore_type_t NT_FUNCTION_CALL = 17; 00051 const qore_type_t NT_SELF_VARREF = 18; 00052 const qore_type_t NT_SCOPE_REF = 19; 00053 const qore_type_t NT_CONSTANT = 20; 00054 const qore_type_t NT_BAREWORD = 21; 00055 const qore_type_t NT_REFERENCE = 22; 00056 const qore_type_t NT_CONTEXT_ROW = 23; 00057 const qore_type_t NT_REGEX_SUBST = 24; 00058 const qore_type_t NT_REGEX_TRANS = 25; 00059 const qore_type_t NT_REGEX = 26; 00060 const qore_type_t NT_CLASSREF = 27; 00061 const qore_type_t NT_OBJMETHREF = 28; 00062 const qore_type_t NT_FUNCREF = 29; 00063 const qore_type_t NT_FUNCREFCALL = 30; 00064 const qore_type_t NT_CLOSURE = 31; 00065 const qore_type_t NT_RUNTIME_CLOSURE = 32; 00066 const qore_type_t NT_IMPLICIT_ARG = 33; 00067 const qore_type_t NT_METHOD_CALL = 34; 00068 const qore_type_t NT_STATIC_METHOD_CALL = 35; 00069 00071 #define QORE_NUM_TYPES 36 00072 00074 #define NUM_SIMPLE_TYPES 8 00075 00077 #define NUM_VALUE_TYPES 11 00078 00079 #endif