| 
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.ObjectTreeNode
ListNode
abstract class ListNode
Base class for lists of AST elements.
(See TreeNode for a discussion of AST nodes in general)
    List phyla have a distinct set of operations for constructing and
    accessing lists.  For each phylum named X there is a phylum
    called Xs (except for Classes, which is a list
    of Class_ nodes) of type List[X].
    
 
    An empty list is created with new Xs(lineno).  Elements
    may be appended to the list using either addElement()
    or appendElement().  appendElement returns
    the list itself, so calls to it may be chained, as in 
    list.appendElement(Foo).appendElement(Bar).appendElement(Baz).
    
    You can use java.util.Enumeration to iterate through
    lists.  If you are not familiar with that interface, look it up in
    the Java API documentation.  Here's an example of iterating through
    a list:
  for (Enumeration e = list.getElements(); e.hasMoreElements(); ) {
    Object n = e.nextElement();
    ... do something with n ...
  }
    Alternatively, it is possible to iterate using an integer index:
  for (int i = 0; i < list.getLength(); i++) {
    ... do something with list.getNth(i) ...
  }
    Note: nextElement() returns the value of type
    Object and getNth() returns the value of
    type TreeNode.  You will most likely need to cast it to
    the type appropriate for the list element. This is one of the
    very few cases where casting is actually necessary and
    appropriate.
| Field Summary | |
|---|---|
private  java.util.Vector | 
elements
 | 
| Fields inherited from class TreeNode | 
|---|
lineNumber | 
| Constructor Summary | |
|---|---|
protected  | 
ListNode(int lineNumber)
Builds a new list node  | 
protected  | 
ListNode(int lineNumber,
         java.util.Vector elements)
 | 
| Method Summary | |
|---|---|
 void | 
addElement(TreeNode node)
Appends an element to the list.  | 
protected  java.util.Vector | 
copyElements()
Creates a deep copy of this list.  | 
 void | 
dump(java.io.PrintStream out,
     int n)
Pretty-prints this list to this output stream.  | 
abstract  java.lang.Class | 
getElementClass()
Returns the class of list elements.  | 
 java.util.Enumeration | 
getElements()
Retreives the elements of the list as Enumeration.  | 
 int | 
getLength()
Retreives the length of the list.  | 
 TreeNode | 
getNth(int n)
Retreives nth element of the list.  | 
 java.lang.String | 
toString()
Returns a string representation of this list.  | 
| Methods inherited from class TreeNode | 
|---|
copy_AbstractSymbol, copy_Boolean, copy, dump_AbstractSymbol, dump_Boolean, dump_line, getLineNumber, set | 
| Methods inherited from class java.lang.Object | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
| Field Detail | 
|---|
private java.util.Vector elements
| Constructor Detail | 
|---|
protected ListNode(int lineNumber,
                   java.util.Vector elements)
protected ListNode(int lineNumber)
lineNumber - line in the source file from which this node came.| Method Detail | 
|---|
protected java.util.Vector copyElements()
public abstract java.lang.Class getElementClass()
public TreeNode getNth(int n)
n - the index of the element
public int getLength()
public java.util.Enumeration getElements()
public void addElement(TreeNode node)
Note: each generated subclass of ListNode also has an
 appendElement() method, which calls addElement() and returns the
 list of the appropriate type, so that it can be used like this:
 l.appendElement(i).appendElement(j).appendElement(k);
node - a node to append
public void dump(java.io.PrintStream out,
                 int n)
dump in class TreeNodeout - the output streamn - the number of spaces to indent the outputpublic java.lang.String toString()
toString in class java.lang.Object
  | 
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||