# Package net.sf.saxon.expr.parser

This package contains classes associated with parsing and general static analysis of XPath expressions.

- Interface Summary
  Interface | Description
  --- | ---
  CodeInjector | A code injector can be used to add code to the expression tree (for example, diagnostic tracing code) during the process of parsing and tree construction
  ExpressionAction | General action class which can be used to process all nodes on an expression tree
  ExpressionTool.ExpressionSelector | Callback for selecting expressions in the tree
  ICompilerService | Marker interface representing a bytecode generation service
  XPathParser.Accelerator |

- Class Summary
  Class | Description
  --- | ---
  ContextItemStaticInfo | A data structure that represents the required type of the context item, together with information about whether it is known to be present or absent or whether it is not known statically whether it is present or absent.
  Evaluator | An Evaluator evaluates an expression to return a sequence
  ExpressionTool | This class, ExpressionTool, contains a number of useful static methods for manipulating expressions.
  ExpressionVisitor | The ExpressionVisitor supports the various phases of processing of an expression tree which require a recursive walk of the tree structure visiting each node in turn.
  Loc | Class to hold details of the location of an expression, of an error in a source file, etc.
  LoopLifter | Class to handle loop-lifting optimization, that is, extraction of subexpressions appearing within a loop when there is no dependency on the controlling variable of the loop.
  Optimizer | This class performs optimizations that vary between different versions of the Saxon product.
  OptimizerOptions | Defines switches that can be used to control which optimizations take place.
  ParserExtension | Dummy Parser extension for syntax in XPath that is accepted only in particular product variants.
  ParserExtension.InlineFunctionDetails |
  ParserExtension.TemporaryXSLTVariableBinding |
  PathMap | A PathMap is a description of all the paths followed by an expression.
  PathMap.PathMapArc | An arc joining two nodes in the path map.
  PathMap.PathMapNode | A node in the path map.
  PathMap.PathMapNodeSet | A (mutable) set of nodes in the path map
  PathMap.PathMapRoot | A root node in the path map.
  RebindingMap | A map from old bindings to new bindings, maintained during a copy() operation applied to an expression tree.
  RetainedStaticContext | This class contains the part of the static context of expressions that (a) can change from one expression to another within a query or stylesheet, and (b) are potentially needed at run-time.
  RoleDiagnostic | A RoleDiagnostic (formerly RoleLocator) identifies the role in which an expression is used, for example as the third argument of the concat() function.
  Token | This class holds static constants and methods defining the lexical tokens used in XPath and XQuery, and associated keywords.
  Tokenizer | Tokenizer for expressions and inputs.
  TypeChecker | This class provides Saxon's type checking capability.
  XPathParser | Parser for XPath expressions and XSLT patterns.
  XPathParser.NestedLocation | A nested location: for use with XPath expressions and queries nested within some larger document.

- Enum Summary
  Enum | Description
  --- | ---
  XPathParser.ParsedLanguage |