| Modifier and Type | Field and Description |
|---|---|
| private Expression | |
| private Type |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public void | display(int indent)
Overrides com. Displays the contents of this syntax tree node (to stdout). |
| public void | initializeVariables(ClassGenerator classGen, MethodGenerator methodGen)
The code that is generated by nested for-each loops can appear to some JVMs as if it is accessing un-initialized variables. |
| public void | parseContents(Parser parser)
Overrides com. Parse the contents of this syntax tree nodes (child nodes, XPath expressions, patterns and functions). |
| public void | translate(ClassGenerator classGen, MethodGenerator methodGen)
Overrides com. Translate this node into JVM bytecodes. |
| public Type | typeCheck(SymbolTable stable)
Overrides com. Type check all the children of this node. |
| _select | back to summary |
|---|---|
| private Expression _select | |
| _type | back to summary |
|---|---|
| private Type _type | |
| ForEach | back to summary |
|---|---|
| pack-priv ForEach() | |
| display | back to summary |
|---|---|
| public void display(int indent) Overrides com. Doc from com. Displays the contents of this syntax tree node (to stdout). This method is intended for debugging _only_, and should be overridden by all syntax tree node implementations. | |
| initializeVariables | back to summary |
|---|---|
| public void initializeVariables(ClassGenerator classGen, MethodGenerator methodGen) The code that is generated by nested for-each loops can appear to some JVMs as if it is accessing un-initialized variables. We must add some code that pushes the default variable value on the stack and pops it into the variable slot. This is done by the Variable.initialize() method. The code that we compile for this loop looks like this: initialize iterator initialize variables <-- HERE!!! goto Iterate Loop: : : (code for <xsl:for-each> contents) : Iterate: node = iterator.next(); if (node != END) goto Loop | |
| parseContents | back to summary |
|---|---|
| public void parseContents(Parser parser) Overrides com. Doc from com. Parse the contents of this syntax tree nodes (child nodes, XPath expressions, patterns and functions). The default behaviour is to parser the syntax tree node's children (since there are no common expressions, patterns, etc. that can be handled in this base class. | |
| translate | back to summary |
|---|---|
| public void translate(ClassGenerator classGen, MethodGenerator methodGen) Overrides com. Doc from com. Translate this node into JVM bytecodes. | |
| typeCheck | back to summary |
|---|---|
| public Type typeCheck(SymbolTable stable) throws TypeCheckError Overrides com. Doc from com. Type check all the children of this node. | |