Changes for version 1.000 - 2013-09-06

  • BUMPED MAJOR VERSION NUMBER -- significant change in semantics of core tpath features
  • improved effiency of axis selection in TPath::Selector::Test objects
  • changed index predicates to match behavior of xpath index predicates, modulo the difference in index base
  • created outer predicates: (//*)[0] in addition to //*[0]

Modules

general purpose path languages for trees
handles evaluating an attribute for a particular node
compares an attribute value to another value
a collection of attributes beyond the standard set
the standard collection of attributes available to any forester by default
takes ASTs and returns compiled TPath::Expression objects
handles the string concatenation in //@foo[1 ~ @bar ~ "quux"]
the context in which a node is evaluated during a search
a compiled TPath expression
a generator of TPath expressions for a particular class of nodes
implements the functions in expressions such as //*[:abs(@foo) = 1] and //*[:sqrt(@bar) == 2]
parses TPath expressions into ASTs
general purpose path languages for trees
role of log-like things
handles the arithmetic in //foo[1 + @bar = @quux]
role of things that evaluate to numbers
interface of square bracket sub-expressions in TPath expressions
implements the [@foo] in //a/b[@foo]
implements the [@foo = 1] in //a/b[@foo = 1]
implements the [@foo or @bar ] in //a/b[@foo or @bar]
implements the [c] in //a/b[c]
implements the [0] in //a/b[0]
an interface for classes that select nodes from a candidate collection
selector that handles the parenthesized portion of a(/foo and a(/foo; also all of (//*)[0]
TPath::Selector that implements id(foo)
TPath::Selector that implements ..
role of selectors that have predicates
TPath::Selector that implements :p
handles expressions like a? and //foo*
TPath::Selector that implements .
role of selectors that apply some test to a node to select it
handles //* expression
handles //@foo expression
handles //~foo~ expression
handles //foo expression
handles /ancestor::@foo or /preceding::@foo where this is not the first step in the path, or ancestor::@foo, etc.
handles /ancestor::~foo~ or /preceding::~foo~ where this is not the first step in the path, or ancestor::~foo~, etc.
handles /ancestor::foo or /preceding::foo where this is not the first step in the path, or ancestor::foo
handles /ancestor::* or /preceding::* where this is not the first step in the path, or ancestor::*, etc.
handles /@foo where this is not the first step in the path, or child::@foo
handles /~foo~ where this is not the first step in the path, or child::~foo~
handles /foo where this is not the first step in the path, or child::foo
implementation of TPath::LogStream that simply prints to STDERR
role requiring that a class have a to_string method
interface of conditional expressions in predicates
implements logical conjunction of tests
any empty role used to tag boolean TPath::Tests
role of TPath::Tests that combine multiple other tests under some boolean operator
role for tests determining whether a node has some property
TPath::Test::Node implementing attributes; e.g., //@foo
TPath::Test::Node implementing matching; e.g., //^~foo~, //^foo, and //^@foo
TPath::Test::Node implementing matching; e.g., //~foo~
TPath::Test::Node implementing basic tag pattern; e.g., //foo
TPath::Test::Node implementing the wildcard; e.g., //*
implements logical negation of a test
implements logical function of tests which returns true iff only one test is true
implements logical disjunction of tests
applies type constraint on nodes
assorted type constraints

Provides

XXF
in XXF.pm