Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

suif_factory.h File Reference


Compounds

class SuifObjectFactory

Defines

#define SUIF_FACTORY_H

Functions

VoidType* create_void_type (SuifEnv *env,IInteger bit_size,int bit_alignment,const LString & name= emptyLString)
NumericType* create_numeric_type (SuifEnv *env,IInteger bit_size,int bit_alignment,const LString & name= emptyLString)
BooleanType* create_boolean_type (SuifEnv *env,IInteger bit_size,int bit_alignment,const LString & name= emptyLString)
IntegerType* create_integer_type (SuifEnv *env,IInteger bit_size,int bit_alignment,bool is_signed,const LString & name= emptyLString)
FloatingPointType* create_floating_point_type (SuifEnv *env,IInteger bit_size,int bit_alignment,const LString & name= emptyLString)
EnumeratedType* create_enumerated_type (SuifEnv *env,IInteger bit_size,int bit_alignment,bool is_signed,const LString & name= emptyLString)
PointerType* create_pointer_type (SuifEnv *env,IInteger bit_size,int bit_alignment,Type* reference_type,const LString & name= emptyLString)
ReferenceType* create_reference_type (SuifEnv *env,IInteger bit_size,int bit_alignment,Type* reference_type,const LString & name= emptyLString)
ArrayType* create_array_type (SuifEnv *env,IInteger bit_size,int bit_alignment,QualifiedType* element_type,Expression* sf_owned lower_bound,Expression* sf_owned upper_bound,const LString & name= emptyLString)
MultiDimArrayType* create_multi_dim_array_type (SuifEnv *env,IInteger bit_size,int bit_alignment,QualifiedType* element_type,const LString & name= emptyLString)
GroupType* create_group_type (SuifEnv *env,IInteger bit_size,int bit_alignment,const LString & name= emptyLString,bool is_complete= 0,GroupSymbolTable* sf_owned group_symbol_table= 0)
StructType* create_struct_type (SuifEnv *env,IInteger bit_size,int bit_alignment,const LString & name= emptyLString,bool is_complete= 0,GroupSymbolTable* sf_owned group_symbol_table= 0)
UnionType* create_union_type (SuifEnv *env,IInteger bit_size,int bit_alignment,const LString & name= emptyLString,bool is_complete= 0,GroupSymbolTable* sf_owned group_symbol_table= 0)
CProcedureType* create_c_procedure_type (SuifEnv *env,DataType* result_type,bool has_varargs,bool arguments_known,int bit_alignment,const LString & name= emptyLString)
FieldSymbol* create_field_symbol (SuifEnv *env,QualifiedType* type,Expression* sf_owned bit_offset,const LString & name= emptyLString,bool is_address_taken= false)
NestingVariableSymbol* create_nesting_variable_symbol (SuifEnv *env,QualifiedType* type,NestingVariableSymbol* super_variable,Expression* sf_owned bit_offset,const LString & name= emptyLString,bool is_address_taken= false)
EvalStatement* create_eval_statement (SuifEnv *env)
CallStatement* create_call_statement (SuifEnv *env,VariableSymbol* destination,Expression* sf_owned callee_address)
IfStatement* create_if_statement (SuifEnv *env,Expression* sf_owned condition,Statement* sf_owned then_part,Statement* sf_owned else_part= 0)
WhileStatement* create_while_statement (SuifEnv *env,Expression* sf_owned condition,Statement* sf_owned body,CodeLabelSymbol* break_label= 0,CodeLabelSymbol* continue_label= 0)
DoWhileStatement* create_do_while_statement (SuifEnv *env,Expression* sf_owned condition,Statement* sf_owned body,CodeLabelSymbol* break_label= 0,CodeLabelSymbol* continue_label= 0)
ForStatement* create_for_statement (SuifEnv *env,VariableSymbol* index,Expression* sf_owned lower_bound,Expression* sf_owned upper_bound,Expression* sf_owned step,const LString & comparison_opcode,Statement* sf_owned body,Statement* sf_owned pre_pad= 0,CodeLabelSymbol* break_label= 0,CodeLabelSymbol* continue_label= 0)
ScopeStatement* create_scope_statement (SuifEnv *env,Statement* sf_owned body= 0,SymbolTable* sf_owned symbol_table= 0,DefinitionBlock* sf_owned definition_block= 0)
VaStartStatement* create_va_start_statement (SuifEnv *env,Expression* sf_owned ap_address,ParameterSymbol* parmn)
VaStartOldStatement* create_va_start_old_statement (SuifEnv *env,Expression* sf_owned ap_address)
VaEndStatement* create_va_end_statement (SuifEnv *env,Expression* sf_owned ap_address)
StoreStatement* create_store_statement (SuifEnv *env,Expression* sf_owned value,Expression* sf_owned destination_address)
StoreVariableStatement* create_store_variable_statement (SuifEnv *env,VariableSymbol* destination,Expression* sf_owned value)
ReturnStatement* create_return_statement (SuifEnv *env,Expression* sf_owned return_value)
JumpStatement* create_jump_statement (SuifEnv *env,CodeLabelSymbol* target)
JumpIndirectStatement* create_jump_indirect_statement (SuifEnv *env,Expression* sf_owned target)
BranchStatement* create_branch_statement (SuifEnv *env,Expression* sf_owned decision_operand,CodeLabelSymbol* target)
MultiWayBranchStatement* create_multi_way_branch_statement (SuifEnv *env,Expression* sf_owned decision_operand,CodeLabelSymbol* default_target)
LabelLocationStatement* create_label_location_statement (SuifEnv *env,CodeLabelSymbol* defined_label)
MarkStatement* create_mark_statement (SuifEnv *env)
BinaryExpression* create_binary_expression (SuifEnv *env,DataType* result_type,const LString & opcode,Expression* sf_owned source1,Expression* sf_owned source2)
UnaryExpression* create_unary_expression (SuifEnv *env,DataType* result_type,const LString & opcode,Expression* sf_owned source)
SelectExpression* create_select_expression (SuifEnv *env,DataType* result_type,Expression* sf_owned selector,Expression* sf_owned selection1,Expression* sf_owned selection2)
MultiDimArrayExpression* create_multi_dim_array_expression (SuifEnv *env,DataType* result_type,Expression* sf_owned array_address,Expression* sf_owned offset)
ArrayReferenceExpression* create_array_reference_expression (SuifEnv *env,DataType* result_type,Expression* sf_owned base_array_address,Expression* sf_owned index)
FieldAccessExpression* create_field_access_expression (SuifEnv *env,DataType* result_type,Expression* sf_owned base_group_address,FieldSymbol* field)
VaArgExpression* create_va_arg_expression (SuifEnv *env,DataType* result_type,Expression* sf_owned ap_address)
LoadExpression* create_load_expression (SuifEnv *env,DataType* result_type,Expression* sf_owned source_address)
LoadVariableExpression* create_load_variable_expression (SuifEnv *env,DataType* result_type,VariableSymbol* source)
SymbolAddressExpression* create_symbol_address_expression (SuifEnv *env,DataType* result_type,Symbol* addressed_symbol)
LoadValueBlockExpression* create_load_value_block_expression (SuifEnv *env,DataType* result_type,ValueBlock* sf_owned value_block)
ExpressionValueBlock* create_expression_value_block (SuifEnv *env,Expression* sf_owned expression)
MultiValueBlock* create_multi_value_block (SuifEnv *env,DataType* type)
RepeatValueBlock* create_repeat_value_block (SuifEnv *env,int num_repetitions,ValueBlock* sf_owned sub_block,DataType* type)
UndefinedValueBlock* create_undefined_value_block (SuifEnv *env,DataType* type)
GroupSymbolTable* create_group_symbol_table (SuifEnv *env,SymbolTable* explicit_super_scope= 0)
TargetInformationBlock* create_target_information_block (SuifEnv *env,const LString & pointer_size_calculation_rule= LString(""),const LString & pointer_alignment_calculation_rule= LString(""),const LString & array_alignment_calculation_rule= LString(""),const LString & group_alignment_calculation_rule= LString(""),const LString & procedure_alignment_calculation_rule= LString(""),const LString & integer_representation_rule= LString(""),const LString & floating_point_representation_rule= LString(""),bool is_big_endian= 0,IInteger byte_size= 0,IntegerType* word_type= 0,BooleanType* default_boolean_type= 0,VoidType* default_void_type= 0,bool pointer_size_fixed= 0,IInteger pointer_size= 0,bool pointer_alignment_fixed= 0,int pointer_alignment= 0,bool array_alignment_calculation_is_standard= 0,int array_alignment_minimum= 0,bool group_alignment_calculation_is_standard= 0,int group_alignment_minimum= 0,bool procedure_alignment_fixed= 0,int procedure_alignment= 0,bool integer_representation_is_twos_complement= 0)
CInformationBlock* create_c_information_block (SuifEnv *env,const LString & va_start_builtin= LString(""),const LString & va_start_old_builtin= LString(""),const LString & va_arg_builtin= LString(""),const LString & va_end_builtin= LString(""),IntegerType* signed_char_type= 0,IntegerType* unsigned_char_type= 0,IntegerType* char_type= 0,IntegerType* signed_short_type= 0,IntegerType* unsigned_short_type= 0,IntegerType* signed_int_type= 0,IntegerType* unsigned_int_type= 0,IntegerType* signed_long_type= 0,IntegerType* unsigned_long_type= 0,IntegerType* signed_long_long_type= 0,IntegerType* unsigned_long_long_type= 0,FloatingPointType* float_type= 0,FloatingPointType* double_type= 0,FloatingPointType* long_double_type= 0,Type* file_type= 0,IntegerType* ptrdiff_t_type= 0,IntegerType* size_t_type= 0,Type* va_list_type= 0,bool plain_bit_field_is_signed= 0)


