Package

eu.cdevreeze.xpathparser

ast

Permalink

package ast

Abstract syntax tree of XPath expressions, as produced by the parsers specified in the 'parse' package.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ast
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class BracedUriLiteral(namespaceOption: Option[String]) extends Product with Serializable

    Permalink

    Braced URI literal.

  2. sealed trait EQName extends AnyRef

    Permalink

    EQName, so either a URIQualifiedName or a QNameAsEQName.

  3. final case class NCName(name: String) extends Product with Serializable

    Permalink

    NCName, that is, a non-colon name.

  4. final case class QNameAsEQName(qname: QName) extends EQName with Product with Serializable

    Permalink
  5. final case class URIQualifiedName(ename: EName) extends EQName with Product with Serializable

    Permalink

Value Members

  1. object BracedUriLiteral extends Serializable

    Permalink
  2. object EQName

    Permalink
  3. object NCName extends Serializable

    Permalink
  4. object QNameAsEQName extends Serializable

    Permalink
  5. object URIQualifiedName extends Serializable

    Permalink
  6. object XPathExpressions

    Permalink

    XPath 3.0 AST.

    XPath 3.0 AST.

    The purpose of this AST is as follows:

    • It must represent the syntax tree of a successfully parsed XPath expression
    • It is not annotated with more semantic information, like type information that is not included in the XPath expression
    • It does not know anything about the context in which it runs, like bound namespaces etc.
    • It is rich enough to be able to serialize the AST back to XPath, knowing exactly where to place parentheses, braces, etc.
    • It is rich enough to contain operator precedence in the AST itself
    • Serialization of the AST to XPath may lead to differences in whitespace (and operator aliases), but other than that the result must be the same
    • The AST class hierarchy does not have to use the exact same names as the XPath grammar

    Having such an AST of a successfully parsed XPath expression, it must be easy to reliably find used namespace prefixes, for example.

    TODO Improve several class names.

    TODO XPath 3.1.

Inherited from AnyRef

Inherited from Any

Ungrouped