Package org.apache.xalan.xsltc.compiler
Class Parser
java.lang.Object
org.apache.xalan.xsltc.compiler.Parser
- All Implemented Interfaces:
org.apache.bcel.generic.InstructionConstants
,Constants
,ContentHandler
- Author:
- Jacek Ambroziak, Santiago Pericas-Geertsen, G. Todd Miller, Morten Jorgensen, Erwin Bolwidt <ejb@klomp.org>
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.bcel.generic.InstructionConstants
org.apache.bcel.generic.InstructionConstants.Clinit
-
Field Summary
Fields inherited from interface org.apache.xalan.xsltc.compiler.Constants
ABSOLUTE_ITERATOR, ACC_FINAL, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_SUPER, ADD_ATTRIBUTE, ADD_ATTRIBUTE_SIG, ADD_ITERATOR, ADD_ITERATOR_SIG, ADD_PARAMETER, ADD_PARAMETER_SIG, APPLY_TEMPLATES, ATTR_SET_SIG, ATTRIBUTE_LIST_FIELD, ATTRIBUTE_LIST_IMPL_CLASS, ATTRIBUTE_LIST_IMPL_SIG, ATTRIBUTES_SIG, BASIS_LIBRARY_CLASS, BOOLEAN_CLASS, BOOLEAN_VALUE, BOOLEAN_VALUE_SIG, CACHED_NODE_LIST_ITERATOR_CLASS, CHARACTERS, CHARACTERS_SIG, CHARACTERSW, CHARACTERSW_SIG, CLEAR_ATTRIBUTES, CLEAR_ATTRIBUTES_SIG, COLLATOR_CLASS, COLLATOR_SIG, COMPILER_PACKAGE, CURRENT_NODE_LIST_FILTER, CURRENT_NODE_LIST_FILTER_SIG, CURRENT_NODE_LIST_ITERATOR, CURRENT_NODE_LIST_ITERATOR_SIG, DEFAULT_NODE_COUNTER, DEFAULT_NODE_COUNTER_SIG, DOCUMENT_PNAME, DOM_ADAPTER_CLASS, DOM_ADAPTER_SIG, DOM_FIELD, DOM_IMPL, DOM_IMPL_CLASS, DOM_IMPL_SIG, DOM_INTF, DOM_INTF_SIG, DOM_PNAME, DOUBLE_CLASS, DOUBLE_SIG, DOUBLE_VALUE, DOUBLE_VALUE_SIG, DUP_FILTERED_ITERATOR, EMPTYATTR_FIELD, EMPTYSTRING, ERROR, EXPAND_STYLESHEET_QNAME_REF, EXPAND_STYLESHEET_QNAME_SIG, FALLBACK_CLASS, FATAL, FILTER_INTERFACE, FILTER_INTERFACE_SIG, FILTER_ITERATOR, FILTER_STEP_ITERATOR, FORMAT_SYMBOLS_FIELD, GET_ATTRIBUTE_VALUE, GET_ATTRIBUTE_VALUE_SIG, GET_CHILDREN, GET_CHILDREN_SIG, GET_ELEMENT_VALUE, GET_ELEMENT_VALUE_SIG, GET_ITERATOR_SIG, GET_NODE_NAME, GET_NODE_NAME_SIG, GET_NODE_TYPE, GET_NODE_TYPE_SIG, GET_NODE_VALUE, GET_NODE_VALUE_ITERATOR, GET_NODE_VALUE_ITERATOR_SIG, GET_NODE_VALUE_SIG, GET_PARAMETER, GET_PARAMETER_SIG, GET_PARENT, GET_PARENT_SIG, GET_TYPED_CHILDREN, GET_TYPED_CHILDREN_SIG, GET_UNPARSED_ENTITY_URI, GET_UNPARSED_ENTITY_URI_SIG, HAS_ATTRIBUTE, HAS_ATTRIBUTE_SIG, HASIDCALL_INDEX, HASIDCALL_INDEX_SIG, INT_VALUE, INT_VALUE_SIG, INTEGER_CLASS, INTEGER_SIG, INTERNAL, INVOKE_METHOD, ITERATOR_FIELD_SIG, ITERATOR_PNAME, KEY_INDEX_CLASS, KEY_INDEX_ITERATOR_SIG, KEY_INDEX_SIG, LAST_INDEX, LOAD_DOCUMENT_CLASS, LOCALE_CLASS, LOCALE_SIG, LOOKUP_STYLESHEET_QNAME_NS_REF, LOOKUP_STYLESHEET_QNAME_NS_SIG, MAKE_NODE, MAKE_NODE_LIST, MAKE_NODE_LIST_SIG, MAKE_NODE_LIST_SIG2, MAKE_NODE_SIG, MAKE_NODE_SIG2, MATCHING_ITERATOR, MATH_CLASS, MULTI_DOM_CLASS, MULTI_DOM_SIG, NAMES_INDEX, NAMES_INDEX_SIG, NAMESPACE_FEATURE, NAMESPACE_INDEX, NAMESPACE_INDEX_SIG, NEXT, NEXT_SIG, NEXTID, NODE, NODE_COUNTER, NODE_COUNTER_SIG, NODE_FIELD, NODE_FIELD_SIG, NODE_ITERATOR, NODE_ITERATOR_BASE, NODE_ITERATOR_SIG, NODE_PNAME, NODE_SIG, NODE_SORT_FACTORY, NODE_SORT_FACTORY_SIG, NODE_SORT_RECORD, NODE_SORT_RECORD_SIG, NS_ANCESTORS_INDEX_SIG, NTH_ITERATOR_CLASS, OBJECT_CLASS, OBJECT_SIG, ORDER_ITERATOR, ORDER_ITERATOR_SIG, OUTPUT_BASE, OUTPUT_HANDLER, OUTPUT_HANDLER_SIG, POP_PARAM_FRAME, POP_PARAM_FRAME_SIG, POSITION_INDEX, PREFIX_URIS_ARRAY_SIG, PREFIX_URIS_IDX_SIG, PUSH_PARAM_FRAME, PUSH_PARAM_FRAME_SIG, REDIRECT_URI, RESET, RESET_SIG, RTF_INITIAL_SIZE, RUNTIME_NODE_CLASS, RUNTIME_PACKAGE, SAX_IMPL, SAX_IMPL_CLASS, SAX_IMPL_SIG, SET_START_NODE, SET_START_NODE_SIG, SINGLETON_ITERATOR, SORT_ITERATOR, SORT_ITERATOR_SIG, STATIC_CHAR_DATA_FIELD, STATIC_CHAR_DATA_FIELD_SIG, STATIC_NAMES_ARRAY_FIELD, STATIC_NAMESPACE_ARRAY_FIELD, STATIC_NS_ANCESTORS_ARRAY_FIELD, STATIC_PREFIX_URIS_ARRAY_FIELD, STATIC_PREFIX_URIS_IDX_ARRAY_FIELD, STATIC_TYPES_ARRAY_FIELD, STATIC_URIS_ARRAY_FIELD, STEP_ITERATOR_CLASS, STREAM_XML_OUTPUT, STRING, STRING_BUFFER_CLASS, STRING_BUFFER_SIG, STRING_CLASS, STRING_SIG, STRING_TO_INT, STRING_TO_INT_SIG, STRING_TO_REAL, STRING_TO_REAL_SIG, STRING_VALUE_HANDLER, STRING_VALUE_HANDLER_SIG, STRING_WRITER, STRIP_SPACE, STRIP_SPACE_INTF, STRIP_SPACE_PARAMS, STRIP_SPACE_SIG, TRANSLET_CLASS, TRANSLET_FIELD, TRANSLET_FIELD_SIG, TRANSLET_INTF, TRANSLET_INTF_SIG, TRANSLET_OUTPUT_BASE, TRANSLET_OUTPUT_INTERFACE, TRANSLET_OUTPUT_PNAME, TRANSLET_OUTPUT_SIG, TRANSLET_PNAME, TRANSLET_SIG, TRANSLET_URI, TRANSLET_VERSION_INDEX, TRANSLET_VERSION_INDEX_SIG, TYPES_INDEX, TYPES_INDEX_SIG, UNION_ITERATOR_CLASS, UNION_ITERATOR_SIG, UNSUPPORTED, URIS_INDEX, URIS_INDEX_SIG, WARNING, WRITER_SIG, XHTML_URI, XMLNS_PREFIX, XMLNS_STRING, XMLNS_URI, XSLT_PACKAGE, XSLT_URI
Fields inherited from interface org.apache.bcel.generic.InstructionConstants
AALOAD, AASTORE, ACONST_NULL, ALOAD_0, ALOAD_1, ALOAD_2, ARETURN, ARRAYLENGTH, ASTORE_0, ASTORE_1, ASTORE_2, ATHROW, BALOAD, BASTORE, bla, CALOAD, CASTORE, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DMUL, DNEG, DREM, DRETURN, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FMUL, FNEG, FREM, FRETURN, FSUB, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, ILOAD_0, ILOAD_1, ILOAD_2, IMUL, INEG, INSTRUCTIONS, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE_0, ISTORE_1, ISTORE_2, ISUB, IUSHR, IXOR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDIV, LMUL, LNEG, LOR, LREM, LRETURN, LSHL, LSHR, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, NOP, POP, POP2, RETURN, SALOAD, SASTORE, SWAP, THIS
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addParameter
(org.apache.xalan.xsltc.compiler.Param param) void
addVariable
(org.apache.xalan.xsltc.compiler.Variable var) void
characters
(char[] ch, int start, int length) SAX2: Receive notification of character data.void
createAST
(Stylesheet stylesheet) Instanciates a SAX2 parser and generate the AST from the input.boolean
elementSupported
(String namespace, String localName) void
SAX2: Receive notification of the end of a document.void
endElement
(String uri, String localname, String qname) SAX2: Receive notification of the end of an element.void
endPrefixMapping
(String prefix) SAX2: End the scope of a prefix-URI Namespace mapping.boolean
Returns true if there were any errors during compilationboolean
functionSupported
(String fname) int
org.apache.xalan.xsltc.compiler.QName
org.apache.xalan.xsltc.compiler.QName
int
org.apache.xalan.xsltc.compiler.Output
org.apache.xalan.xsltc.compiler.QName
org.apache.xalan.xsltc.compiler.QName
org.apache.xalan.xsltc.compiler.QName
org.apache.xalan.xsltc.compiler.QName
org.apache.xalan.xsltc.compiler.QName
getQName
(org.apache.xalan.xsltc.compiler.QName scope, org.apache.xalan.xsltc.compiler.QName name) org.apache.xalan.xsltc.compiler.QName
getQNameIgnoreDefaultNs
(String stringRep) org.apache.xalan.xsltc.compiler.QName
getQNameSafe
(String stringRep) org.apache.xalan.xsltc.compiler.SymbolTable
int
org.apache.xalan.xsltc.compiler.QName
getXSLTC()
void
ignorableWhitespace
(char[] ch, int start, int length) IGNORED - all ignorable whitespace is ignoredvoid
init()
org.apache.xalan.xsltc.compiler.VariableBase
lookupVariable
(org.apache.xalan.xsltc.compiler.QName name) makeInstance
(String uri, String prefix, String local, Attributes attributes) makeStylesheet
(SyntaxTreeNode element) Create an instance of theStylesheet
class, and then parse, typecheck and compile the instance.parse
(InputSource input) Parses a stylesheet and builds the internal abstract syntax treeparse
(XMLReader reader, InputSource input) Parses a stylesheet and builds the internal abstract syntax treeorg.apache.xalan.xsltc.compiler.Expression
parseExpression
(SyntaxTreeNode parent, String exp) Parse an XPath expression:org.apache.xalan.xsltc.compiler.Expression
parseExpression
(SyntaxTreeNode parent, String attr, String def) Parse an XPath expression:parsePattern
(SyntaxTreeNode parent, String pattern) Parse an XPath pattern:parsePattern
(SyntaxTreeNode parent, String attr, String def) Parse an XPath pattern:void
Prints all compile-time errorsvoid
Prints all compile-time warningsvoid
processingInstruction
(String name, String value) SAX2: Receive notification of a processing instruction.void
removeVariable
(org.apache.xalan.xsltc.compiler.QName name) void
reportError
(int category, ErrorMsg error) Common error/warning message handlervoid
setCurrentStylesheet
(Stylesheet stylesheet) void
setDocumentLocator
(Locator locator) Store the document locator to later retrieve line numbers of all elements from the stylesheetvoid
setOutput
(org.apache.xalan.xsltc.compiler.Output output) void
setTemplate
(Template template) void
void
skippedEntity
(String name) IGNORED - we do not have to do anything with skipped entitiesvoid
SAX2: Receive notification of the beginning of a document.void
startElement
(String uri, String localname, String qname, Attributes attributes) SAX2: Receive notification of the beginning of an element.void
startPrefixMapping
(String prefix, String uri) SAX2: Begin the scope of a prefix-URI Namespace mapping.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.xml.sax.ContentHandler
declaration
-
Constructor Details
-
Parser
-
-
Method Details
-
init
public void init() -
setOutput
public void setOutput(org.apache.xalan.xsltc.compiler.Output output) -
getOutput
public org.apache.xalan.xsltc.compiler.Output getOutput() -
getOutputProperties
-
addVariable
public void addVariable(org.apache.xalan.xsltc.compiler.Variable var) -
addParameter
public void addParameter(org.apache.xalan.xsltc.compiler.Param param) -
removeVariable
public void removeVariable(org.apache.xalan.xsltc.compiler.QName name) -
lookupVariable
public org.apache.xalan.xsltc.compiler.VariableBase lookupVariable(org.apache.xalan.xsltc.compiler.QName name) -
setXSLTC
-
getXSLTC
-
getCurrentImportPrecedence
public int getCurrentImportPrecedence() -
getNextImportPrecedence
public int getNextImportPrecedence() -
setCurrentStylesheet
-
getCurrentStylesheet
-
getTopLevelStylesheet
-
getQNameSafe
-
getQName
-
getQNameIgnoreDefaultNs
-
getQName
-
getQName
-
getQName
-
getQName
public org.apache.xalan.xsltc.compiler.QName getQName(org.apache.xalan.xsltc.compiler.QName scope, org.apache.xalan.xsltc.compiler.QName name) -
getUseAttributeSets
public org.apache.xalan.xsltc.compiler.QName getUseAttributeSets() -
getExtensionElementPrefixes
public org.apache.xalan.xsltc.compiler.QName getExtensionElementPrefixes() -
getExcludeResultPrefixes
public org.apache.xalan.xsltc.compiler.QName getExcludeResultPrefixes() -
makeStylesheet
Create an instance of theStylesheet
class, and then parse, typecheck and compile the instance. Must be called afterparse()
.- Throws:
CompilerException
-
createAST
Instanciates a SAX2 parser and generate the AST from the input. -
parse
Parses a stylesheet and builds the internal abstract syntax tree- Parameters:
reader
- A SAX2 SAXReader (parser)input
- A SAX2 InputSource can be passed to a SAX reader- Returns:
- The root of the abstract syntax tree
-
parse
Parses a stylesheet and builds the internal abstract syntax tree- Parameters:
input
- A SAX2 InputSource can be passed to a SAX reader- Returns:
- The root of the abstract syntax tree
-
getDocumentRoot
-
elementSupported
-
functionSupported
-
getSymbolTable
public org.apache.xalan.xsltc.compiler.SymbolTable getSymbolTable() -
getTemplate
-
setTemplate
-
getTemplateIndex
public int getTemplateIndex() -
makeInstance
-
parseExpression
public org.apache.xalan.xsltc.compiler.Expression parseExpression(SyntaxTreeNode parent, String exp) Parse an XPath expression:- Parameters:
parent
- - XSL element where the expression occuredexp
- - textual representation of the expression
-
parseExpression
public org.apache.xalan.xsltc.compiler.Expression parseExpression(SyntaxTreeNode parent, String attr, String def) Parse an XPath expression:- Parameters:
parent
- - XSL element where the expression occuredattr
- - name of this element's attribute to get expression fromdef
- - default expression (if the attribute was not found)
-
parsePattern
Parse an XPath pattern:- Parameters:
parent
- - XSL element where the pattern occuredpattern
- - textual representation of the pattern
-
parsePattern
Parse an XPath pattern:- Parameters:
parent
- - XSL element where the pattern occuredattr
- - name of this element's attribute to get pattern fromdef
- - default pattern (if the attribute was not found)
-
errorsFound
public boolean errorsFound()Returns true if there were any errors during compilation -
printErrors
public void printErrors()Prints all compile-time errors -
printWarnings
public void printWarnings()Prints all compile-time warnings -
reportError
Common error/warning message handler -
getErrors
-
getWarnings
-
startDocument
public void startDocument()SAX2: Receive notification of the beginning of a document.- Specified by:
startDocument
in interfaceContentHandler
-
endDocument
public void endDocument()SAX2: Receive notification of the end of a document.- Specified by:
endDocument
in interfaceContentHandler
-
startPrefixMapping
SAX2: Begin the scope of a prefix-URI Namespace mapping. This has to be passed on to the symbol table!- Specified by:
startPrefixMapping
in interfaceContentHandler
-
endPrefixMapping
SAX2: End the scope of a prefix-URI Namespace mapping. This has to be passed on to the symbol table!- Specified by:
endPrefixMapping
in interfaceContentHandler
-
startElement
public void startElement(String uri, String localname, String qname, Attributes attributes) throws SAXException SAX2: Receive notification of the beginning of an element. The parser may re-use the attribute list that we're passed so we clone the attributes in our own Attributes implementation- Specified by:
startElement
in interfaceContentHandler
- Throws:
SAXException
-
endElement
SAX2: Receive notification of the end of an element.- Specified by:
endElement
in interfaceContentHandler
-
characters
public void characters(char[] ch, int start, int length) SAX2: Receive notification of character data.- Specified by:
characters
in interfaceContentHandler
-
processingInstruction
SAX2: Receive notification of a processing instruction. These require special handling for stylesheet PIs.- Specified by:
processingInstruction
in interfaceContentHandler
-
ignorableWhitespace
public void ignorableWhitespace(char[] ch, int start, int length) IGNORED - all ignorable whitespace is ignored- Specified by:
ignorableWhitespace
in interfaceContentHandler
-
skippedEntity
IGNORED - we do not have to do anything with skipped entities- Specified by:
skippedEntity
in interfaceContentHandler
-
setDocumentLocator
Store the document locator to later retrieve line numbers of all elements from the stylesheet- Specified by:
setDocumentLocator
in interfaceContentHandler
-