KHTML
path.h
Go to the documentation of this file.
00001 /* 00002 * path.h - Copyright 2005 Frerich Raabe <raabe@kde.org> 00003 * 00004 * Redistribution and use in source and binary forms, with or without 00005 * modification, are permitted provided that the following conditions 00006 * are met: 00007 * 00008 * 1. Redistributions of source code must retain the above copyright 00009 * notice, this list of conditions and the following disclaimer. 00010 * 2. Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the distribution. 00013 * 00014 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 00015 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00016 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00017 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 00018 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 00019 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00020 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00021 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00022 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00023 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00024 */ 00025 #ifndef PATH_H 00026 #define PATH_H 00027 00028 #include "expression.h" 00029 #include "step.h" 00030 00031 #include <QList> 00032 00033 int khtmlxpathyyparse(); 00034 00035 namespace khtml { 00036 namespace XPath { 00037 00038 class Filter : public Expression 00039 { 00040 public: 00041 Filter( Expression *expr, 00042 const QList<Predicate *> &predicates = QList<Predicate *>() ); 00043 virtual ~Filter(); 00044 00045 virtual QString dump() const; 00046 00047 private: 00048 virtual Value doEvaluate() const; 00049 00050 Expression *m_expr; 00051 QList<Predicate *> m_predicates; 00052 }; 00053 00054 class LocationPath : public Expression 00055 { 00056 friend int ::khtmlxpathyyparse(); 00057 public: 00058 LocationPath(); 00059 virtual ~LocationPath(); 00060 00061 void optimize(); 00062 virtual QString dump() const; 00063 00064 private: 00065 virtual Value doEvaluate() const; 00066 00067 QList<Step *> m_steps; 00068 bool m_absolute; 00069 }; 00070 00071 class Path : public Expression 00072 { 00073 public: 00074 Path( Filter *filter, LocationPath *path ); 00075 virtual ~Path(); 00076 00077 virtual QString dump() const; 00078 00079 private: 00080 virtual Value doEvaluate() const; 00081 00082 Filter *m_filter; 00083 LocationPath *m_path; 00084 }; 00085 00086 } // namespace XPath 00087 00088 } // namespace khtml 00089 00090 #endif // PATH_H 00091
KDE 4.6 API Reference