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) |