ist.palcom.st.ast
Class ASTBlock

java.lang.Object
  extended by ist.palcom.st.ast.ASTBlock

public class ASTBlock
extends java.lang.Object


Nested Class Summary
static class ASTBlock.LineNumberBytecodeIndexPair
           
 
Field Summary
 java.util.List<ASTVariable> arguments
           
 ASTBlock context
           
 java.util.List<ASTExpression> expressions
           
 java.util.List fields
           
 int fileNameNumber
           
 java.util.List<ASTVariable> locals
           
 
Constructor Summary
ASTBlock()
           
 
Method Summary
 void add_expression(ASTExpression expression)
           
 void add_local(ASTVariable local)
           
 void compile(java.lang.String signature, int fileNameNumber)
           
 void compileAsBlock(ASTBytecodeGenerator generator, ASTBlock context)
           
 boolean compileAsInline(ASTBytecodeGenerator generator, ASTBlock context, boolean resultWillBeDiscarded)
           
 void compileAsMethod(ASTBytecodeGenerator generator, ASTBlock context)
           
 void disambiguateVariable(ASTVariable v)
           
 void disambiguateVariables()
           
 int get_final_line_number()
           
 int get_initial_line_number()
           
 byte[] getBytecodes()
           
 int[] getLineNumbers()
           
 ISerializableLiteral[] getLiterals()
           
 int getMaximumExpressionStackSize()
           
 ISerializableMetaInfo[] getMetaInfo()
           
 int getNumberOfLocals()
           
 boolean hasVariableNamed(ASTVariable v)
           
 void inlineBlocks()
           
 void liftLocals(boolean nilThemToo)
           
 boolean nonrecursiveHasVariableNamed(ASTVariable v)
           
 void pop(ASTBytecodeGenerator generator, ASTVariableUse v, int depth)
           
 void push(ASTBytecodeGenerator generator, ASTVariable v, int depth, int line_number)
           
 void renameVariable(ASTVariable oldV, ASTVariable newV)
           
 void set_arguments(java.util.List<ASTVariable> arguments)
           
 void set_final_line_number(int l)
           
 void set_initial_line_number(int l)
           
 void set_line_number(int l)
           
 void setBytecode(int index, byte bytecode, int line_number)
           
 void setFields(java.util.List fields, ASTBlock context)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

locals

public java.util.List<ASTVariable> locals

expressions

public java.util.List<ASTExpression> expressions

arguments

public java.util.List<ASTVariable> arguments

context

public ASTBlock context

fields

public java.util.List fields

fileNameNumber

public int fileNameNumber
Constructor Detail

ASTBlock

public ASTBlock()
Method Detail

set_line_number

public void set_line_number(int l)

set_final_line_number

public void set_final_line_number(int l)

set_initial_line_number

public void set_initial_line_number(int l)

get_final_line_number

public int get_final_line_number()

get_initial_line_number

public int get_initial_line_number()

add_local

public void add_local(ASTVariable local)

add_expression

public void add_expression(ASTExpression expression)

set_arguments

public void set_arguments(java.util.List<ASTVariable> arguments)

hasVariableNamed

public boolean hasVariableNamed(ASTVariable v)

nonrecursiveHasVariableNamed

public boolean nonrecursiveHasVariableNamed(ASTVariable v)

liftLocals

public void liftLocals(boolean nilThemToo)

disambiguateVariables

public void disambiguateVariables()

disambiguateVariable

public void disambiguateVariable(ASTVariable v)

renameVariable

public void renameVariable(ASTVariable oldV,
                           ASTVariable newV)

push

public void push(ASTBytecodeGenerator generator,
                 ASTVariable v,
                 int depth,
                 int line_number)

pop

public void pop(ASTBytecodeGenerator generator,
                ASTVariableUse v,
                int depth)

setFields

public void setFields(java.util.List fields,
                      ASTBlock context)

compile

public void compile(java.lang.String signature,
                    int fileNameNumber)

compileAsBlock

public void compileAsBlock(ASTBytecodeGenerator generator,
                           ASTBlock context)

compileAsMethod

public void compileAsMethod(ASTBytecodeGenerator generator,
                            ASTBlock context)

compileAsInline

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

inlineBlocks

public void inlineBlocks()

setBytecode

public void setBytecode(int index,
                        byte bytecode,
                        int line_number)

getBytecodes

public byte[] getBytecodes()

getLineNumbers

public int[] getLineNumbers()

getLiterals

public ISerializableLiteral[] getLiterals()

getMaximumExpressionStackSize

public int getMaximumExpressionStackSize()

getNumberOfLocals

public int getNumberOfLocals()

getMetaInfo

public ISerializableMetaInfo[] getMetaInfo()