89 symbol_c *function_type_suffix, |
89 symbol_c *function_type_suffix, |
90 std::list<FUNCTION_PARAM*> param_list) { |
90 std::list<FUNCTION_PARAM*> param_list) { |
91 std::list<FUNCTION_PARAM*>::iterator pt; |
91 std::list<FUNCTION_PARAM*>::iterator pt; |
92 |
92 |
93 fcall_number++; |
93 fcall_number++; |
94 if (search_expression_type->is_literal_integer_type(function_type_prefix)) { |
94 function_type_prefix = search_expression_type->default_literal_type(function_type_prefix); |
95 function_type_prefix = (symbol_c *)&search_constant_type_c::lint_type_name; |
95 if (function_type_suffix) { |
96 } |
96 function_type_suffix = search_expression_type->default_literal_type(function_type_suffix); |
97 else if (search_expression_type->is_literal_real_type(function_type_prefix)) { |
|
98 function_type_prefix = (symbol_c *)&search_constant_type_c::lreal_type_name; |
|
99 } |
97 } |
100 |
98 |
101 s4o.print(s4o.indent_spaces); |
99 s4o.print(s4o.indent_spaces); |
102 s4o.print("inline "); |
100 s4o.print("inline "); |
103 function_type_prefix->accept(*this); |
101 function_type_prefix->accept(*this); |
104 s4o.print(" __"); |
102 s4o.print(" __"); |
105 fbname->accept(*this); |
103 fbname->accept(*this); |
106 s4o.print("_"); |
104 s4o.print("_"); |
107 function_name->accept(*this); |
105 function_name->accept(*this); |
108 if (function_type_suffix) |
106 if (function_type_suffix) { |
109 function_type_suffix->accept(*this); |
107 function_type_suffix->accept(*this); |
|
108 } |
110 s4o.print_integer(fcall_number); |
109 s4o.print_integer(fcall_number); |
111 s4o.print("("); |
110 s4o.print("("); |
112 s4o.indent_right(); |
111 s4o.indent_right(); |
113 |
112 |
114 PARAM_LIST_ITERATOR() { |
113 PARAM_LIST_ITERATOR() { |
115 if (PARAM_DIRECTION == function_param_iterator_c::direction_in) { |
114 if (PARAM_DIRECTION == function_param_iterator_c::direction_in) { |
116 if (search_expression_type->is_literal_integer_type(PARAM_TYPE)) { |
115 search_expression_type->default_literal_type(PARAM_TYPE)->accept(*this); |
117 ((symbol_c *)&search_constant_type_c::lint_type_name)->accept(*this); |
|
118 } |
|
119 else if (search_expression_type->is_literal_real_type(PARAM_TYPE)) { |
|
120 ((symbol_c *)&search_constant_type_c::lreal_type_name)->accept(*this); |
|
121 } |
|
122 else { |
|
123 PARAM_TYPE->accept(*this); |
|
124 } |
|
125 s4o.print(" "); |
116 s4o.print(" "); |
126 PARAM_NAME->accept(*this); |
117 PARAM_NAME->accept(*this); |
127 s4o.print(",\n" + s4o.indent_spaces); |
118 s4o.print(",\n" + s4o.indent_spaces); |
128 } |
119 } |
129 } |
120 } |