mars.assembler
Class TokenList

java.lang.Object
  extended by mars.assembler.TokenList
All Implemented Interfaces:
Cloneable

public class TokenList
extends Object
implements Cloneable

Represents the list of tokens in a single line of MIPS code. It uses, but is not a subclass of, ArrayList.

Author:
Pete Sanderson

Constructor Summary
TokenList()
          Constructor for objects of class TokenList
 
Method Summary
 void add(Token token)
          Adds a Token object to the end of the list.
 Object clone()
          Makes clone (shallow copy) of this token list object.
 Token get(int pos)
          Returns requested token given position number (starting at 0).
 String getProcessedLine()
          Retrieve the source line String associated with this token list.
 boolean isEmpty()
          Returns empty/non-empty status of list.
 void remove(int pos)
          Removes Token object at specified list position.
 void set(int pos, Token replacement)
          Replaces token at position with different one.
 void setProcessedLine(String line)
          Use this to record the source line String for this token list after possible modification (textual substitution) during assembly preprocessing.
 int size()
          Returns number of tokens in list.
 String toString()
          Get a String representing the token list.
 String toTypeString()
          Get a String representing the sequence of token types for this list.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TokenList

public TokenList()
Constructor for objects of class TokenList

Method Detail

setProcessedLine

public void setProcessedLine(String line)
Use this to record the source line String for this token list after possible modification (textual substitution) during assembly preprocessing. The modified source will be displayed in the Text Segment Display.

Parameters:
line - The source line, possibly modified (possibly not)

getProcessedLine

public String getProcessedLine()
Retrieve the source line String associated with this token list. It may or may not have been modified during assembly preprocessing.

Returns:
The source line for this token list.

get

public Token get(int pos)
Returns requested token given position number (starting at 0).

Parameters:
pos - Position in token list.
Returns:
the requested token, or ArrayIndexOutOfBounds exception

set

public void set(int pos,
                Token replacement)
Replaces token at position with different one. Will throw ArrayIndexOutOfBounds exception if position does not exist.

Parameters:
pos - Position in token list.
replacement - Replacement token

size

public int size()
Returns number of tokens in list.

Returns:
token count.

add

public void add(Token token)
Adds a Token object to the end of the list.

Parameters:
token - Token object to be added.

remove

public void remove(int pos)
Removes Token object at specified list position. Uses ArrayList remove method.

Parameters:
pos - Position in token list. Subsequent Tokens are shifted one position left.
Throws:
IndexOutOfBoundsException - if pos is < 0 or >= size()

isEmpty

public boolean isEmpty()
Returns empty/non-empty status of list.

Returns:
true if list has no tokens, else false.

toString

public String toString()
Get a String representing the token list.

Overrides:
toString in class Object
Returns:
String version of the token list (a blank is inserted after each token).

toTypeString

public String toTypeString()
Get a String representing the sequence of token types for this list.

Returns:
String version of the token types for this list (a blank is inserted after each token type).

clone

public Object clone()
Makes clone (shallow copy) of this token list object.

Overrides:
clone in class Object
Returns:
the cloned list.