Warning, file /frameworks/khtml/src/xpath/parsedstatement.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * parsedstatement.h - Copyright 2005 Frerich Raabe <raabe@kde.org> 0003 * 0004 * Redistribution and use in source and binary forms, with or without 0005 * modification, are permitted provided that the following conditions 0006 * are met: 0007 * 0008 * 1. Redistributions of source code must retain the above copyright 0009 * notice, this list of conditions and the following disclaimer. 0010 * 2. Redistributions in binary form must reproduce the above copyright 0011 * notice, this list of conditions and the following disclaimer in the 0012 * documentation and/or other materials provided with the distribution. 0013 * 0014 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 0015 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 0016 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 0017 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 0018 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 0019 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 0020 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 0021 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 0022 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 0023 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 0024 */ 0025 #ifndef PARSEDSTATEMENT_H 0026 #define PARSEDSTATEMENT_H 0027 0028 #include "util.h" 0029 0030 namespace DOM 0031 { 0032 class NodeImpl; 0033 class DOMString; 0034 } 0035 0036 namespace khtml 0037 { 0038 0039 class XPathNSResolverImpl; 0040 0041 namespace XPath 0042 { 0043 0044 class Expression; 0045 class Value; 0046 0047 class ParsedStatement 0048 { 0049 public: 0050 ParsedStatement(const DOM::DOMString &statement, khtml::XPathNSResolverImpl *res); 0051 ~ParsedStatement(); 0052 void optimize(); 0053 0054 QString dump() const; 0055 0056 Value evaluate(DOM::NodeImpl *context, 0057 int &ec) const; 0058 0059 // Any exception issued during parsing, or 0 0060 int exceptionCode() 0061 { 0062 return m_ec; 0063 } 0064 0065 private: 0066 void parse(const DOM::DOMString &statement); 0067 0068 SharedPtr<khtml::XPathNSResolverImpl> m_res; 0069 Expression *m_expr; 0070 int m_ec; 0071 }; 0072 0073 } // namespace XPath 0074 0075 } // namespace khtml 0076 0077 #endif // PARSEDSTATEMENT_H 0078