mirror of
https://github.com/jezhiggins/arabica
synced 2025-02-05 20:45:56 +01:00
put ast_ids into impl namespace
This commit is contained in:
parent
f231736bf5
commit
5c5018665d
4 changed files with 255 additions and 251 deletions
|
@ -5,6 +5,8 @@ namespace Arabica
|
|||
{
|
||||
namespace XPath
|
||||
{
|
||||
namespace impl
|
||||
{
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -99,6 +101,8 @@ enum
|
|||
UnaryMinusOperator_id
|
||||
};
|
||||
|
||||
} // namespace impl
|
||||
|
||||
} // namespace XPath
|
||||
|
||||
} // namespace Arabica
|
||||
|
|
|
@ -185,107 +185,107 @@ struct xpath_grammar_definition
|
|||
UnaryMinusOperator = ch_p('-');
|
||||
} // xpath_grammar_definition
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<QName_id> > QName;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Prefix_id> > Prefix;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<LocalPart_id> > LocalPart;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<NCName_id> > NCName;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<NCNameChar_id> > NCNameChar;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::QName_id> > QName;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Prefix_id> > Prefix;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::LocalPart_id> > LocalPart;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::NCName_id> > NCName;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::NCNameChar_id> > NCNameChar;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AxisName_id> > AxisName;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<NodeType_id> > NodeType;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AxisName_id> > AxisName;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::NodeType_id> > NodeType;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<LocationPath_id> > LocationPath;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AbsoluteLocationPath_id> > AbsoluteLocationPath;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<RelativeLocationPath_id> > RelativeLocationPath;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::LocationPath_id> > LocationPath;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AbsoluteLocationPath_id> > AbsoluteLocationPath;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::RelativeLocationPath_id> > RelativeLocationPath;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Step_id> > Step;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AxisSpecifier_id> > AxisSpecifier;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Step_id> > Step;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AxisSpecifier_id> > AxisSpecifier;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<NodeTest_id> > NodeTest;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::NodeTest_id> > NodeTest;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Predicate_id> > Predicate;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<PredicateExpr_id> > PredicateExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Predicate_id> > Predicate;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::PredicateExpr_id> > PredicateExpr;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AbbreviatedAbsoluteLocationPath_id> > AbbreviatedAbsoluteLocationPath;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AbbreviatedStep_id> > AbbreviatedStep;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AbbreviatedAxisSpecifier_id> > AbbreviatedAxisSpecifier;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AbbreviatedAbsoluteLocationPath_id> > AbbreviatedAbsoluteLocationPath;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AbbreviatedStep_id> > AbbreviatedStep;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AbbreviatedAxisSpecifier_id> > AbbreviatedAxisSpecifier;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Expr_id> > Expr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<PrimaryExpr_id> > PrimaryExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Expr_id> > Expr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::PrimaryExpr_id> > PrimaryExpr;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<FunctionCall_id> > FunctionCall;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Argument_id> > Argument;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::FunctionCall_id> > FunctionCall;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Argument_id> > Argument;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<UnionExpr_id> > UnionExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<PathExpr_id> > PathExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<FilterExpr_id> > FilterExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::UnionExpr_id> > UnionExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::PathExpr_id> > PathExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::FilterExpr_id> > FilterExpr;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<OrExpr_id> > OrExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AndExpr_id> > AndExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<EqualityExpr_id> > EqualityExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<RelationalExpr_id> > RelationalExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::OrExpr_id> > OrExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AndExpr_id> > AndExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::EqualityExpr_id> > EqualityExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::RelationalExpr_id> > RelationalExpr;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AdditiveExpr_id> > AdditiveExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<MultiplicativeExpr_id> > MultiplicativeExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<UnaryExpr_id> > UnaryExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AdditiveExpr_id> > AdditiveExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::MultiplicativeExpr_id> > MultiplicativeExpr;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::UnaryExpr_id> > UnaryExpr;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Literal_id> > Literal;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Number_id> > Number;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Digits_id> > Digits;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<MultiplyOperator_id> > MultiplyOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<FunctionName_id> > FunctionName;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<VariableReference_id> > VariableReference;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<NameTest_id> > NameTest;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<S_id> > S; // ExprWhitespace
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Literal_id> > Literal;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Number_id> > Number;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Digits_id> > Digits;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::MultiplyOperator_id> > MultiplyOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::FunctionName_id> > FunctionName;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::VariableReference_id> > VariableReference;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::NameTest_id> > NameTest;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::S_id> > S; // ExprWhitespace
|
||||
|
||||
// bonus bits
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Slash_id> > Slash;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<SlashSlash_id> > SlashSlash;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Slash_id> > Slash;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::SlashSlash_id> > SlashSlash;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AncestorOrSelf_id> > AncestorOrSelf;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Ancestor_id> > Ancestor;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Attribute_id> > Attribute;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Child_id> > Child;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<DescendantOrSelf_id> > DescendantOrSelf;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Descendant_id> > Descendant;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<FollowingSibling_id> > FollowingSibling;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Following_id> > Following;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Namespace_id> > Namespace;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Parent_id> > Parent;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<PrecedingSibling_id> > PrecedingSibling;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Preceding_id> > Preceding;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Self_id> > Self;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AncestorOrSelf_id> > AncestorOrSelf;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Ancestor_id> > Ancestor;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Attribute_id> > Attribute;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Child_id> > Child;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::DescendantOrSelf_id> > DescendantOrSelf;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Descendant_id> > Descendant;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::FollowingSibling_id> > FollowingSibling;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Following_id> > Following;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Namespace_id> > Namespace;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Parent_id> > Parent;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::PrecedingSibling_id> > PrecedingSibling;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Preceding_id> > Preceding;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Self_id> > Self;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Comment_id> > Comment;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Text_id> > Text;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<ProcessingInstruction_id> > ProcessingInstruction;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Node_id> > Node;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AnyName_id> > AnyName;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Comment_id> > Comment;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Text_id> > Text;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::ProcessingInstruction_id> > ProcessingInstruction;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Node_id> > Node;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AnyName_id> > AnyName;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<SelfSelect_id> > SelfSelect;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<ParentSelect_id> > ParentSelect;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::SelfSelect_id> > SelfSelect;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::ParentSelect_id> > ParentSelect;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<LeftSquare_id> > LeftSquare;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<RightSquare_id> > RightSquare;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::LeftSquare_id> > LeftSquare;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::RightSquare_id> > RightSquare;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<LeftBracket_id> > LeftBracket;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<RightBracket_id> > RightBracket;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::LeftBracket_id> > LeftBracket;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::RightBracket_id> > RightBracket;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<PlusOperator_id> > PlusOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<MinusOperator_id> > MinusOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<ModOperator_id> > ModOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<DivOperator_id> > DivOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<EqualsOperator_id> > EqualsOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<NotEqualsOperator_id> > NotEqualsOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<LessThanOperator_id> > LessThanOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<LessThanEqualsOperator_id> > LessThanEqualsOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<GreaterThanOperator_id> > GreaterThanOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<GreaterThanEqualsOperator_id> > GreaterThanEqualsOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::PlusOperator_id> > PlusOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::MinusOperator_id> > MinusOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::ModOperator_id> > ModOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::DivOperator_id> > DivOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::EqualsOperator_id> > EqualsOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::NotEqualsOperator_id> > NotEqualsOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::LessThanOperator_id> > LessThanOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::LessThanEqualsOperator_id> > LessThanEqualsOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::GreaterThanOperator_id> > GreaterThanOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::GreaterThanEqualsOperator_id> > GreaterThanEqualsOperator;
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<OrOperator_id> > OrOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<AndOperator_id> > AndOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<UnionOperator_id> > UnionOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<UnaryMinusOperator_id> > UnaryMinusOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::OrOperator_id> > OrOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::AndOperator_id> > AndOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::UnionOperator_id> > UnionOperator;
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::UnaryMinusOperator_id> > UnaryMinusOperator;
|
||||
}; // xpath_grammar_definition
|
||||
|
||||
|
||||
|
@ -298,7 +298,7 @@ struct xpath_grammar : public boost::spirit::grammar<xpath_grammar>
|
|||
{
|
||||
} // definition
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<LocationPath_id> > const&
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::LocationPath_id> > const&
|
||||
start() const
|
||||
{
|
||||
return xpath_grammar_definition<ScannerT>::LocationPath;
|
||||
|
@ -315,7 +315,7 @@ struct xpath_grammar_expr : public boost::spirit::grammar<xpath_grammar_expr>
|
|||
{
|
||||
} // definition
|
||||
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<Expr_id> > const&
|
||||
boost::spirit::rule<ScannerT, boost::spirit::parser_tag<impl::Expr_id> > const&
|
||||
start() const
|
||||
{
|
||||
return xpath_grammar_definition<ScannerT>::Expr;
|
||||
|
|
|
@ -187,14 +187,14 @@ public:
|
|||
|
||||
std::vector<XPathExpression<std::string>*> preds;
|
||||
|
||||
while((node != end) && (getNodeId(node) == Predicate_id))
|
||||
while((node != end) && (getNodeId(node) == impl::Predicate_id))
|
||||
{
|
||||
node_iter_t c = node->children.begin();
|
||||
assert(getNodeId(c) == LeftSquare_id);
|
||||
assert(getNodeId(c) == impl::LeftSquare_id);
|
||||
++c;
|
||||
preds.push_back(compile_expression(c, context));
|
||||
++c;
|
||||
assert(getNodeId(c) == RightSquare_id);
|
||||
assert(getNodeId(c) == impl::RightSquare_id);
|
||||
|
||||
++node;
|
||||
} // if ...
|
||||
|
@ -217,19 +217,19 @@ private:
|
|||
|
||||
switch(id)
|
||||
{
|
||||
case Slash_id:
|
||||
case SelfSelect_id:
|
||||
case impl::Slash_id:
|
||||
case impl::SelfSelect_id:
|
||||
return SELF; // don't advance node, SelfSelect is axis specifier and node test in one
|
||||
case ParentSelect_id:
|
||||
case impl::ParentSelect_id:
|
||||
return PARENT;
|
||||
case SlashSlash_id:
|
||||
case impl::SlashSlash_id:
|
||||
return DESCENDANT_OR_SELF;
|
||||
|
||||
case AbbreviatedAxisSpecifier_id:
|
||||
case impl::AbbreviatedAxisSpecifier_id:
|
||||
++node;
|
||||
return ATTRIBUTE;
|
||||
|
||||
case AxisSpecifier_id:
|
||||
case impl::AxisSpecifier_id:
|
||||
// skip on to the next bit
|
||||
break;
|
||||
|
||||
|
@ -242,32 +242,32 @@ private:
|
|||
++node;
|
||||
switch(axis)
|
||||
{
|
||||
case AncestorOrSelf_id:
|
||||
case impl::AncestorOrSelf_id:
|
||||
return ANCESTOR_OR_SELF;
|
||||
case Ancestor_id:
|
||||
case impl::Ancestor_id:
|
||||
return ANCESTOR;
|
||||
case AbbreviatedAxisSpecifier_id:
|
||||
case Attribute_id:
|
||||
case impl::AbbreviatedAxisSpecifier_id:
|
||||
case impl::Attribute_id:
|
||||
return ATTRIBUTE;
|
||||
case Child_id:
|
||||
case impl::Child_id:
|
||||
return CHILD;
|
||||
case DescendantOrSelf_id:
|
||||
case impl::DescendantOrSelf_id:
|
||||
return DESCENDANT_OR_SELF;
|
||||
case Descendant_id:
|
||||
case impl::Descendant_id:
|
||||
return DESCENDANT;
|
||||
case FollowingSibling_id:
|
||||
case impl::FollowingSibling_id:
|
||||
return FOLLOWING_SIBLING;
|
||||
case Following_id:
|
||||
case impl::Following_id:
|
||||
return FOLLOWING;
|
||||
case Namespace_id:
|
||||
case impl::Namespace_id:
|
||||
return NAMESPACE;
|
||||
case Parent_id:
|
||||
case impl::Parent_id:
|
||||
return PARENT;
|
||||
case PrecedingSibling_id:
|
||||
case impl::PrecedingSibling_id:
|
||||
return PRECEDING_SIBLING;
|
||||
case Preceding_id:
|
||||
case impl::Preceding_id:
|
||||
return PRECEDING;
|
||||
case Self_id:
|
||||
case impl::Self_id:
|
||||
return SELF;
|
||||
} // switch ...
|
||||
|
||||
|
@ -281,7 +281,7 @@ private:
|
|||
|
||||
switch(id)
|
||||
{
|
||||
case NodeTest_id:
|
||||
case impl::NodeTest_id:
|
||||
{
|
||||
node_iter_t c = node->children.begin();
|
||||
NodeTest* t = getTest(c, namespaceContext);
|
||||
|
@ -289,7 +289,7 @@ private:
|
|||
return t;
|
||||
} // case NodeTest_id
|
||||
|
||||
case QName_id:
|
||||
case impl::QName_id:
|
||||
{
|
||||
node_iter_t c = node->children.begin();
|
||||
std::string prefix(c->value.begin(), c->value.end());
|
||||
|
@ -300,29 +300,29 @@ private:
|
|||
return new QNameNodeTest(uri, name);
|
||||
} //case QName_id
|
||||
|
||||
case NCName_id:
|
||||
case impl::NCName_id:
|
||||
{
|
||||
std::string name(node->value.begin(), node->value.end());
|
||||
++node;
|
||||
return new NameNodeTest(name);
|
||||
} // case NameNodeTest
|
||||
|
||||
case Comment_id:
|
||||
case impl::Comment_id:
|
||||
{
|
||||
++node;
|
||||
return new CommentNodeTest();
|
||||
} // case CommentTest_id
|
||||
|
||||
case Text_id:
|
||||
case impl::Text_id:
|
||||
{
|
||||
++node;
|
||||
return new TextNodeTest();
|
||||
} // case Text_id
|
||||
|
||||
case ProcessingInstruction_id:
|
||||
case impl::ProcessingInstruction_id:
|
||||
{
|
||||
++node;
|
||||
if(getNodeId(node) != Literal_id) // not sure if this is always safe
|
||||
if(getNodeId(node) != impl::Literal_id) // not sure if this is always safe
|
||||
return new ProcessingInstructionNodeTest();
|
||||
|
||||
std::string target(node->value.begin(), node->value.end());
|
||||
|
@ -330,25 +330,25 @@ private:
|
|||
return new ProcessingInstructionNodeTest(target);
|
||||
} // case ProcessingInstruction_id
|
||||
|
||||
case SlashSlash_id:
|
||||
case Node_id:
|
||||
case impl::SlashSlash_id:
|
||||
case impl::Node_id:
|
||||
{
|
||||
++node;
|
||||
return new AnyNodeTest();
|
||||
} // case Node_id
|
||||
|
||||
case Slash_id:
|
||||
case impl::Slash_id:
|
||||
return new RootNodeTest();
|
||||
|
||||
case AnyName_id:
|
||||
case SelfSelect_id:
|
||||
case ParentSelect_id:
|
||||
case impl::AnyName_id:
|
||||
case impl::SelfSelect_id:
|
||||
case impl::ParentSelect_id:
|
||||
{
|
||||
++node;
|
||||
return new StarNodeTest();
|
||||
} // case AnyName_id:
|
||||
|
||||
case NameTest_id:
|
||||
case impl::NameTest_id:
|
||||
{
|
||||
node_iter_t prefixNode = node->children.begin();
|
||||
++node;
|
||||
|
|
|
@ -25,7 +25,7 @@ long Arabica::XPath::getNodeId(node_iter_t const& node)
|
|||
|
||||
node_iter_t& Arabica::XPath::skipWhitespace(node_iter_t& node)
|
||||
{
|
||||
while(getNodeId(node) == S_id)
|
||||
while(getNodeId(node) == impl::S_id)
|
||||
++node;
|
||||
return node;
|
||||
} // skipWhitespace
|
||||
|
@ -70,12 +70,12 @@ XPathExpression<std::string>* createFunction(node_iter_t const& i, CompilationCo
|
|||
std::string name(c->value.begin(), c->value.end());
|
||||
++c;
|
||||
skipWhitespace(c);
|
||||
assert(getNodeId(c) == LeftBracket_id);
|
||||
assert(getNodeId(c) == impl::LeftBracket_id);
|
||||
++c;
|
||||
skipWhitespace(c);
|
||||
|
||||
std::vector<XPathExpressionPtr<std::string> > args;
|
||||
while(getNodeId(c) != RightBracket_id)
|
||||
while(getNodeId(c) != impl::RightBracket_id)
|
||||
{
|
||||
XPathExpressionPtr<std::string> arg(compile_expression(c++, context));
|
||||
args.push_back(arg);
|
||||
|
@ -117,46 +117,46 @@ XPathExpression<std::string>* createBinaryExpression(node_iter_t const& i, Compi
|
|||
|
||||
switch(op)
|
||||
{
|
||||
case PlusOperator_id:
|
||||
case impl::PlusOperator_id:
|
||||
p1 = new PlusOperator<std::string>(p1, p2);
|
||||
break;
|
||||
case MinusOperator_id:
|
||||
case impl::MinusOperator_id:
|
||||
p1 = new MinusOperator<std::string>(p1, p2);
|
||||
break;
|
||||
case MultiplyOperator_id:
|
||||
case impl::MultiplyOperator_id:
|
||||
p1 = new MultiplyOperator<std::string>(p1, p2);
|
||||
break;
|
||||
case DivOperator_id:
|
||||
case impl::DivOperator_id:
|
||||
p1 = new DivideOperator<std::string>(p1, p2);
|
||||
break;
|
||||
case ModOperator_id:
|
||||
case impl::ModOperator_id:
|
||||
p1 = new ModOperator<std::string>(p1, p2);
|
||||
break;
|
||||
case EqualsOperator_id:
|
||||
case impl::EqualsOperator_id:
|
||||
p1 = new EqualsOperator(p1, p2);
|
||||
break;
|
||||
case NotEqualsOperator_id:
|
||||
case impl::NotEqualsOperator_id:
|
||||
p1 = new NotEqualsOperator(p1, p2);
|
||||
break;
|
||||
case LessThanOperator_id:
|
||||
case impl::LessThanOperator_id:
|
||||
p1 = new LessThanOperator(p1, p2);
|
||||
break;
|
||||
case LessThanEqualsOperator_id:
|
||||
case impl::LessThanEqualsOperator_id:
|
||||
p1 = new LessThanEqualsOperator(p1, p2);
|
||||
break;
|
||||
case GreaterThanOperator_id:
|
||||
case impl::GreaterThanOperator_id:
|
||||
p1 = new GreaterThanOperator(p1, p2);
|
||||
break;
|
||||
case GreaterThanEqualsOperator_id:
|
||||
case impl::GreaterThanEqualsOperator_id:
|
||||
p1 = new GreaterThanEqualsOperator(p1, p2);
|
||||
break;
|
||||
case OrOperator_id:
|
||||
case impl::OrOperator_id:
|
||||
p1 = new OrOperator(p1, p2);
|
||||
break;
|
||||
case AndOperator_id:
|
||||
case impl::AndOperator_id:
|
||||
p1 = new AndOperator(p1, p2);
|
||||
break;
|
||||
case UnionOperator_id:
|
||||
case impl::UnionOperator_id:
|
||||
p1 = new UnionExpression(p1, p2);
|
||||
break;
|
||||
default:
|
||||
|
@ -178,16 +178,16 @@ RelativeLocationPath::StepList createStepList(node_iter_t const& from, node_iter
|
|||
while(c != end)
|
||||
switch(getNodeId(c))
|
||||
{
|
||||
case S_id:
|
||||
case Slash_id:
|
||||
case impl::S_id:
|
||||
case impl::Slash_id:
|
||||
++c; // just drop it
|
||||
break;
|
||||
case RelativeLocationPath_id:
|
||||
case impl::RelativeLocationPath_id:
|
||||
// might get here when handling an absolute path
|
||||
end = c->children.end();
|
||||
c = c->children.begin();
|
||||
break;
|
||||
case Step_id:
|
||||
case impl::Step_id:
|
||||
{
|
||||
node_iter_t step = c->children.begin();
|
||||
steps.push_back(StepFactory::createStep(step, c->children.end(), context));
|
||||
|
@ -322,45 +322,45 @@ const std::map<int, XPath::compileFn> XPath::createFunctions()
|
|||
{
|
||||
std::map<int, XPath::compileFn> factory;
|
||||
|
||||
factory[AbsoluteLocationPath_id] = createAbsoluteLocationPath;
|
||||
factory[RelativeLocationPath_id] = createRelativeLocationPath;
|
||||
factory[AbbreviatedAbsoluteLocationPath_id] = createAbsoluteLocationPath;
|
||||
factory[Step_id] = createRelativeLocationPath;
|
||||
factory[PathExpr_id] = createRelativeLocationPath;
|
||||
factory[FilterExpr_id] = createRelativeLocationPath;
|
||||
factory[impl::AbsoluteLocationPath_id] = createAbsoluteLocationPath;
|
||||
factory[impl::RelativeLocationPath_id] = createRelativeLocationPath;
|
||||
factory[impl::AbbreviatedAbsoluteLocationPath_id] = createAbsoluteLocationPath;
|
||||
factory[impl::Step_id] = createRelativeLocationPath;
|
||||
factory[impl::PathExpr_id] = createRelativeLocationPath;
|
||||
factory[impl::FilterExpr_id] = createRelativeLocationPath;
|
||||
|
||||
factory[PrimaryExpr_id] = createExpression;
|
||||
factory[impl::PrimaryExpr_id] = createExpression;
|
||||
|
||||
factory[FunctionCall_id] = createFunction;
|
||||
factory[impl::FunctionCall_id] = createFunction;
|
||||
|
||||
factory[AdditiveExpr_id] = createBinaryExpression;
|
||||
factory[MultiplicativeExpr_id] = createBinaryExpression;
|
||||
factory[EqualityExpr_id] = createBinaryExpression;
|
||||
factory[RelationalExpr_id] = createBinaryExpression;
|
||||
factory[OrExpr_id] = createBinaryExpression;
|
||||
factory[AndExpr_id] = createBinaryExpression;
|
||||
factory[UnionExpr_id] = createBinaryExpression;
|
||||
factory[impl::AdditiveExpr_id] = createBinaryExpression;
|
||||
factory[impl::MultiplicativeExpr_id] = createBinaryExpression;
|
||||
factory[impl::EqualityExpr_id] = createBinaryExpression;
|
||||
factory[impl::RelationalExpr_id] = createBinaryExpression;
|
||||
factory[impl::OrExpr_id] = createBinaryExpression;
|
||||
factory[impl::AndExpr_id] = createBinaryExpression;
|
||||
factory[impl::UnionExpr_id] = createBinaryExpression;
|
||||
|
||||
factory[Literal_id] = createLiteral;
|
||||
factory[Number_id] = createNumber;
|
||||
factory[Digits_id] = createNumber;
|
||||
factory[impl::Literal_id] = createLiteral;
|
||||
factory[impl::Number_id] = createNumber;
|
||||
factory[impl::Digits_id] = createNumber;
|
||||
|
||||
factory[VariableReference_id] = createVariable;
|
||||
factory[impl::VariableReference_id] = createVariable;
|
||||
|
||||
factory[NodeTest_id] = createSingleStepRelativeLocationPath;
|
||||
factory[QName_id] = createSingleStepRelativeLocationPath;
|
||||
factory[NCName_id] = createSingleStepRelativeLocationPath;
|
||||
factory[AnyName_id] = createSingleStepRelativeLocationPath;
|
||||
factory[Text_id] = createSingleStepRelativeLocationPath;
|
||||
factory[Comment_id] = createSingleStepRelativeLocationPath;
|
||||
factory[ProcessingInstruction_id] = createSingleStepRelativeLocationPath;
|
||||
factory[Slash_id] = createSingleStepAbsoluteLocationPath;
|
||||
factory[impl::NodeTest_id] = createSingleStepRelativeLocationPath;
|
||||
factory[impl::QName_id] = createSingleStepRelativeLocationPath;
|
||||
factory[impl::NCName_id] = createSingleStepRelativeLocationPath;
|
||||
factory[impl::AnyName_id] = createSingleStepRelativeLocationPath;
|
||||
factory[impl::Text_id] = createSingleStepRelativeLocationPath;
|
||||
factory[impl::Comment_id] = createSingleStepRelativeLocationPath;
|
||||
factory[impl::ProcessingInstruction_id] = createSingleStepRelativeLocationPath;
|
||||
factory[impl::Slash_id] = createSingleStepAbsoluteLocationPath;
|
||||
|
||||
factory[SelfSelect_id] = createSingleStepRelativeLocationPath;
|
||||
factory[ParentSelect_id] = createSingleStepRelativeLocationPath;
|
||||
factory[impl::SelfSelect_id] = createSingleStepRelativeLocationPath;
|
||||
factory[impl::ParentSelect_id] = createSingleStepRelativeLocationPath;
|
||||
|
||||
factory[UnaryExpr_id] = createUnaryExpression;
|
||||
factory[UnaryMinusOperator_id] = createUnaryNegativeExpr;
|
||||
factory[impl::UnaryExpr_id] = createUnaryExpression;
|
||||
factory[impl::UnaryMinusOperator_id] = createUnaryNegativeExpr;
|
||||
|
||||
return factory;
|
||||
} // createFunctions
|
||||
|
@ -369,95 +369,95 @@ const std::map<int, std::string> XPath::debugNames()
|
|||
{
|
||||
std::map<int, std::string> names;
|
||||
|
||||
names[LocationPath_id] = "LocationPath";
|
||||
names[AbsoluteLocationPath_id] = "AbsoluteLocationPath";
|
||||
names[RelativeLocationPath_id] = "RelativeLocationPath";
|
||||
names[Step_id] = "Step";
|
||||
names[AxisSpecifier_id] = "AxisSpecifier";
|
||||
names[NodeTest_id] = "NodeTest";
|
||||
names[Predicate_id] = "Predicate";
|
||||
names[PredicateExpr_id] = "PredicateExpr";
|
||||
names[AbbreviatedAbsoluteLocationPath_id] = "AbbreviatedAbsoluteLocationPath";
|
||||
names[AbbreviatedStep_id] = "AbbreviatedStep";
|
||||
names[AbbreviatedAxisSpecifier_id] = "AbbreviatedAxisSpecifier";
|
||||
names[Expr_id] = "Expr";
|
||||
names[PrimaryExpr_id] = "PrimaryExpr";
|
||||
names[FunctionCall_id] = "FunctionCall";
|
||||
names[Argument_id] = "Argument";
|
||||
names[UnionExpr_id] = "UnionExpr";
|
||||
names[PathExpr_id] = "PathExpr";
|
||||
names[FilterExpr_id] = "FilterExpr";
|
||||
names[OrExpr_id] = "OrExpr";
|
||||
names[AndExpr_id] = "AndExpr";
|
||||
names[EqualityExpr_id] = "EqualityExpr";
|
||||
names[RelationalExpr_id] = "RelationalExpr";
|
||||
names[AdditiveExpr_id] = "AdditiveExpr";
|
||||
names[MultiplicativeExpr_id] = "MultiplicativeExpr";
|
||||
names[UnaryExpr_id] = "UnaryExpr";
|
||||
names[Literal_id] = "Literal";
|
||||
names[Number_id] = "Number";
|
||||
names[Digits_id] = "Digits";
|
||||
names[MultiplyOperator_id] = "MultiplyOperator";
|
||||
names[FunctionName_id] = "FunctionName";
|
||||
names[VariableReference_id] = "VariableReference";
|
||||
names[NameTest_id] = "NameTest";
|
||||
names[S_id] = "S";
|
||||
names[NodeType_id] = "NodeType";
|
||||
names[AxisName_id] = "AxisName";
|
||||
names[impl::LocationPath_id] = "LocationPath";
|
||||
names[impl::AbsoluteLocationPath_id] = "AbsoluteLocationPath";
|
||||
names[impl::RelativeLocationPath_id] = "RelativeLocationPath";
|
||||
names[impl::Step_id] = "Step";
|
||||
names[impl::AxisSpecifier_id] = "AxisSpecifier";
|
||||
names[impl::NodeTest_id] = "NodeTest";
|
||||
names[impl::Predicate_id] = "Predicate";
|
||||
names[impl::PredicateExpr_id] = "PredicateExpr";
|
||||
names[impl::AbbreviatedAbsoluteLocationPath_id] = "AbbreviatedAbsoluteLocationPath";
|
||||
names[impl::AbbreviatedStep_id] = "AbbreviatedStep";
|
||||
names[impl::AbbreviatedAxisSpecifier_id] = "AbbreviatedAxisSpecifier";
|
||||
names[impl::Expr_id] = "Expr";
|
||||
names[impl::PrimaryExpr_id] = "PrimaryExpr";
|
||||
names[impl::FunctionCall_id] = "FunctionCall";
|
||||
names[impl::Argument_id] = "Argument";
|
||||
names[impl::UnionExpr_id] = "UnionExpr";
|
||||
names[impl::PathExpr_id] = "PathExpr";
|
||||
names[impl::FilterExpr_id] = "FilterExpr";
|
||||
names[impl::OrExpr_id] = "OrExpr";
|
||||
names[impl::AndExpr_id] = "AndExpr";
|
||||
names[impl::EqualityExpr_id] = "EqualityExpr";
|
||||
names[impl::RelationalExpr_id] = "RelationalExpr";
|
||||
names[impl::AdditiveExpr_id] = "AdditiveExpr";
|
||||
names[impl::MultiplicativeExpr_id] = "MultiplicativeExpr";
|
||||
names[impl::UnaryExpr_id] = "UnaryExpr";
|
||||
names[impl::Literal_id] = "Literal";
|
||||
names[impl::Number_id] = "Number";
|
||||
names[impl::Digits_id] = "Digits";
|
||||
names[impl::MultiplyOperator_id] = "MultiplyOperator";
|
||||
names[impl::FunctionName_id] = "FunctionName";
|
||||
names[impl::VariableReference_id] = "VariableReference";
|
||||
names[impl::NameTest_id] = "NameTest";
|
||||
names[impl::S_id] = "S";
|
||||
names[impl::NodeType_id] = "NodeType";
|
||||
names[impl::AxisName_id] = "AxisName";
|
||||
|
||||
names[QName_id] = "QName";
|
||||
names[Prefix_id] = "Prefix";
|
||||
names[LocalPart_id] = "LocalPart";
|
||||
names[NCName_id] = "NCName";
|
||||
names[NCNameChar_id] = "NCNameChar";
|
||||
names[impl::QName_id] = "QName";
|
||||
names[impl::Prefix_id] = "Prefix";
|
||||
names[impl::LocalPart_id] = "LocalPart";
|
||||
names[impl::NCName_id] = "NCName";
|
||||
names[impl::NCNameChar_id] = "NCNameChar";
|
||||
|
||||
names[Slash_id] = "/";
|
||||
names[SlashSlash_id] = "//";
|
||||
names[impl::Slash_id] = "/";
|
||||
names[impl::SlashSlash_id] = "//";
|
||||
|
||||
names[AncestorOrSelf_id] = "ancestor-or-self::";
|
||||
names[Ancestor_id] = "ancestor::";
|
||||
names[Attribute_id] = "attribute::";
|
||||
names[Child_id] = "child::";
|
||||
names[DescendantOrSelf_id] = "descendant-or-self::";
|
||||
names[Descendant_id] = "descendant::";
|
||||
names[FollowingSibling_id] = "following-sibling::";
|
||||
names[Following_id] = "following::";
|
||||
names[Namespace_id] = "namespace::";
|
||||
names[Parent_id] = "parent::";
|
||||
names[PrecedingSibling_id] = "preceding-sibling::";
|
||||
names[Preceding_id] = "preceding::";
|
||||
names[Self_id] = "self::";
|
||||
names[impl::AncestorOrSelf_id] = "ancestor-or-self::";
|
||||
names[impl::Ancestor_id] = "ancestor::";
|
||||
names[impl::Attribute_id] = "attribute::";
|
||||
names[impl::Child_id] = "child::";
|
||||
names[impl::DescendantOrSelf_id] = "descendant-or-self::";
|
||||
names[impl::Descendant_id] = "descendant::";
|
||||
names[impl::FollowingSibling_id] = "following-sibling::";
|
||||
names[impl::Following_id] = "following::";
|
||||
names[impl::Namespace_id] = "namespace::";
|
||||
names[impl::Parent_id] = "parent::";
|
||||
names[impl::PrecedingSibling_id] = "preceding-sibling::";
|
||||
names[impl::Preceding_id] = "preceding::";
|
||||
names[impl::Self_id] = "self::";
|
||||
|
||||
names[Comment_id] = "comment()";
|
||||
names[Text_id] = "text()";
|
||||
names[ProcessingInstruction_id] = "processing-instruction()";
|
||||
names[Node_id] = "node()";
|
||||
names[AnyName_id] = "AnyName";
|
||||
names[impl::Comment_id] = "comment()";
|
||||
names[impl::Text_id] = "text()";
|
||||
names[impl::ProcessingInstruction_id] = "processing-instruction()";
|
||||
names[impl::Node_id] = "node()";
|
||||
names[impl::AnyName_id] = "AnyName";
|
||||
|
||||
names[SelfSelect_id] = "SelfSelect";
|
||||
names[ParentSelect_id] = "ParentSelect";
|
||||
names[impl::SelfSelect_id] = "SelfSelect";
|
||||
names[impl::ParentSelect_id] = "ParentSelect";
|
||||
|
||||
names[LeftSquare_id] = "[";
|
||||
names[RightSquare_id] = "]";
|
||||
names[impl::LeftSquare_id] = "[";
|
||||
names[impl::RightSquare_id] = "]";
|
||||
|
||||
names[LeftBracket_id] = "(";
|
||||
names[RightBracket_id] = ")";
|
||||
names[impl::LeftBracket_id] = "(";
|
||||
names[impl::RightBracket_id] = ")";
|
||||
|
||||
names[PlusOperator_id] = "+";
|
||||
names[MinusOperator_id] = "-";
|
||||
names[ModOperator_id] = "mod";
|
||||
names[DivOperator_id] = "div";
|
||||
names[EqualsOperator_id] = "=";
|
||||
names[NotEqualsOperator_id] = "!=";
|
||||
names[LessThanOperator_id] = "<";
|
||||
names[LessThanEqualsOperator_id] = "<=";
|
||||
names[GreaterThanOperator_id] = ">";
|
||||
names[GreaterThanEqualsOperator_id] = ">=";
|
||||
names[impl::PlusOperator_id] = "+";
|
||||
names[impl::MinusOperator_id] = "-";
|
||||
names[impl::ModOperator_id] = "mod";
|
||||
names[impl::DivOperator_id] = "div";
|
||||
names[impl::EqualsOperator_id] = "=";
|
||||
names[impl::NotEqualsOperator_id] = "!=";
|
||||
names[impl::LessThanOperator_id] = "<";
|
||||
names[impl::LessThanEqualsOperator_id] = "<=";
|
||||
names[impl::GreaterThanOperator_id] = ">";
|
||||
names[impl::GreaterThanEqualsOperator_id] = ">=";
|
||||
|
||||
names[OrOperator_id] = "or";
|
||||
names[AndOperator_id] = "and";
|
||||
names[UnionOperator_id] = "union";
|
||||
names[UnaryMinusOperator_id] = "minus";
|
||||
names[impl::OrOperator_id] = "or";
|
||||
names[impl::AndOperator_id] = "and";
|
||||
names[impl::UnionOperator_id] = "union";
|
||||
names[impl::UnaryMinusOperator_id] = "minus";
|
||||
|
||||
return names;
|
||||
} // debugNames
|
||||
|
|
Loading…
Add table
Reference in a new issue