bsh
Class BSHPrimarySuffix

java.lang.Object
  |
  +--bsh.SimpleNode
        |
        +--bsh.BSHPrimarySuffix
All Implemented Interfaces:
Node, java.io.Serializable

class BSHPrimarySuffix
extends SimpleNode


Field Summary
protected  Node[] children
           
static int CLASS
           
 java.lang.String field
           
(package private)  Token firstToken
           
protected  int id
           
(package private)  java.lang.Object index
           
static int INDEX
           
(package private)  Token lastToken
           
static int NAME
           
 int operation
           
protected  Node parent
           
static int PROPERTY
           
(package private)  java.lang.String sourceFile
          the source of the text from which this was parsed
 
Constructor Summary
(package private) BSHPrimarySuffix(int id)
           
 
Method Summary
private  java.lang.Object doIndex(java.lang.Object obj, CallStack callstack, Interpreter interpreter)
           
private  java.lang.Object doName(java.lang.Object obj, CallStack callstack, Interpreter interpreter)
           
private  java.lang.Object doProperty(java.lang.Object obj, CallStack callstack, Interpreter interpreter)
           
 java.lang.Object doSuffix(java.lang.Object obj, CallStack callstack, Interpreter interpreter)
           
 void dump(java.lang.String prefix)
           
 java.lang.Object eval(CallStack callstack, Interpreter interpreter)
          This is the general signature for evaluation of a node.
 java.lang.Object eval(NameSpace namespace)
          Some nodes require only a namespace for evaluation.
 SimpleNode getChild(int i)
           
(package private) static int getIndexAux(java.lang.Object obj, CallStack callstack, Interpreter interpreter, SimpleNode callerNode)
          Just factoring out some common code for the two suffix classes...
 int getLineNumber()
          Get the line number of the starting token
 java.lang.String getSourceFile()
          Get the name of the source file (or more generally source) of the text from which this node was parsed.
 java.lang.String getText()
          Get the text of the tokens comprising this node.
 void jjtAddChild(Node n, int i)
          This method tells the node to add its argument to the node's list of children.
 void jjtClose()
          This method is called after all the child nodes have been added.
 Node jjtGetChild(int i)
          This method returns a child node.
 int jjtGetNumChildren()
          Return the number of children the node has.
 Node jjtGetParent()
           
 void jjtOpen()
          This method is called after the node has been made the current node.
 void jjtSetParent(Node n)
          This pair of methods are used to inform the node of its parent.
 void prune()
          Detach this node from its parent.
 void setSourceFile(java.lang.String sourceFile)
          Set the name of the source file (or more generally source) of the text from which this node was parsed.
 java.lang.String toString()
           
 java.lang.String toString(java.lang.String prefix)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CLASS

public static final int CLASS
See Also:
Constant Field Values

INDEX

public static final int INDEX
See Also:
Constant Field Values

NAME

public static final int NAME
See Also:
Constant Field Values

PROPERTY

public static final int PROPERTY
See Also:
Constant Field Values

operation

public int operation

index

java.lang.Object index

field

public java.lang.String field

parent

protected Node parent

children

protected Node[] children

id

protected int id

firstToken

Token firstToken

lastToken

Token lastToken

sourceFile

java.lang.String sourceFile
the source of the text from which this was parsed

Constructor Detail

BSHPrimarySuffix

BSHPrimarySuffix(int id)
Method Detail

doSuffix

public java.lang.Object doSuffix(java.lang.Object obj,
                                 CallStack callstack,
                                 Interpreter interpreter)
                          throws EvalError
EvalError

doName

private java.lang.Object doName(java.lang.Object obj,
                                CallStack callstack,
                                Interpreter interpreter)
                         throws EvalError,
                                ReflectError,
                                java.lang.reflect.InvocationTargetException
EvalError
ReflectError
java.lang.reflect.InvocationTargetException

getIndexAux

static int getIndexAux(java.lang.Object obj,
                       CallStack callstack,
                       Interpreter interpreter,
                       SimpleNode callerNode)
                throws EvalError
Just factoring out some common code for the two suffix classes... later need to complete factoring of these classes (BSHPrimarySuffix, BSHLHSPrimarySuffix)

EvalError

doIndex

private java.lang.Object doIndex(java.lang.Object obj,
                                 CallStack callstack,
                                 Interpreter interpreter)
                          throws EvalError,
                                 ReflectError
EvalError
ReflectError

doProperty

private java.lang.Object doProperty(java.lang.Object obj,
                                    CallStack callstack,
                                    Interpreter interpreter)
                             throws EvalError
EvalError

jjtOpen

public void jjtOpen()
Description copied from interface: Node
This method is called after the node has been made the current node. It indicates that child nodes can now be added to it.

Specified by:
jjtOpen in interface Node

jjtClose

public void jjtClose()
Description copied from interface: Node
This method is called after all the child nodes have been added.

Specified by:
jjtClose in interface Node

jjtSetParent

public void jjtSetParent(Node n)
Description copied from interface: Node
This pair of methods are used to inform the node of its parent.

Specified by:
jjtSetParent in interface Node

jjtGetParent

public Node jjtGetParent()
Specified by:
jjtGetParent in interface Node

jjtAddChild

public void jjtAddChild(Node n,
                        int i)
Description copied from interface: Node
This method tells the node to add its argument to the node's list of children.

Specified by:
jjtAddChild in interface Node

jjtGetChild

public Node jjtGetChild(int i)
Description copied from interface: Node
This method returns a child node. The children are numbered from zero, left to right.

Specified by:
jjtGetChild in interface Node

getChild

public SimpleNode getChild(int i)

jjtGetNumChildren

public int jjtGetNumChildren()
Description copied from interface: Node
Return the number of children the node has.

Specified by:
jjtGetNumChildren in interface Node

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

toString

public java.lang.String toString(java.lang.String prefix)

dump

public void dump(java.lang.String prefix)

prune

public void prune()
Detach this node from its parent. This is primarily useful in node serialization. (see BSHMethodDeclaration)


eval

public java.lang.Object eval(NameSpace namespace)
                      throws EvalError
Some nodes require only a namespace for evaluation.

EvalError

eval

public java.lang.Object eval(CallStack callstack,
                             Interpreter interpreter)
                      throws EvalError
This is the general signature for evaluation of a node.

EvalError

setSourceFile

public void setSourceFile(java.lang.String sourceFile)
Set the name of the source file (or more generally source) of the text from which this node was parsed.


getSourceFile

public java.lang.String getSourceFile()
Get the name of the source file (or more generally source) of the text from which this node was parsed. This will recursively search up the chain of parent nodes until a source is found or return a string indicating that the source is unknown.


getLineNumber

public int getLineNumber()
Get the line number of the starting token


getText

public java.lang.String getText()
Get the text of the tokens comprising this node.