org.apache.xpath.compiler
Class OpCodes

java.lang.Object
  extended by org.apache.xpath.compiler.OpCodes

public class OpCodes
extends java.lang.Object

Operations codes for XPath. Code for the descriptions of the operations codes: [UPPER CASE] indicates a literal value, [lower case] is a description of a value, ([length] always indicates the length of the operation, including the operations code and the length integer.) {UPPER CASE} indicates the given production, {description} is the description of a new production, (For instance, {boolean expression} means some expression that should be resolved to a boolean.) * means that it occurs zero or more times, + means that it occurs one or more times, ? means that it is optional. returns: indicates what the production should return.


Field Summary
static int AXES_END_TYPES
          The end of the axes types.
static int AXES_START_TYPES
          [FROM_stepType] [length, including predicates] [length of just the step, without the predicates] {node test} {predicates}? returns: XBoolean
static int ELEMWILDCARD
          [ELEMWILDCARD] Means ELEMWILDCARD ("*"), used instead of string index in some places.
static int EMPTY
          [EMPTY] Empty slot to indicate NULL.
static int ENDOP
          [ENDOP] Some operators may like to have a terminator.
(package private) static int FIRST_NODESET_OP
          The low opcode for nodesets, needed by getFirstPredicateOpPos and getNextStepPos.
static int FROM_ANCESTORS
          ancestor axes opcode.
static int FROM_ANCESTORS_OR_SELF
          ancestor-or-self axes opcode.
static int FROM_ATTRIBUTES
          attribute axes opcode.
static int FROM_CHILDREN
          children axes opcode.
static int FROM_DESCENDANTS
          descendants axes opcode.
static int FROM_DESCENDANTS_OR_SELF
          descendants-of-self axes opcode.
static int FROM_FOLLOWING
          following axes opcode.
static int FROM_FOLLOWING_SIBLINGS
          following-siblings axes opcode.
static int FROM_NAMESPACE
          namespace axes opcode.
static int FROM_PARENT
          parent axes opcode.
static int FROM_PRECEDING
          preceding axes opcode.
static int FROM_PRECEDING_SIBLINGS
          preceding-sibling axes opcode.
static int FROM_ROOT
          '/' axes opcode.
static int FROM_SELF
          self axes opcode.
(package private) static int LAST_NODESET_OP
          The last opcode for stuff that can be a nodeset.
static int MATCH_ANY_ANCESTOR
          For match patterns.
static int MATCH_ATTRIBUTE
          For match patterns.
static int MATCH_IMMEDIATE_ANCESTOR
          For match patterns.
private static int NEXT_FREE_ID
          The next free ID.
static int NODENAME
          [NODENAME] [index to ns token or EMPTY] [index to name token] returns: XBoolean
static int NODETYPE_ANYELEMENT
          [NODETYPE_ANY] No size or arguments.
static int NODETYPE_COMMENT
          [NODETYPE_COMMENT] No size or arguments.
static int NODETYPE_FUNCTEST
          [NODETYPE_ANY] No size or arguments.
static int NODETYPE_NODE
          [NODETYPE_NODE] No size or arguments.
static int NODETYPE_PI
          [NODETYPE_PI] [index to token] Note: must not overlap function OP number! returns: XBoolean
static int NODETYPE_ROOT
          [NODETYPE_ROOT] No size or arguments.
static int NODETYPE_TEXT
          [NODETYPE_TEXT] No size or arguments.
static int OP_AND
          [OP_AND] [length] {boolean expression} {boolean expression} returns: XBoolean
static int OP_ARGUMENT
          [OP_ARGUMENT] (Function argument.) [length] {expression} returns: XNodeSet XNumber XString XBoolean XRTree XObject
static int OP_BOOL
          [OP_BOOL] (cast operation) [length] {expression} returns: XBoolean
static int OP_DIV
          [OP_DIV] [length] {number expression} {number expression} returns: XNumber
static int OP_EQUALS
          [OP_EQUALS] [length] {expression} {expression} returns: XBoolean
static int OP_EXTFUNCTION
          [OP_EXTFUNCTION] (Extension function.) [length] [index to namespace token] [index to function name token] {OP_ARGUMENT} returns: XNodeSet XNumber XString XBoolean XRTree XObject
static int OP_FUNCTION
          [OP_FUNCTION] [length] [FUNC_name] {OP_ARGUMENT} [ENDOP] returns: XNodeSet XNumber XString XBoolean XRTree XObject
static int OP_GROUP
          [OP_GROUP] [length] {expression} returns: XNodeSet XNumber XString XBoolean XRTree XObject
static int OP_GT
          [OP_GT] (greater-than) [length] {number expression} {number expression} returns: XBoolean
static int OP_GTE
          [OP_GTE] (greater-than-or-equals) [length] {number expression} {number expression} returns: XBoolean
static int OP_LITERAL
          [OP_LITERAL] [3] [index to token] returns: XString
static int OP_LOCATIONPATH
          [OP_LOCATIONPATH] [length] {FROM_stepType} | {function} {predicate} [ENDOP] (Note that element and attribute namespaces and names can be wildcarded '*'.) returns: XNodeSet
static int OP_LOCATIONPATHPATTERN
          [OP_LOCATIONPATHPATTERN] [length] {FROM_stepType} | {function}{predicate} [ENDOP] returns: XNodeSet
static int OP_LT
          [OP_LT] (less-than) [length] {number expression} {number expression} returns: XBoolean
static int OP_LTE
          [OP_LTE] (less-than-or-equals) [length] {number expression} {number expression} returns: XBoolean
static int OP_MATCHPATTERN
          [OP_MATCHPATTERN] [length] {PathExpr}+ returns: XNodeSet
static int OP_MINUS
          [OP_MINUS] [length] {number expression} {number expression} returns: XNumber
static int OP_MOD
          [OP_MOD] [length] {number expression} {number expression} returns: XNumber
static int OP_MULT
          [OP_MULT] [length] {number expression} {number expression} returns: XNumber
static int OP_NEG
          [OP_NEG] [length] {number expression} returns: XNumber
static int OP_NOTEQUALS
          [OP_NOTEQUALS] [length] {expression} {expression} returns: XBoolean
static int OP_NUMBER
          [OP_NUMBER] (cast operation) [length] {expression} returns: XBoolean
static int OP_NUMBERLIT
          [OP_NUMBERLIT] (Number literal.) [3] [index to token] returns: XString
static int OP_OR
          [OP_OR] [length] {boolean expression} {boolean expression} returns: XBoolean
static int OP_PLUS
          [OP_PLUS] [length] {number expression} {number expression} returns: XNumber
static int OP_PREDICATE
          [OP_PREDICATE] [length] {expression} [ENDOP] (For safety) returns: XBoolean or XNumber
static int OP_QUO
          [OP_QUO] [length] {number expression} {number expression} returns: XNumber
static int OP_STRING
          [OP_STRING] (cast operation) [length] {expression} returns: XString
static int OP_UNION
          [OP_UNION] [length] {PathExpr}+ returns: XNodeSet
static int OP_VARIABLE
          [OP_VARIABLE] [4] [index to namespace token, or EMPTY] [index to function name token] returns: XString
static int OP_XPATH
          [OP_XPATH] [length] {expression} returns: XNodeSet XNumber XString XBoolean XRTree XObject
 
Constructor Summary
OpCodes()
           
 
Method Summary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ENDOP

public static final int ENDOP
[ENDOP] Some operators may like to have a terminator.

See Also:
Constant Field Values

EMPTY

public static final int EMPTY
[EMPTY] Empty slot to indicate NULL.

See Also:
Constant Field Values

ELEMWILDCARD

public static final int ELEMWILDCARD
[ELEMWILDCARD] Means ELEMWILDCARD ("*"), used instead of string index in some places.

See Also:
Constant Field Values

OP_XPATH

public static final int OP_XPATH
[OP_XPATH] [length] {expression} returns: XNodeSet XNumber XString XBoolean XRTree XObject

See Also:
Constant Field Values

OP_OR

public static final int OP_OR
[OP_OR] [length] {boolean expression} {boolean expression} returns: XBoolean

See Also:
Constant Field Values

OP_AND

public static final int OP_AND
[OP_AND] [length] {boolean expression} {boolean expression} returns: XBoolean

See Also:
Constant Field Values

OP_NOTEQUALS

public static final int OP_NOTEQUALS
[OP_NOTEQUALS] [length] {expression} {expression} returns: XBoolean

See Also:
Constant Field Values

OP_EQUALS

public static final int OP_EQUALS
[OP_EQUALS] [length] {expression} {expression} returns: XBoolean

See Also:
Constant Field Values

OP_LTE

public static final int OP_LTE
[OP_LTE] (less-than-or-equals) [length] {number expression} {number expression} returns: XBoolean

See Also:
Constant Field Values

OP_LT

public static final int OP_LT
[OP_LT] (less-than) [length] {number expression} {number expression} returns: XBoolean

See Also:
Constant Field Values

OP_GTE

public static final int OP_GTE
[OP_GTE] (greater-than-or-equals) [length] {number expression} {number expression} returns: XBoolean

See Also:
Constant Field Values

OP_GT

public static final int OP_GT
[OP_GT] (greater-than) [length] {number expression} {number expression} returns: XBoolean

See Also:
Constant Field Values

OP_PLUS

public static final int OP_PLUS
[OP_PLUS] [length] {number expression} {number expression} returns: XNumber

See Also:
Constant Field Values

OP_MINUS

public static final int OP_MINUS
[OP_MINUS] [length] {number expression} {number expression} returns: XNumber

See Also:
Constant Field Values

OP_MULT

public static final int OP_MULT
[OP_MULT] [length] {number expression} {number expression} returns: XNumber

See Also:
Constant Field Values

OP_DIV

public static final int OP_DIV
[OP_DIV] [length] {number expression} {number expression} returns: XNumber

See Also:
Constant Field Values

OP_MOD

public static final int OP_MOD
[OP_MOD] [length] {number expression} {number expression} returns: XNumber

See Also:
Constant Field Values

OP_QUO

public static final int OP_QUO
[OP_QUO] [length] {number expression} {number expression} returns: XNumber

See Also:
Constant Field Values

OP_NEG

public static final int OP_NEG
[OP_NEG] [length] {number expression} returns: XNumber

See Also:
Constant Field Values

OP_STRING

public static final int OP_STRING
[OP_STRING] (cast operation) [length] {expression} returns: XString

See Also:
Constant Field Values

OP_BOOL

public static final int OP_BOOL
[OP_BOOL] (cast operation) [length] {expression} returns: XBoolean

See Also:
Constant Field Values

OP_NUMBER

public static final int OP_NUMBER
[OP_NUMBER] (cast operation) [length] {expression} returns: XBoolean

See Also:
Constant Field Values

OP_UNION

public static final int OP_UNION
[OP_UNION] [length] {PathExpr}+ returns: XNodeSet

See Also:
Constant Field Values

OP_LITERAL

public static final int OP_LITERAL
[OP_LITERAL] [3] [index to token] returns: XString

See Also:
Constant Field Values

FIRST_NODESET_OP

static final int FIRST_NODESET_OP
The low opcode for nodesets, needed by getFirstPredicateOpPos and getNextStepPos.

See Also:
Constant Field Values

OP_VARIABLE

public static final int OP_VARIABLE
[OP_VARIABLE] [4] [index to namespace token, or EMPTY] [index to function name token] returns: XString

See Also:
Constant Field Values

OP_GROUP

public static final int OP_GROUP
[OP_GROUP] [length] {expression} returns: XNodeSet XNumber XString XBoolean XRTree XObject

See Also:
Constant Field Values

OP_EXTFUNCTION

public static final int OP_EXTFUNCTION
[OP_EXTFUNCTION] (Extension function.) [length] [index to namespace token] [index to function name token] {OP_ARGUMENT} returns: XNodeSet XNumber XString XBoolean XRTree XObject

See Also:
Constant Field Values

OP_FUNCTION

public static final int OP_FUNCTION
[OP_FUNCTION] [length] [FUNC_name] {OP_ARGUMENT} [ENDOP] returns: XNodeSet XNumber XString XBoolean XRTree XObject

See Also:
Constant Field Values

LAST_NODESET_OP

static final int LAST_NODESET_OP
The last opcode for stuff that can be a nodeset.

See Also:
Constant Field Values

OP_ARGUMENT

public static final int OP_ARGUMENT
[OP_ARGUMENT] (Function argument.) [length] {expression} returns: XNodeSet XNumber XString XBoolean XRTree XObject

See Also:
Constant Field Values

OP_NUMBERLIT

public static final int OP_NUMBERLIT
[OP_NUMBERLIT] (Number literal.) [3] [index to token] returns: XString

See Also:
Constant Field Values

OP_LOCATIONPATH

public static final int OP_LOCATIONPATH
[OP_LOCATIONPATH] [length] {FROM_stepType} | {function} {predicate} [ENDOP] (Note that element and attribute namespaces and names can be wildcarded '*'.) returns: XNodeSet

See Also:
Constant Field Values

OP_PREDICATE

public static final int OP_PREDICATE
[OP_PREDICATE] [length] {expression} [ENDOP] (For safety) returns: XBoolean or XNumber

See Also:
Constant Field Values

OP_MATCHPATTERN

public static final int OP_MATCHPATTERN
[OP_MATCHPATTERN] [length] {PathExpr}+ returns: XNodeSet

See Also:
Constant Field Values

OP_LOCATIONPATHPATTERN