Define Documentation

#define SUIF_FACTORY_H


Function Documentation

VoidType * create_void_type (SuifEnv * env, IInteger bit_size, int bit_alignment, const LString & name = emptyLString)

NumericType * create_numeric_type (SuifEnv * env, IInteger bit_size, int bit_alignment, const LString & name = emptyLString)

BooleanType * create_boolean_type (SuifEnv * env, IInteger bit_size, int bit_alignment, const LString & name = emptyLString)

IntegerType * create_integer_type (SuifEnv * env, IInteger bit_size, int bit_alignment, bool is_signed, const LString & name = emptyLString)

FloatingPointType * create_floating_point_type (SuifEnv * env, IInteger bit_size, int bit_alignment, const LString & name = emptyLString)

EnumeratedType * create_enumerated_type (SuifEnv * env, IInteger bit_size, int bit_alignment, bool is_signed, const LString & name = emptyLString)

PointerType * create_pointer_type (SuifEnv * env, IInteger bit_size, int bit_alignment, Type * reference_type, const LString & name = emptyLString)

ReferenceType * create_reference_type (SuifEnv * env, IInteger bit_size, int bit_alignment, Type * reference_type, const LString & name = emptyLString)

ArrayType * create_array_type (SuifEnv * env, IInteger bit_size, int bit_alignment, QualifiedType * element_type, Expression * sf_owned lower_bound, Expression * sf_owned upper_bound, const LString & name = emptyLString)

