coins.ast
Class Function

java.lang.Object
  extended bycoins.ast.ASTree
      extended bycoins.ast.Function
All Implemented Interfaces:
java.io.Serializable, Stmnt, TypeId

public class Function
extends ASTree
implements TypeId, Stmnt

Declaration of a function.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface coins.ast.TypeId
ARRAY_T, CHAR_T, CONST_T, DOUBLE_T, ELLIPSIS_T, ENUM_BEGIN, ENUM_END, FLOAT_T, FUNCTION_T, INT_T, LONG_DOUBLE_T, LONG_LONG_T, LONG_T, NO_DIMENSION_T, OFFSET_T, POINTER_T, RESTRICT_T, RETURN_T, S_AUTO, S_EXTERN, S_INLINE, S_NONE, S_REGISTER, S_STATIC, SHORT_T, SIGNED_T, SIZE_T, STRUCT_BEGIN, STRUCT_END, UNION_BEGIN, UNION_END, UNSIGNED_T, VOID_T, VOLATILE_T
 
Constructor Summary
Function(Declarator decl, Stmnt body)
          Constructs a function.
 
Method Summary
 void accept(Visitor v)
          Is a method for the visitor pattern.
 java.lang.String fileName()
          Returns the file name including the statement.
 DeclaratorList getArguments()
          Returns the argument list.
 Stmnt getBody()
          Returns the function body.
 ASTree getLeft()
          Returns an argument list.
 java.lang.String getName()
          Returns the function name.
 ASTree getRight()
          Returns a function body.
 int getStorage()
          Returns the storage specifiers.
protected  java.lang.String getTag()
          Returns the type of this node.
 byte[] getType()
          Returns the encoded function type.
 int lineNumber()
          Returns the line number of the statement.
protected  void putSeparator(java.lang.StringBuffer sbuf)
           
 void setLeft(ASTree _left)
           
 void setRight(ASTree _right)
           
 
Methods inherited from class coins.ast.ASTree
rightToString, toString, toString1
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Function

public Function(Declarator decl,
                Stmnt body)
Constructs a function.

Note: to parse a function declaration, the parser first tries to construct Declarator object but it discards that object and constructs Function object for substitution.

Parameters:
decl - the function name, the return type, and the argument list.
body - the function body.
Method Detail

getLeft

public ASTree getLeft()
Returns an argument list.

Specified by:
getLeft in class ASTree

getRight

public ASTree getRight()
Returns a function body.

Specified by:
getRight in class ASTree

setLeft

public void setLeft(ASTree _left)
Specified by:
setLeft in class ASTree

setRight

public void setRight(ASTree _right)
Specified by:
setRight in class ASTree

accept

public void accept(Visitor v)
Description copied from class: ASTree
Is a method for the visitor pattern. It calls atXXX() on the given visitor, where XXX is the class name of the node object.

Specified by:
accept in class ASTree

fileName

public java.lang.String fileName()
Description copied from interface: Stmnt
Returns the file name including the statement.

Specified by:
fileName in interface Stmnt

lineNumber

public int lineNumber()
Description copied from interface: Stmnt
Returns the line number of the statement.

Specified by:
lineNumber in interface Stmnt

getName

public java.lang.String getName()
Returns the function name.


getType

public byte[] getType()
Returns the encoded function type. See ast.TypeId


getStorage

public int getStorage()
Returns the storage specifiers. See ast.TypeId


getArguments

public DeclaratorList getArguments()
Returns the argument list.


getBody

public Stmnt getBody()
Returns the function body.


getTag

protected java.lang.String getTag()
Description copied from class: ASTree
Returns the type of this node. This method is used by toString().

Overrides:
getTag in class ASTree

putSeparator

protected void putSeparator(java.lang.StringBuffer sbuf)
Overrides:
putSeparator in class ASTree