00001 // -*- c++ -*- 00002 00003 /* 00004 * This file is part of the KDE libraries 00005 * Copyright (C) 2004 Richard Moore, rich@kde.org 00006 * Copyright (C) 2004 Zack Rusin, zack@kde.org 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00021 * 00022 */ 00023 00024 #ifndef XPATH_EXPRNODE_H 00025 #define XPATH_EXPRNODE_H 00026 00027 #include <qvaluelist.h> 00028 00029 #include "xpath_value.h" 00030 00031 namespace XPath { 00032 00033 class Value; 00034 00035 class ExprNodeHelper 00036 { 00037 public: 00038 ExprNodeHelper(); 00039 virtual ~ExprNodeHelper(); 00040 00041 virtual Value evaluate() const; 00042 }; 00043 00044 class ExprNode : public ExprNodeHelper 00045 { 00046 public: 00047 ExprNode(); 00048 virtual ~ExprNode(); 00049 00050 int argCount() const { return args.count(); } 00051 00052 String argString( uint idx ) const; 00053 Number argNumber( uint idx ) const; 00054 Boolean argBoolean( uint idx ) const; 00055 private: 00056 QValueList<ExprNodeHelper> args; 00057 }; 00058 00059 } // namespace XPath 00060 00061 #endif // XPATH_EXPRNODE_H 00062 00063 // Local Variables: 00064 // c-basic-offset: 4 00065 // End: