Defines a class to keep track of a stack for macro arguments.
More...
#include <xalanc/XSLT/VariablesStack.hpp>
|
| VariablesStack (MemoryManager &theManager) |
| Constructor for a variable stack. More...
|
|
| ~VariablesStack () |
|
void | reset () |
| Reset the stack. More...
|
|
void | pushElementFrame (const ElemTemplateElement *elem) |
| Push a frame marker for an element. More...
|
|
void | popElementFrame () |
| Pop a frame marker for an element. More...
|
|
void | pushContextMarker () |
| Push a context marker onto the stack to let us know when to stop searching for a var. More...
|
|
void | popContextMarker () |
| Pop the current context from the current context stack. More...
|
|
void | pushParams (const ParamsVectorType &theParams) |
| Push the provided objects as parameters. More...
|
|
const XObjectPtr | 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. More...
|
|
const XObjectPtr | getVariable (const XalanQName &qname, StylesheetExecutionContext &executionContext, bool &fNameFound) |
| Given a name, find the corresponding XObject. More...
|
|
void | pushVariable (const XalanQName &name, const ElemVariable *var, const ElemTemplateElement *e) |
| Push a named variable onto the processor variable stack. More...
|
|
void | pushVariable (const XalanQName &name, const XObjectPtr &val, const ElemTemplateElement *e) |
| Push a named variable onto the processor variable stack. More...
|
|
void | start () |
| Mark the top of the stack. More...
|
|
void | resetParams () |
| Reset all params in the current stack frame. More...
|
|
void | markGlobalStackFrame () |
| Mark the top of the global stack frame. More...
|
|
void | unmarkGlobalStackFrame () |
| Clear the marking of the global stack frame. More...
|
|
void | setCurrentStackFrameIndex (size_type currentStackFrameIndex=~0u) |
| Set the top of the stack frame from where a search for a variable or param should take place. More...
|
|
size_type | getCurrentStackFrameIndex () const |
| Get the top of the stack frame from where a search for a variable or param should take place. More...
|
|
size_type | getGlobalStackFrameIndex () const |
| Get the top of the global stack frame. More...
|
|
size_type | getStackSize () const |
|
Defines a class to keep track of a stack for macro arguments.
Definition at line 60 of file VariablesStack.hpp.
◆ ElemTemplateElementStackType
◆ ParamsVectorType
◆ RecursionGuardStackType
◆ size_type
◆ VariableStackStackType
◆ anonymous enum
◆ VariablesStack()
xalanc::VariablesStack::VariablesStack |
( |
MemoryManager & |
theManager | ) |
|
|
explicit |
Constructor for a variable stack.
◆ ~VariablesStack()
xalanc::VariablesStack::~VariablesStack |
( |
| ) |
|
◆ getCurrentStackFrameIndex()
size_type xalanc::VariablesStack::getCurrentStackFrameIndex |
( |
| ) |
const |
|
inline |
Get the top of the stack frame from where a search for a variable or param should take place.
- Returns
- current value of index
Definition at line 281 of file VariablesStack.hpp.
◆ getGlobalStackFrameIndex()
size_type xalanc::VariablesStack::getGlobalStackFrameIndex |
( |
| ) |
const |
|
inline |
Get the top of the global stack frame.
- Returns
- current value of index
Definition at line 292 of file VariablesStack.hpp.
◆ getParamVariable()
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.
- Parameters
-
theName | name of variable |
exeuctionContext | the current execution context |
fNameFound | set to true if the name was found, false if not. |
- Returns
- pointer to XObject for variable
Definition at line 170 of file VariablesStack.hpp.
◆ getStackSize()
size_type xalanc::VariablesStack::getStackSize |
( |
| ) |
const |
|
inline |
◆ getVariable()
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.
- Parameters
-
qname | name of variable |
exeuctionContext | the current execution context |
fNameFound | set to true if the name was found, false if not. |
- Returns
- pointer to the corresponding XObject
Definition at line 190 of file VariablesStack.hpp.
◆ markGlobalStackFrame()
void xalanc::VariablesStack::markGlobalStackFrame |
( |
| ) |
|
Mark the top of the global stack frame.
◆ popContextMarker()
void xalanc::VariablesStack::popContextMarker |
( |
| ) |
|
Pop the current context from the current context stack.
◆ popElementFrame()
void xalanc::VariablesStack::popElementFrame |
( |
| ) |
|
Pop a frame marker for an element.
- Parameters
-
◆ pushContextMarker()
void xalanc::VariablesStack::pushContextMarker |
( |
| ) |
|
Push a context marker onto the stack to let us know when to stop searching for a var.
- Parameters
-
caller | caller node |
sourceNode | source node |
◆ pushElementFrame()
Push a frame marker for an element.
- Parameters
-
◆ pushParams()
Push the provided objects as parameters.
You must call popContextMarker() when you are done with the arguments.
- Parameters
-
theParam | The vector containing the parameters. |
◆ pushVariable() [1/2]
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.
- Parameters
-
name | name of variable |
val | pointer to ElemVariable |
e | element marker for variable |
◆ pushVariable() [2/2]
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.
- Parameters
-
name | name of variable |
val | pointer to XObject value |
e | element marker for variable |
◆ reset()
void xalanc::VariablesStack::reset |
( |
| ) |
|
◆ resetParams()
void xalanc::VariablesStack::resetParams |
( |
| ) |
|
Reset all params in the current stack frame.
◆ setCurrentStackFrameIndex()
void xalanc::VariablesStack::setCurrentStackFrameIndex |
( |
size_type |
currentStackFrameIndex = ~0u | ) |
|
|
inline |
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.
- Parameters
-
currentStackFrameIndex | new value of index |
Definition at line 260 of file VariablesStack.hpp.
◆ start()
void xalanc::VariablesStack::start |
( |
| ) |
|
Mark the top of the stack.
◆ unmarkGlobalStackFrame()
void xalanc::VariablesStack::unmarkGlobalStackFrame |
( |
| ) |
|
Clear the marking of the global stack frame.
◆ CommitPushElementFrame
friend class CommitPushElementFrame |
|
friend |
◆ CommitPushParams
friend class CommitPushParams |
|
friend |
◆ EnsurePop
◆ PushParamFunctor
◆ SetAndRestoreForceGlobalSearch
friend class SetAndRestoreForceGlobalSearch |
|
friend |
The documentation for this class was generated from the following file: