ist.palcom.st.ast
Class ASTExpression

java.lang.Object
  extended by ist.palcom.st.ast.ASTExpression
Direct Known Subclasses:
ASTBlockExpression, ASTExitExpression, ASTIfExpression, ASTLiteralExpression, ASTLoopExpression, ASTMessageSend, ASTPrimitiveCall, ASTVariableExpression

public abstract class ASTExpression
extends java.lang.Object


Field Summary
protected static java.util.List<ASTExpression> empty_list
           
 
Constructor Summary
ASTExpression()
           
 
Method Summary
 boolean compile_assignments(ASTBytecodeGenerator generator, ASTBlock context, boolean resultWillBeDiscarded)
           
abstract  boolean compile(ASTBytecodeGenerator generator, ASTBlock context, boolean resultWillBeDiscarded)
           
 void disambiguateVariables()
           
abstract  java.util.List<ASTExpression> getSubExpressions()
          Returns a read-only list of expressions below this one in the AST
 ASTExpression inlineBlocks()
           
 boolean isInlinableBlock()
           
 void liftLocals(boolean nilThemToo)
           
 void renameVariable(ASTVariable oldV, ASTVariable newV)
           
 void set_assignments(java.util.List assignments)
           
 void setContextOfSubblocks(ASTBlock context)
           
 void setFields(ASTBlock context)
           
 boolean subexpressionsHaveVariableNamed(ASTVariable v)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

empty_list

protected static java.util.List<ASTExpression> empty_list
Constructor Detail

ASTExpression

public ASTExpression()
Method Detail

set_assignments

public void set_assignments(java.util.List assignments)

compile

public abstract boolean compile(ASTBytecodeGenerator generator,
                                ASTBlock context,
                                boolean resultWillBeDiscarded)

compile_assignments

public boolean compile_assignments(ASTBytecodeGenerator generator,
                                   ASTBlock context,
                                   boolean resultWillBeDiscarded)

inlineBlocks

public ASTExpression inlineBlocks()

setFields

public void setFields(ASTBlock context)

setContextOfSubblocks

public void setContextOfSubblocks(ASTBlock context)

isInlinableBlock

public boolean isInlinableBlock()

renameVariable

public void renameVariable(ASTVariable oldV,
                           ASTVariable newV)

subexpressionsHaveVariableNamed

public boolean subexpressionsHaveVariableNamed(ASTVariable v)

getSubExpressions

public abstract java.util.List<ASTExpression> getSubExpressions()
Returns a read-only list of expressions below this one in the AST


disambiguateVariables

public void disambiguateVariables()

liftLocals

public void liftLocals(boolean nilThemToo)