MultiDimArrayType * create_multi_dim_array_type (SuifEnv * env, IInteger bit_size, int bit_alignment, QualifiedType * element_type, const LString & name = emptyLString)

GroupType * create_group_type (SuifEnv * env, IInteger bit_size, int bit_alignment, const LString & name = emptyLString, bool is_complete = 0, GroupSymbolTable * sf_owned group_symbol_table = 0)

StructType * create_struct_type (SuifEnv * env, IInteger bit_size, int bit_alignment, const LString & name = emptyLString, bool is_complete = 0, GroupSymbolTable * sf_owned group_symbol_table = 0)

UnionType * create_union_type (SuifEnv * env, IInteger bit_size, int bit_alignment, const LString & name = emptyLString, bool is_complete = 0, GroupSymbolTable * sf_owned group_symbol_table = 0)

CProcedureType * create_c_procedure_type (SuifEnv * env, DataType * result_type, bool has_varargs, bool arguments_known, int bit_alignment, const LString & name = emptyLString)

FieldSymbol * create_field_symbol (SuifEnv * env, QualifiedType * type, Expression * sf_owned bit_offset, const LString & name = emptyLString, bool is_address_taken = false)

NestingVariableSymbol * create_nesting_variable_symbol (SuifEnv * env, QualifiedType * type, NestingVariableSymbol * super_variable, Expression * sf_owned bit_offset, const LString & name = emptyLString, bool is_address_taken = false)

