## 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.

Field Summary
`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
`XPathParser()` Default constructor.
`XPathParser(Parser parser)`
`XPathParser(java_cup.runtime.Scanner s)` Constructor which sets the default scanner.

Method Summary
`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.
  Overrides:
    production_table in class java_cup.runtime.lr_parser

### action_table

    public short[][] action_table()

  Access to parse-action table.
  Overrides:
    action_table in class java_cup.runtime.lr_parser

### reduce_table

    public short[][] reduce_table()

  Access to `reduce_goto` table.
  Overrides:
    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.
  Overrides:
    do_action in class java_cup.runtime.lr_parser

### start_state

    public int start_state()

  Indicates start state.
  Overrides:
    start_state in class java_cup.runtime.lr_parser

### start_production

    public int start_production()

  Indicates start production.
  Overrides:
    start_production in class java_cup.runtime.lr_parser

### EOF_sym

    public int EOF_sym()

  `EOF` Symbol index.
  Overrides:
    EOF_sym in class java_cup.runtime.lr_parser

### error_sym

    public int error_sym()

  `error` Symbol index.
  Overrides:
    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.

### 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.

Copyright © 2006 Apache XML Project. All Rights Reserved.