org.apache.xalan.xsltc.compiler

## Class XPathParser

- java.lang.Object
- - java_cup.runtime.lr_parser
  - - org.apache.xalan.xsltc.compiler.XPathParser

    public class XPathParser
    extends java_cup.runtime.lr_parser

CUP v0.10k generated parser.

Version:
  Wed Mar 26 09:57:43 EDT 2014

### Field Summary

Fields
`org.apache.xalan.xsltc.compiler.SymbolTable` `_symbolTable` Reference to the symbol table.
`static org.apache.xalan.xsltc.compiler.VariableRef` `DummyVarRef` Reference to non-existing variable.
`static java.util.Vector` `EmptyArgs` Used by function calls with no args.

### Constructor Summary

Constructors
Constructor and Description
`XPathParser()` Default constructor.
`XPathParser(Parser parser)`
`XPathParser(java_cup.runtime.Scanner s)` Constructor which sets the default scanner.

### Method Summary

Methods
`short[][]` `action_table()` Access to parse-action table.
`void` `addError(ErrorMsg error)`
`org.apache.xalan.xsltc.compiler.StepPattern` `createStepPattern(int axis, java.lang.Object test, java.util.Vector predicates)` This method is similar to findNodeType(int, Object) except that it creates a StepPattern instead of just returning a node type.
`java_cup.runtime.Symbol` `do_action(int act_num, java_cup.runtime.lr_parser parser, java.util.Stack stack, int top)` Invoke a user supplied parse action.
`int` `EOF_sym()` `EOF` Symbol index.
`int` `error_sym()` `error` Symbol index.
`int` `findNodeType(int axis, java.lang.Object test)`
`int` `getLineNumber()`
`org.apache.xalan.xsltc.compiler.QName` `getQName(java.lang.String namespace, java.lang.String prefix, java.lang.String localname)`
`org.apache.xalan.xsltc.compiler.QName` `getQNameIgnoreDefaultNs(java.lang.String name)`
`org.apache.xalan.xsltc.compiler.RelativeLocationPath` `insertStep(org.apache.xalan.xsltc.compiler.Step step, org.apache.xalan.xsltc.compiler.RelativeLocationPath rlp)`
`boolean` `isElementAxis(int axis)` Returns true if the axis applies to elements only.
`java_cup.runtime.Symbol` `parse(java.lang.String expression, int lineNumber)` Parse the expression passed to the current scanner.
`short[][]` `production_table()` Access to production table.
`short[][]` `reduce_table()` Access to `reduce_goto` table.
`void` `report_error(java.lang.String message, java.lang.Object info)`
`void` `report_fatal_error(java.lang.String message, java.lang.Object info)`
`void` `setCallsNodeset(boolean flag)`
`void` `setHasIdCall(boolean flag)`
`void` `setMultiDocument(boolean flag)`
`int` `start_production()` Indicates start production.
`int` `start_state()` Indicates start state.

### Methods inherited from class java_cup.runtime.lr_parser

`debug_message, debug_parse, debug_reduce, debug_shift, debug_stack, done_parsing, dump_stack, getScanner, parse, scan, setScanner, syntax_error, unrecovered_syntax_error, user_init`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### EmptyArgs

    public static final java.util.Vector EmptyArgs

Used by function calls with no args.

#### DummyVarRef

    public static final org.apache.xalan.xsltc.compiler.VariableRef DummyVarRef

Reference to non-existing variable.

#### _symbolTable

    public org.apache.xalan.xsltc.compiler.SymbolTable _symbolTable

Reference to the symbol table.

### Constructor Detail

#### XPathParser

    public XPathParser()

Default constructor.

#### XPathParser

    public XPathParser(java_cup.runtime.Scanner s)

Constructor which sets the default scanner.

#### XPathParser

    public XPathParser(Parser parser)

### Method Detail

#### production_table

    public short[][] production_table()

Access to production table.

Specified by:
  `production_table` in class `java_cup.runtime.lr_parser`