EvalStatement * create_eval_statement (SuifEnv * env)

CallStatement * create_call_statement (SuifEnv * env, VariableSymbol * destination, Expression * sf_owned callee_address)

IfStatement * create_if_statement (SuifEnv * env, Expression * sf_owned condition, Statement * sf_owned then_part, Statement * sf_owned else_part = 0)

WhileStatement * create_while_statement (SuifEnv * env, Expression * sf_owned condition, Statement * sf_owned body, CodeLabelSymbol * break_label = 0, CodeLabelSymbol * continue_label = 0)

DoWhileStatement * create_do_while_statement (SuifEnv * env, Expression * sf_owned condition, Statement * sf_owned body, CodeLabelSymbol * break_label = 0, CodeLabelSymbol * continue_label = 0)

ForStatement * create_for_statement (SuifEnv * env, VariableSymbol * index, Expression * sf_owned lower_bound, Expression * sf_owned upper_bound, Expression * sf_owned step, const LString & comparison_opcode, Statement * sf_owned body, Statement * sf_owned pre_pad = 0, CodeLabelSymbol * break_label = 0, CodeLabelSymbol * continue_label = 0)

ScopeStatement * create_scope_statement (SuifEnv * env, Statement * sf_owned body = 0, SymbolTable * sf_owned symbol_table = 0, DefinitionBlock * sf_owned definition_block = 0)

VaStartStatement * create_va_start_statement (SuifEnv * env, Expression * sf_owned ap_address, ParameterSymbol * parmn)

VaStartOldStatement * create_va_start_old_statement (SuifEnv * env, Expression * sf_owned ap_address)

VaEndStatement * create_va_end_statement (SuifEnv * env, Expression * sf_owned ap_address)

StoreStatement * create_store_statement (SuifEnv * env, Expression * sf_owned value, Expression * sf_owned destination_address)

StoreVariableStatement * create_store_variable_statement (SuifEnv * env, VariableSymbol * destination, Expression * sf_owned value)

ReturnStatement * create_return_statement (SuifEnv * env, Expression * sf_owned return_value)

JumpStatement * create_jump_statement (SuifEnv * env, CodeLabelSymbol * target)

JumpIndirectStatement * create_jump_indirect_statement (SuifEnv * env, Expression * sf_owned target)

BranchStatement * create_branch_statement (SuifEnv * env, Expression * sf_owned decision_operand, CodeLabelSymbol * target)

MultiWayBranchStatement * create_multi_way_branch_statement (SuifEnv * env, Expression * sf_owned decision_operand, CodeLabelSymbol * default_target)

LabelLocationStatement * create_label_location_statement (SuifEnv * env, CodeLabelSymbol * defined_label)

MarkStatement * create_mark_statement (SuifEnv * env)

BinaryExpression * create_binary_expression (SuifEnv * env, DataType * result_type, const LString & opcode, Expression * sf_owned source1, Expression * sf_owned source2)

UnaryExpression * create_unary_expression (SuifEnv * env, DataType * result_type, const LString & opcode, Expression * sf_owned source)

