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