508 lines
16 KiB
C++
508 lines
16 KiB
C++
/*
|
|
File automatically generated by SOAdvancedDissector.py
|
|
More information at http://indefero.soutade.fr/p/soadvanceddissector
|
|
*/
|
|
|
|
#ifndef _XPATH_H
|
|
#define _XPATH_H
|
|
|
|
#include <uft.h>
|
|
|
|
namespace mdom {
|
|
class Node;
|
|
class Reference;
|
|
};
|
|
|
|
namespace xpath {
|
|
|
|
class Parser;
|
|
class AttributeParser;
|
|
class AxesNodeTest;
|
|
class Context;
|
|
class CurlyBracketAttributeParser;
|
|
class CurlyBracketExpression;
|
|
class Dependency;
|
|
class DependencyType;
|
|
class DynamicContext;
|
|
class ExplicitReference;
|
|
class Expression;
|
|
class Function;
|
|
class NodeTest;
|
|
class NodeTypeTest;
|
|
class Operator;
|
|
class ResultType;
|
|
class Root;
|
|
class Scan;
|
|
class SimpleMatch;
|
|
class SimpleUserFunction;
|
|
class StaticContext;
|
|
class Step;
|
|
class StepDynamicContext;
|
|
class Variable;
|
|
class XPathIdMatch;
|
|
class XPathVTable;
|
|
class YaccParser;
|
|
|
|
|
|
class Error {};
|
|
class Token {};
|
|
|
|
class Parser: public uft::ValueParser
|
|
{
|
|
public:
|
|
virtual void parse(uft::ParserContext*, uft::Value const&) const;
|
|
virtual void getValidStartChars() const;
|
|
virtual void handlerParseFailure(uft::ParserContext*, uft::Value const&) const;
|
|
|
|
};
|
|
|
|
class AttributeParser: public xpath::Parser
|
|
{
|
|
public:
|
|
virtual void parse(uft::ParserContext*, uft::Value const&) const;
|
|
virtual void getValidStartChars() const;
|
|
virtual void handlerParseFailure(uft::ParserContext*, uft::Value const&) const;
|
|
|
|
};
|
|
|
|
class AxesNodeTest
|
|
{
|
|
public:
|
|
AxesNodeTest(uft::String const&, uft::Value const&);
|
|
|
|
void InitVirtualTables();
|
|
void getSourceDOMExpr(uft::Set const&);
|
|
void getSourceDOMExpr_impl(uft::Value const&, uft::Set const&);
|
|
void isAxesDefault();
|
|
void isValidNode(mdom::Node*, xpath::Context*) const;
|
|
void query(uft::Value const&, void*);
|
|
void setAxes(uft::String const&);
|
|
void setAxesAsChild();
|
|
void setAxesAsDescendantOrSelf();
|
|
void staticInit();
|
|
void toString();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class Context
|
|
{
|
|
public:
|
|
Context(mdom::Node const&, bool, xpath::StaticContext*);
|
|
|
|
// ~DynamicContextHelper();
|
|
|
|
virtual ~Context();
|
|
virtual void handleExpressionError(uft::String);
|
|
|
|
// void DynamicContextHelper(xpath::Context*, xpath::DynamicContext*);
|
|
// void DynamicContextHelper(xpath::Context*, xpath::DynamicContext*, mdom::Node const&);
|
|
void getDynamicContext(xpath::Expression const&, bool);
|
|
void incrementCurrentPosition(uft::Value const&);
|
|
void removeDynamicContext(uft::Value const&);
|
|
void setDynamicContext(uft::Value const&, uft::Value const&, xpath::StepDynamicContext*);
|
|
void setDynamicContext(uft::Value const&, xpath::DynamicContext*);
|
|
void setInitialContext(unsigned int, unsigned int);
|
|
void setReferenceNode(mdom::Node const&);
|
|
|
|
};
|
|
|
|
class CurlyBracketAttributeParser: public xpath::Parser
|
|
{
|
|
public:
|
|
virtual void parse(uft::ParserContext*, uft::Value const&) const;
|
|
virtual void getValidStartChars() const;
|
|
virtual void handlerParseFailure(uft::ParserContext*, uft::Value const&) const;
|
|
|
|
};
|
|
|
|
class CurlyBracketExpression
|
|
{
|
|
public:
|
|
void staticInit();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class Dependency
|
|
{
|
|
public:
|
|
};
|
|
|
|
class DependencyType
|
|
{
|
|
public:
|
|
};
|
|
|
|
class DynamicContext
|
|
{
|
|
public:
|
|
DynamicContext(unsigned int, unsigned int);
|
|
DynamicContext(xpath::Expression const&, bool);
|
|
|
|
virtual ~DynamicContext();
|
|
virtual void getContextSize();
|
|
virtual void resetContext(mdom::Node const&);
|
|
|
|
};
|
|
|
|
class ExplicitReference
|
|
{
|
|
public:
|
|
ExplicitReference(mdom::Reference const&);
|
|
|
|
void getDependencyType(xpath::DependencyType, xpath::Dependency*);
|
|
void getDependencyType_impl(uft::Value const&, xpath::DependencyType, xpath::Dependency*);
|
|
void isNodeInNodeset_impl(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void iterate(xpath::Context*, mdom::Node*);
|
|
void iterate_impl(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void query(uft::Value const&, void*);
|
|
void staticInit();
|
|
void toString();
|
|
|
|
void* ExplicitReference_vtable;
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class Expression
|
|
{
|
|
public:
|
|
Expression(char const*);
|
|
Expression(uft::URL const&);
|
|
Expression(uft::Value const&);
|
|
|
|
~Expression();
|
|
|
|
void evaluate_impl(mdom::Node const&, xpath::Context*, xpath::ResultType) const;
|
|
void finishIteration_impl(xpath::Context*) const;
|
|
void getAttributeParser();
|
|
void getCurlyBracketAttributeParser();
|
|
void getDependencyType_impl(xpath::DependencyType, xpath::Dependency*) const;
|
|
void getExpressionForIDMatch(uft::String const&, uft::String const&);
|
|
void getExpressionForNodeTypes(uft::String const&, unsigned int*, unsigned int, bool);
|
|
void getExpressionType_impl() const;
|
|
void getParser();
|
|
void getSourceDOMExpr_impl(uft::Set const&) const;
|
|
// void gotoPreviousStep(mdom::Node const*, uft::sref<xpath::Step>&);
|
|
void isNodeInNodeset_impl(xpath::Context*, mdom::Node*) const;
|
|
void isSimpleMatch(xpath::SimpleMatch*, bool);
|
|
void iterate_impl(xpath::Context*, mdom::Node*) const;
|
|
void match(mdom::Node const*, bool);
|
|
// void matchSingleNode(mdom::Node const*, uft::sref<xpath::Step>&);
|
|
void toString() const;
|
|
|
|
};
|
|
|
|
class Function
|
|
{
|
|
public:
|
|
Function(uft::QName const&, uft::Vector const&);
|
|
|
|
void evaluate_impl(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void evaluate_impl(uft::Value const&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void getDependencyType(xpath::DependencyType, xpath::Dependency*);
|
|
void getDependencyType_impl(uft::Value const&, xpath::DependencyType, xpath::Dependency*);
|
|
void getExpressionType();
|
|
void getExpressionType_impl(uft::Value const&);
|
|
void iterate_impl(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void iterate_impl(xpath::Context*, mdom::Node*);
|
|
void query(uft::Value const&, void*);
|
|
void staticInit();
|
|
void toString();
|
|
|
|
void* XPathFunction_vtable;
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class NodeTest
|
|
{
|
|
public:
|
|
NodeTest(uft::String);
|
|
|
|
void isValidNode(mdom::Node*);
|
|
void staticInit();
|
|
void toString();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class NodeTypeTest
|
|
{
|
|
public:
|
|
NodeTypeTest(unsigned int*, unsigned int, bool);
|
|
NodeTypeTest(unsigned int, uft::String);
|
|
|
|
void isValidNode(mdom::Node*);
|
|
void staticInit();
|
|
void toString();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class Operator
|
|
{
|
|
public:
|
|
Operator(uft::String const&, uft::Value const&, uft::Value const&);
|
|
|
|
void andFn(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void equalFn(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void evaluate(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void evaluate_impl(uft::Value const&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void getDependencyType(xpath::DependencyType, xpath::Dependency*);
|
|
void getDependencyType_impl(uft::Value const&, xpath::DependencyType, xpath::Dependency*);
|
|
void getExpressionType();
|
|
void getExpressionType_impl(uft::Value const&);
|
|
void getSourceDOMExpr(uft::Set const&);
|
|
void getSourceDOMExpr_impl(uft::Value const&, uft::Set const&);
|
|
void getValues(uft::Value&, uft::Value&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void greaterFn(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void isNodeInNodeset(xpath::Context*, mdom::Node*);
|
|
void isNodeInNodeset_impl(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void isValidBinaryOperation(xpath::Context*);
|
|
void lessFn(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void numberCompare(mdom::Node const&, xpath::Context*, xpath::ResultType, int);
|
|
void orFn(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void query(uft::Value const&, void*);
|
|
void staticInit();
|
|
void stringCompare(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void toString();
|
|
|
|
void* XPathOperator_vtable;
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class ResultType
|
|
{
|
|
public:
|
|
};
|
|
|
|
class Root
|
|
{
|
|
public:
|
|
Root();
|
|
|
|
void getDependencyType(xpath::DependencyType, xpath::Dependency*);
|
|
void getDependencyType_impl(uft::Value const&, xpath::DependencyType, xpath::Dependency*);
|
|
void isNodeInNodeset_impl(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void iterate(xpath::Context*, mdom::Node*);
|
|
void iterate_impl(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void query(uft::Value const&, void*);
|
|
void staticInit();
|
|
void toString();
|
|
|
|
void* XPathRoot_vtable;
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class Scan
|
|
{
|
|
public:
|
|
Scan(char const*, char const*);
|
|
|
|
virtual ~Scan();
|
|
|
|
void getDebugErrMsg(xpath::Error) const;
|
|
void getError() const;
|
|
void getOptionFlags() const;
|
|
void isNCNameChar(char);
|
|
void nextToken(char const**, char const**, char const**);
|
|
void safeMatch(char const*, char const*, char const**);
|
|
void safePeekNCNameTo(char const*, char, bool);
|
|
void setOptionFlags(long);
|
|
void skipTo(char const*, char);
|
|
void terminalToToken(char);
|
|
|
|
void* sCharTest;
|
|
void* sType1;
|
|
|
|
};
|
|
|
|
class SimpleMatch
|
|
{
|
|
public:
|
|
~SimpleMatch();
|
|
|
|
};
|
|
|
|
class SimpleUserFunction
|
|
{
|
|
public:
|
|
void staticInit();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class StaticContext
|
|
{
|
|
public:
|
|
virtual void virtfunc8() = 0;
|
|
virtual void virtfunc12() = 0;
|
|
|
|
};
|
|
|
|
class Step
|
|
{
|
|
public:
|
|
Step(uft::String const&, uft::Value const&);
|
|
Step(xpath::Expression&);
|
|
Step(xpath::Root&);
|
|
|
|
void evaluate(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void evaluate_impl(uft::Value const&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void getDependencyType(xpath::DependencyType, xpath::Dependency*);
|
|
void getDependencyType_impl(uft::Value const&, xpath::DependencyType, xpath::Dependency*);
|
|
void getDynamicContext(xpath::Context*);
|
|
void getExpressionType();
|
|
void getExpressionType_impl(uft::Value const&);
|
|
void getRootAxesNodeTest();
|
|
void getRootStep();
|
|
void getSourceDOMExpr(uft::Set const&);
|
|
void getSourceDOMExpr_impl(uft::Value const&, uft::Set const&);
|
|
void isNodeInNodeset(xpath::Context*, mdom::Node*);
|
|
void isNodeInNodeset_impl(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void iterate(xpath::Context*, mdom::Node*);
|
|
void iterate_impl(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void query(uft::Value const&, void*);
|
|
void removeDynamicContext(xpath::Context*) const;
|
|
void setPrevStep(xpath::Step&);
|
|
void staticInit();
|
|
void toString();
|
|
|
|
void* XPathStep_vtable;
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class StepDynamicContext: public xpath::DynamicContext
|
|
{
|
|
public:
|
|
StepDynamicContext(xpath::Context*, uft::Value const&, uft::Value const&);
|
|
|
|
virtual ~StepDynamicContext();
|
|
virtual void getContextSize();
|
|
virtual void resetContext(mdom::Node const&);
|
|
|
|
void getContextPosition();
|
|
void getNext(mdom::Node&);
|
|
void getNextForCurrentExpression(mdom::Node&);
|
|
void getPrevDynamicContextInternal();
|
|
void isNodeInNodeset(mdom::Node&);
|
|
void setCurrentNode(mdom::Node const&);
|
|
|
|
};
|
|
|
|
class Variable
|
|
{
|
|
public:
|
|
Variable(uft::QName const&);
|
|
|
|
void evaluate_impl(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void evaluate_impl(uft::Value const&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void getDependencyType(xpath::DependencyType, xpath::Dependency*);
|
|
void getDependencyType_impl(uft::Value const&, xpath::DependencyType, xpath::Dependency*);
|
|
void getExpressionType();
|
|
void getExpressionType_impl(uft::Value const&);
|
|
void iterate_impl(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void iterate_impl(xpath::Context*, mdom::Node*);
|
|
void query(uft::Value const&, void*);
|
|
void staticInit();
|
|
void toString();
|
|
|
|
void* XPathVariable_vtable;
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class XPathIdMatch
|
|
{
|
|
public:
|
|
XPathIdMatch(uft::Value const&);
|
|
|
|
void evaluate_impl(uft::Value const&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void query(uft::Value const&, void*);
|
|
void staticInit();
|
|
void toString();
|
|
|
|
void* XPathIdMatch_vtable;
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class XPathVTable
|
|
{
|
|
public:
|
|
};
|
|
|
|
class YaccParser
|
|
{
|
|
public:
|
|
YaccParser(char const*, uft::ParserContext*);
|
|
|
|
~YaccParser();
|
|
|
|
void createXPathObject();
|
|
void getObjectPointer(uft::Value*&, bool);
|
|
void getReturnValueObject();
|
|
void parse();
|
|
void performLexicalAnalysis(uft::Value*&);
|
|
void setReturnValueObject(uft::Value&);
|
|
|
|
};
|
|
|
|
|
|
void GetOneArgument(uft::Value const&, mdom::Node const&, xpath::Context*, uft::Value&, xpath::ResultType);
|
|
void SubstituteFunctionDefaults(xpath::XPathVTable*, unsigned int);
|
|
void booleanValue(uft::Value const&);
|
|
void convertNodeValue(mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void convertValue(uft::Value const&, xpath::ResultType);
|
|
void createExplicitReference(mdom::Node const&);
|
|
void evalBooleanFunction(uft::Value const&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void evalNumberFunction(uft::Value const&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void evalStringFunction(uft::Value const&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void evaluate_through_iterate_impl(uft::Value const&, mdom::Node const&, xpath::Context*, xpath::ResultType);
|
|
void extractExpression(uft::Value const&);
|
|
void extractXPathExpression(uft::Value const&);
|
|
void getAxisName(xpath::Token);
|
|
void getCSSAbsoluteExpression(xpath::Expression const&);
|
|
void getCSSAttributeExpression(xpath::Expression const&, xpath::Expression const&);
|
|
void getCSSChildExpression(xpath::Expression const&, xpath::Expression const&);
|
|
void getCSSDescendantExpression(xpath::Expression const&, xpath::Expression const&);
|
|
void getCSSDirectAdjacentExpression(xpath::Expression const&, xpath::Expression const&);
|
|
void getCSSEqualsAttributeExpression(uft::QName const&, uft::String const&);
|
|
void getCSSFirstChildExpression(uft::QName const&);
|
|
void getCSSIndirectAdjacentExpression(xpath::Expression const&, xpath::Expression const&);
|
|
void getCSSMatchHypenSeparatedAttributeExpression(uft::QName const&, uft::String const&);
|
|
void getCSSMatchWholeWordAttributeExpression(uft::QName const&, uft::String const&);
|
|
void getCSSTypeExpression(uft::QName const&);
|
|
void getCSSUniversalExpression();
|
|
void getDependencyTypeFromArguments(uft::Value const&, xpath::DependencyType, xpath::Dependency*);
|
|
void getDependencyTypeNone(uft::Value const&, xpath::DependencyType, xpath::Dependency*);
|
|
void getDependencyTypeOutsideSubtree(uft::Value const&, xpath::DependencyType, xpath::Dependency*);
|
|
void getExpressionTypeImplAttribute(uft::Value const&);
|
|
void getExpressionTypeImplBoolean(uft::Value const&);
|
|
void getExpressionTypeImplNamespace(uft::Value const&);
|
|
void getExpressionTypeImplNodeset(uft::Value const&);
|
|
void getExpressionTypeImplNumber(uft::Value const&);
|
|
void getExpressionTypeImplString(uft::Value const&);
|
|
void getFunctionVTable(uft::QName const&);
|
|
void getSourceDOMExprSelf(uft::Value const&, uft::Set const&);
|
|
void getSourceDOMNULL(uft::Value const&, uft::Set const&);
|
|
void isNodeInNodesetTrue(uft::Value const&, xpath::Context*, mdom::Node*);
|
|
void numericalValue(uft::Value const&);
|
|
uft::String stringValue(mdom::Node const&, xpath::Context*);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // _XPATH_H
|