SelectExpression * create_select_expression (SuifEnv * env, DataType * result_type, Expression * sf_owned selector, Expression * sf_owned selection1, Expression * sf_owned selection2)

MultiDimArrayExpression * create_multi_dim_array_expression (SuifEnv * env, DataType * result_type, Expression * sf_owned array_address, Expression * sf_owned offset)

ArrayReferenceExpression * create_array_reference_expression (SuifEnv * env, DataType * result_type, Expression * sf_owned base_array_address, Expression * sf_owned index)

FieldAccessExpression * create_field_access_expression (SuifEnv * env, DataType * result_type, Expression * sf_owned base_group_address, FieldSymbol * field)

VaArgExpression * create_va_arg_expression (SuifEnv * env, DataType * result_type, Expression * sf_owned ap_address)

LoadExpression * create_load_expression (SuifEnv * env, DataType * result_type, Expression * sf_owned source_address)

LoadVariableExpression * create_load_variable_expression (SuifEnv * env, DataType * result_type, VariableSymbol * source)

SymbolAddressExpression * create_symbol_address_expression (SuifEnv * env, DataType * result_type, Symbol * addressed_symbol)

LoadValueBlockExpression * create_load_value_block_expression (SuifEnv * env, DataType * result_type, ValueBlock * sf_owned value_block)

ExpressionValueBlock * create_expression_value_block (SuifEnv * env, Expression * sf_owned expression)

MultiValueBlock * create_multi_value_block (SuifEnv * env, DataType * type)

RepeatValueBlock * create_repeat_value_block (SuifEnv * env, int num_repetitions, ValueBlock * sf_owned sub_block, DataType * type)

UndefinedValueBlock * create_undefined_value_block (SuifEnv * env, DataType * type)

GroupSymbolTable * create_group_symbol_table (SuifEnv * env, SymbolTable * explicit_super_scope = 0)

TargetInformationBlock * create_target_information_block (SuifEnv * env, const LString & pointer_size_calculation_rule = LString(""), const LString & pointer_alignment_calculation_rule = LString(""), const LString & array_alignment_calculation_rule = LString(""), const LString & group_alignment_calculation_rule = LString(""), const LString & procedure_alignment_calculation_rule = LString(""), const LString & integer_representation_rule = LString(""), const LString & floating_point_representation_rule = LString(""), bool is_big_endian = 0, IInteger byte_size = 0, IntegerType * word_type = 0, BooleanType * default_boolean_type = 0, VoidType * default_void_type = 0, bool pointer_size_fixed = 0, IInteger pointer_size = 0, bool pointer_alignment_fixed = 0, int pointer_alignment = 0, bool array_alignment_calculation_is_standard = 0, int array_alignment_minimum = 0, bool group_alignment_calculation_is_standard = 0, int group_alignment_minimum = 0, bool procedure_alignment_fixed = 0, int procedure_alignment = 0, bool integer_representation_is_twos_complement = 0)

CInformationBlock * create_c_information_block (SuifEnv * env, const LString & va_start_builtin = LString(""), const LString & va_start_old_builtin = LString(""), const LString & va_arg_builtin = LString(""), const LString & va_end_builtin = LString(""), IntegerType * signed_char_type = 0, IntegerType * unsigned_char_type = 0, IntegerType * char_type = 0, IntegerType * signed_short_type = 0, IntegerType * unsigned_short_type = 0, IntegerType * signed_int_type = 0, IntegerType * unsigned_int_type = 0, IntegerType * signed_long_type = 0, IntegerType * unsigned_long_type = 0, IntegerType * signed_long_long_type = 0, IntegerType * unsigned_long_long_type = 0, FloatingPointType * float_type = 0, FloatingPointType * double_type = 0, FloatingPointType * long_double_type = 0, Type * file_type = 0, IntegerType * ptrdiff_t_type = 0, IntegerType * size_t_type = 0, Type * va_list_type = 0, bool plain_bit_field_is_signed = 0)


Generated at Wed Apr 25 17:34:44 2001 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999