org.apache.xalan.xsltc.compiler

Class XPathParser


public class XPathParser
extends java_cup.runtime.lr_parser

CUP v0.10k generated parser.
Version:
Thu Nov 22 16:41:50 EST 2007

Field Summary

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

Constructor Summary

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

Method Summary

int
EOF_sym()
EOF Symbol index.
short[][]
action_table()
Access to parse-action table.
void
addError(ErrorMsg error)
org.apache.xalan.xsltc.compiler.StepPattern
createStepPattern(int axis, Object test, 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, Stack stack, int top)
Invoke a user supplied parse action.
int
error_sym()
error Symbol index.
int
findNodeType(int axis, Object test)
int
getLineNumber()
org.apache.xalan.xsltc.compiler.QName
getQName(String namespace, String prefix, String localname)
org.apache.xalan.xsltc.compiler.QName
getQNameIgnoreDefaultNs(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.
Symbol
parse(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(String message, Object info)
void
report_fatal_error(String message, 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.

Field Details

DummyVarRef

public static final org.apache.xalan.xsltc.compiler.VariableRef DummyVarRef
Reference to non-existing variable.

EmptyArgs

public static final Vector EmptyArgs
Used by function calls with no args.

_symbolTable

public org.apache.xalan.xsltc.compiler.SymbolTable _symbolTable
Reference to the symbol table.

Constructor Details

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 Details

EOF_sym

public int EOF_sym()
EOF Symbol index.

action_table

public short[][] action_table()
Access to parse-action table.

addError

public final void addError(ErrorMsg error)

createStepPattern

public org.apache.xalan.xsltc.compiler.StepPattern createStepPattern(int axis,
                                                                     Object test,
                                                                     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).

do_action

public java_cup.runtime.Symbol do_action(int act_num,
                                         java_cup.runtime.lr_parser parser,
                                         Stack stack,
                                         int top)
            throws java.lang.Exception
Invoke a user supplied parse action.

error_sym

public int error_sym()
error Symbol index.

findNodeType

public int findNodeType(int axis,
                        Object test)

getLineNumber

public int getLineNumber()

getQName

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

getQNameIgnoreDefaultNs

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

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.

parse

public Symbol parse(String expression,
                    int lineNumber)
            throws 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.

production_table

public short[][] production_table()
Access to production table.

reduce_table

public short[][] reduce_table()
Access to reduce_goto table.

report_error

public void report_error(String message,
                         Object info)

report_fatal_error

public void report_fatal_error(String message,
                               Object info)

setCallsNodeset

public void setCallsNodeset(boolean flag)

setHasIdCall

public void setHasIdCall(boolean flag)

setMultiDocument

public void setMultiDocument(boolean flag)

start_production

public int start_production()
Indicates start production.

start_state

public int start_state()
Indicates start state.

Copyright B) 2006 Apache XML Project. All Rights Reserved.