Defines a class to keep track of a stack for macro arguments. More...
Defines a class to keep track of a stack for macro arguments.
| typedef XalanVector<const ElemVariable*> VariablesStack::RecursionGuardStackType |
| typedef unsigned long VariablesStack::size_type |
| VariablesStack::VariablesStack | ( | MemoryManagerType & | theManager | ) | [explicit] |
Constructor for a variable stack.
| VariablesStack::~VariablesStack | ( | ) |
| size_type VariablesStack::getCurrentStackFrameIndex | ( | ) | const |
Get the top of the stack frame from where a search for a variable or param should take place.
| size_type VariablesStack::getGlobalStackFrameIndex | ( | ) | const |
Get the top of the global stack frame.
| const XObjectPtr VariablesStack::getParamVariable | ( | const XalanQName & | qname, |
| StylesheetExecutionContext & | executionContext, | ||
| bool & | fNameFound | ||
| ) |
Given a name, return a string representing the value, but don't look in the global space.
Since the variable may not yet have been evaluated, this may return a null XObjectPtr.
| theName | name of variable |
| exeuctionContext | the current execution context |
| fNameFound | set to true if the name was found, false if not. |
| size_type VariablesStack::getStackSize | ( | ) | const |
| const XObjectPtr VariablesStack::getVariable | ( | const XalanQName & | qname, |
| StylesheetExecutionContext & | executionContext, | ||
| bool & | fNameFound | ||
| ) |
Given a name, find the corresponding XObject.
If the variable exists, but has not yet been evaluated, the variable will be evaluated and the result returned. This may return a null XObjectPtr, if the variable was not found.
| qname | name of variable |
| exeuctionContext | the current execution context |
| fNameFound | set to true if the name was found, false if not. |
| void VariablesStack::markGlobalStackFrame | ( | ) |
Mark the top of the global stack frame.
| void VariablesStack::popContextMarker | ( | ) |
Pop the current context from the current context stack.
| void VariablesStack::popElementFrame | ( | ) |
Pop a frame marker for an element.
| elem | the element |
| void VariablesStack::pushContextMarker | ( | ) |
Push a context marker onto the stack to let us know when to stop searching for a var.
| caller | caller node |
| sourceNode | source node |
| void VariablesStack::pushElementFrame | ( | const ElemTemplateElement * | elem | ) |
Push a frame marker for an element.
| elem | the element |
| void VariablesStack::pushParams | ( | const ParamsVectorType & | theParams | ) |
Push the provided objects as parameters.
You must call popContextMarker() when you are done with the arguments.
| theParam | The vector containing the parameters. |
| void VariablesStack::pushVariable | ( | const XalanQName & | name, |
| const ElemVariable * | var, | ||
| const ElemTemplateElement * | e | ||
| ) |
Push a named variable onto the processor variable stack.
Don't forget to call startContext before pushing a series of arguments for a given template.
| name | name of variable |
| val | pointer to ElemVariable |
| e | element marker for variable |
| void VariablesStack::pushVariable | ( | const XalanQName & | name, |
| const XObjectPtr & | val, | ||
| const ElemTemplateElement * | e | ||
| ) |
Push a named variable onto the processor variable stack.
Don't forget to call startContext before pushing a series of arguments for a given template.
| name | name of variable |
| val | pointer to XObject value |
| e | element marker for variable |
| void VariablesStack::reset | ( | ) |
Reset the stack.
| void VariablesStack::resetParams | ( | ) |
Reset all params in the current stack frame.
| void VariablesStack::setCurrentStackFrameIndex | ( | size_type | currentStackFrameIndex = ~0u | ) |
Set the top of the stack frame from where a search for a variable or param should take place.
Calling with no parameter will cause the index to be set to the size of the stack.
| currentStackFrameIndex | new value of index |
| void VariablesStack::start | ( | ) |
Mark the top of the stack.
| void VariablesStack::unmarkGlobalStackFrame | ( | ) |
Clear the marking of the global stack frame.
friend class CommitPushElementFrame [friend] |
friend class CommitPushParams [friend] |
friend class EnsurePop [friend] |
friend class PushParamFunctor [friend] |
friend class SetAndRestoreForceGlobalSearch [friend] |
Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.
|
Xalan-C++ XSLT Processor Version 1.10 |
|
|