public static final int OP_LOCATIONPATHPATTERN
[OP_LOCATIONPATHPATTERN] [length] {FROM_stepType} | {function}{predicate} [ENDOP] returns: XNodeSet

See Also:
Constant Field Values

NODETYPE_COMMENT

public static final int NODETYPE_COMMENT
[NODETYPE_COMMENT] No size or arguments. Note: must not overlap function OP number! returns: XBoolean

See Also:
Constant Field Values

NODETYPE_TEXT

public static final int NODETYPE_TEXT
[NODETYPE_TEXT] No size or arguments. Note: must not overlap function OP number! returns: XBoolean

See Also:
Constant Field Values

NODETYPE_PI

public static final int NODETYPE_PI
[NODETYPE_PI] [index to token] Note: must not overlap function OP number! returns: XBoolean

See Also:
Constant Field Values

NODETYPE_NODE

public static final int NODETYPE_NODE
[NODETYPE_NODE] No size or arguments. Note: must not overlap function OP number! returns: XBoolean

See Also:
Constant Field Values

NODENAME

public static final int NODENAME
[NODENAME] [index to ns token or EMPTY] [index to name token] returns: XBoolean

See Also:
Constant Field Values

NODETYPE_ROOT

public static final int NODETYPE_ROOT
[NODETYPE_ROOT] No size or arguments. returns: XBoolean

See Also:
Constant Field Values

NODETYPE_ANYELEMENT

public static final int NODETYPE_ANYELEMENT
[NODETYPE_ANY] No size or arguments. returns: XBoolean

See Also:
Constant Field Values

NODETYPE_FUNCTEST

public static final int NODETYPE_FUNCTEST
[NODETYPE_ANY] No size or arguments. returns: XBoolean

See Also:
Constant Field Values

AXES_START_TYPES

public static final int AXES_START_TYPES
[FROM_stepType] [length, including predicates] [length of just the step, without the predicates] {node test} {predicates}? returns: XBoolean

See Also:
Constant Field Values

FROM_ANCESTORS

public static final int FROM_ANCESTORS
ancestor axes opcode.

See Also:
Constant Field Values

FROM_ANCESTORS_OR_SELF

public static final int FROM_ANCESTORS_OR_SELF
ancestor-or-self axes opcode.

See Also:
Constant Field Values

FROM_ATTRIBUTES

public static final int FROM_ATTRIBUTES
attribute axes opcode.

See Also:
Constant Field Values

FROM_CHILDREN

public static final int FROM_CHILDREN
children axes opcode.

See Also:
Constant Field Values

FROM_DESCENDANTS

public static final int FROM_DESCENDANTS
descendants axes opcode.

See Also:
Constant Field Values

FROM_DESCENDANTS_OR_SELF

public static final int FROM_DESCENDANTS_OR_SELF
descendants-of-self axes opcode.

See Also:
Constant Field Values

FROM_FOLLOWING

public static final int FROM_FOLLOWING
following axes opcode.

See Also:
Constant Field Values

FROM_FOLLOWING_SIBLINGS

public static final int FROM_FOLLOWING_SIBLINGS
following-siblings axes opcode.

See Also:
Constant Field Values

FROM_PARENT

public static final int FROM_PARENT
parent axes opcode.

See Also:
Constant Field Values

FROM_PRECEDING

public static final int FROM_PRECEDING
preceding axes opcode.

See Also:
Constant Field Values

FROM_PRECEDING_SIBLINGS

public static final int FROM_PRECEDING_SIBLINGS
preceding-sibling axes opcode.

See Also:
Constant Field Values

FROM_SELF

public static final int FROM_SELF
self axes opcode.

See Also:
Constant Field Values

FROM_NAMESPACE

public static final int FROM_NAMESPACE
namespace axes opcode.

See Also:
Constant Field Values

FROM_ROOT

public static final int FROM_ROOT
'/' axes opcode.

See Also:
Constant Field Values

MATCH_ATTRIBUTE

public static final int MATCH_ATTRIBUTE
For match patterns.

See Also:
Constant Field Values

MATCH_ANY_ANCESTOR

public static final int MATCH_ANY_ANCESTOR
For match patterns.

See Also:
Constant Field Values

MATCH_IMMEDIATE_ANCESTOR

public static final int MATCH_IMMEDIATE_ANCESTOR
For match patterns.

See Also:
Constant Field Values

AXES_END_TYPES

public static final int AXES_END_TYPES
The end of the axes types.

See Also:
Constant Field Values

NEXT_FREE_ID

private static final int NEXT_FREE_ID
The next free ID. Please keep this up to date.

See Also:
Constant Field Values
Constructor Detail

OpCodes

public OpCodes()