#### action_table

    public short[][] action_table()

Access to parse-action table.

Specified by:
  `action_table` in class `java_cup.runtime.lr_parser`

#### reduce_table

    public short[][] reduce_table()

Access to `reduce_goto` table.

Specified by:
  `reduce_table` in class `java_cup.runtime.lr_parser`

#### do_action

    public java_cup.runtime.Symbol do_action(int act_num,
                                    java_cup.runtime.lr_parser parser,
                                    java.util.Stack stack,
                                    int top)
                                      throws java.lang.Exception

Invoke a user supplied parse action.

Specified by:
  `do_action` in class `java_cup.runtime.lr_parser`
Throws:
  `java.lang.Exception`

#### start_state

    public int start_state()

Indicates start state.

Specified by:
  `start_state` in class `java_cup.runtime.lr_parser`

#### start_production

    public int start_production()

Indicates start production.

Specified by:
  `start_production` in class `java_cup.runtime.lr_parser`

#### EOF_sym

    public int EOF_sym()

`EOF` Symbol index.

Specified by:
  `EOF_sym` in class `java_cup.runtime.lr_parser`

#### error_sym

    public int error_sym()

`error` Symbol index.

Specified by:
  `error_sym` in class `java_cup.runtime.lr_parser`

#### getLineNumber

    public int getLineNumber()

#### getQNameIgnoreDefaultNs

    public org.apache.xalan.xsltc.compiler.QName getQNameIgnoreDefaultNs(java.lang.String name)

#### getQName

    public org.apache.xalan.xsltc.compiler.QName getQName(java.lang.String namespace,
                                                 java.lang.String prefix,
                                                 java.lang.String localname)

#### setMultiDocument

    public void setMultiDocument(boolean flag)

#### setCallsNodeset

    public void setCallsNodeset(boolean flag)

#### setHasIdCall

    public void setHasIdCall(boolean flag)

#### createStepPattern

    public org.apache.xalan.xsltc.compiler.StepPattern createStepPattern(int axis,
                                                                java.lang.Object test,
                                                                java.util.Vector predicates)

This method is similar to findNodeType(int, Object) except that it creates a StepPattern instead of just returning a node type. It also differs in the way it handles "{uri}:*" and "{uri}:@*". The last two patterns are expanded as "*[namespace-uri() = 'uri']" and "@*[namespace-uri() = 'uri']", respectively. This expansion considerably simplifies the grouping of patterns in the Mode class. For this expansion to be correct, the priority of the pattern/template must be set to -0.25 (when no other predicates are present).

#### findNodeType

    public int findNodeType(int axis,
                   java.lang.Object test)

#### parse

    public java_cup.runtime.Symbol parse(java.lang.String expression,
                                int lineNumber)
                                  throws java.lang.Exception

Parse the expression passed to the current scanner. If this expression contains references to local variables and it will be compiled in an external module (not in the main class) request the current template to create a new variable stack frame.

Parameters:
  `lineNumber` - Line where the current expression is defined.
  `external` - Set to `true` if this expression is compiled in a separate module.
Throws:
  `java.lang.Exception`

#### addError

    public final void addError(ErrorMsg error)

#### report_error

    public void report_error(java.lang.String message,
                    java.lang.Object info)

Overrides:
  `report_error` in class `java_cup.runtime.lr_parser`

#### report_fatal_error

    public void report_fatal_error(java.lang.String message,
                          java.lang.Object info)

Overrides:
  `report_fatal_error` in class `java_cup.runtime.lr_parser`

#### insertStep

    public org.apache.xalan.xsltc.compiler.RelativeLocationPath insertStep(org.apache.xalan.xsltc.compiler.Step step,
                                                                  org.apache.xalan.xsltc.compiler.RelativeLocationPath rlp)

#### isElementAxis

    public boolean isElementAxis(int axis)

Returns true if the axis applies to elements only. The axes child, attribute, namespace, descendant result in non-empty nodesets only if the context node is of type element.