ist.palcom.st.ast
Class ASTBytecodeGenerator

java.lang.Object
  extended by ist.palcom.st.ast.ASTBytecodeGenerator
Direct Known Subclasses:
ASTMethodGenerator

public class ASTBytecodeGenerator
extends java.lang.Object


Field Summary
protected  int bytecode_index
           
protected  java.util.List<ist.palcom.st.ast.GeneratorLabel> labels
           
 
Constructor Summary
ASTBytecodeGenerator(int fileNameNumber)
           
 
Method Summary
protected  void add_bytecode(byte bytecode, int line_number)
           
 void add_constant(ISerializableLiteral constant, int line_number)
           
protected  void add_index(int index, int line_number)
           
 int branch_identical(int target, int line_number)
           
 int branch_if_false(int target, int line_number)
           
 int branch_if_true(int target, int line_number)
           
 int branch(int target, int line_number)
           
 void call(ASTSymbol signature, int parameters, int line_number)
           
 boolean does_only_precompilation()
           
 void dup(int line_number)
           
 java.util.List<ISerializableLiteral> get_constants()
           
 int get_maximum_stack_pointer()
           
 int get_number_of_bytecodes()
           
 void label(int target)
           
 java.util.List<ist.palcom.st.ast.GeneratorLabel> labels()
           
 void pop_argument(int argument, int context, int line_number)
           
 void pop_field(ASTSymbolUse name)
           
 void pop_local(int local, int context, int line_number)
           
 void pop(int line_number)
           
 void push_argument(int argument, int context, int line_number)
           
 void push_block(ASTBlockExpression block_method, int line_number)
           
 void push_constant(ASTLiteralUse constant)
           
 void push_field(ASTSymbol name, int line_number)
           
 void push_global(ASTSymbol name, int line_number)
           
 void push_local(int local, int context, int line_number)
           
 void return_local(int line_number)
           
 void return_non_local(int line_number)
           
 void send(ASTSymbol signature, boolean is_super_send, int line_number)
           
protected  void simulate_pop()
           
protected  void simulate_push()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bytecode_index

protected int bytecode_index

labels

protected java.util.List<ist.palcom.st.ast.GeneratorLabel> labels
Constructor Detail

ASTBytecodeGenerator

public ASTBytecodeGenerator(int fileNameNumber)
Method Detail

labels

public java.util.List<ist.palcom.st.ast.GeneratorLabel> labels()

dup

public void dup(int line_number)

push_local

public void push_local(int local,
                       int context,
                       int line_number)

push_argument

public void push_argument(int argument,
                          int context,
                          int line_number)

push_field

public void push_field(ASTSymbol name,
                       int line_number)

push_block

public void push_block(ASTBlockExpression block_method,
                       int line_number)

push_constant

public void push_constant(ASTLiteralUse constant)

push_global

public void push_global(ASTSymbol name,
                        int line_number)

pop

public void pop(int line_number)

pop_local

public void pop_local(int local,
                      int context,
                      int line_number)

pop_argument

public void pop_argument(int argument,
                         int context,
                         int line_number)

pop_field

public void pop_field(ASTSymbolUse name)

call

public void call(ASTSymbol signature,
                 int parameters,
                 int line_number)

send

public void send(ASTSymbol signature,
                 boolean is_super_send,
                 int line_number)

return_local

public void return_local(int line_number)

branch_identical

public int branch_identical(int target,
                            int line_number)

branch_if_true

public int branch_if_true(int target,
                          int line_number)

branch_if_false

public int branch_if_false(int target,
                           int line_number)

branch

public int branch(int target,
                  int line_number)

label

public void label(int target)

return_non_local

public void return_non_local(int line_number)

get_number_of_bytecodes

public int get_number_of_bytecodes()

get_constants

public java.util.List<ISerializableLiteral> get_constants()

get_maximum_stack_pointer

public int get_maximum_stack_pointer()

does_only_precompilation

public boolean does_only_precompilation()

add_constant

public void add_constant(ISerializableLiteral constant,
                         int line_number)

add_index

protected void add_index(int index,
                         int line_number)

add_bytecode

protected void add_bytecode(byte bytecode,
                            int line_number)

simulate_push

protected void simulate_push()

simulate_pop

protected void simulate_pop()