188 /* check semantics of FB call in the IL language using input operators */ |
188 /* check semantics of FB call in the IL language using input operators */ |
189 /* e.g. CU, CLK, IN, PT, SR, ... */ |
189 /* e.g. CU, CLK, IN, PT, SR, ... */ |
190 void check_il_fbcall(symbol_c *symbol, const char *input_operator); |
190 void check_il_fbcall(symbol_c *symbol, const char *input_operator); |
191 /* check the semantics of a FB or Function non-formal call */ |
191 /* check the semantics of a FB or Function non-formal call */ |
192 /* e.g. foo(1, 2, 3, 4); */ |
192 /* e.g. foo(1, 2, 3, 4); */ |
193 void check_nonformal_call(symbol_c *f_call, symbol_c *f_decl, bool use_il_defvar = false); |
193 /* If error_count pointer is NULL, print out error messages. |
|
194 * If error_count pointer is != NULL, do not print out error messages, but tally up |
|
195 * how many errors were found. |
|
196 */ |
|
197 void check_nonformal_call(symbol_c *f_call, symbol_c *f_decl, bool use_il_defvar = false, int *error_count = NULL); |
194 /* check the semantics of a FB or Function formal call */ |
198 /* check the semantics of a FB or Function formal call */ |
195 /* e.g. foo(IN1 := 1, OUT1 =>x, EN := true); */ |
199 /* e.g. foo(IN1 := 1, OUT1 =>x, EN := true); */ |
196 void check_formal_call(symbol_c *f_call, symbol_c *f_decl); |
200 /* If error_count pointer is NULL, print out error messages. |
|
201 * If error_count pointer is != NULL, do not print out error messages, but tally up |
|
202 * how many errors were found. |
|
203 */ |
|
204 void check_formal_call(symbol_c *f_call, symbol_c *f_decl, int *error_count = NULL); |
197 |
205 |
198 |
206 |
199 void *compute_standard_function_default(function_invocation_c *st_symbol, il_formal_funct_call_c *il_symbol); |
207 void *compute_standard_function_default(function_invocation_c *st_symbol, il_formal_funct_call_c *il_symbol); |
200 void *compute_standard_function_il(il_function_call_c *symbol, symbol_c *param_data_type); |
208 void *compute_standard_function_il(il_function_call_c *symbol, symbol_c *param_data_type); |
201 |
209 |
204 typedef bool (visit_expression_type_c::*is_data_type_t)(symbol_c *type_symbol); /* a pointer to a function! */ |
212 typedef bool (visit_expression_type_c::*is_data_type_t)(symbol_c *type_symbol); /* a pointer to a function! */ |
205 // symbol_c *compute_boolean_expression(symbol_c *left_exp, symbol_c *right_exp, is_data_type_t is_data_type); |
213 // symbol_c *compute_boolean_expression(symbol_c *left_exp, symbol_c *right_exp, is_data_type_t is_data_type); |
206 // symbol_c *compute_numeric_expression(symbol_c *left_exp, symbol_c *right_exp, is_data_type_t is_data_type); |
214 // symbol_c *compute_numeric_expression(symbol_c *left_exp, symbol_c *right_exp, is_data_type_t is_data_type); |
207 // symbol_c *compute_expression(symbol_c *left_exp, symbol_c *right_exp, is_data_type_t is_data_type); |
215 // symbol_c *compute_expression(symbol_c *left_exp, symbol_c *right_exp, is_data_type_t is_data_type); |
208 symbol_c *compute_expression(symbol_c *left_type, symbol_c *right_type, is_data_type_t is_data_type, |
216 symbol_c *compute_expression(symbol_c *left_type, symbol_c *right_type, is_data_type_t is_data_type, |
209 symbol_c *left_expr=NULL, symbol_c *right_expr=NULL); |
217 symbol_c *left_expr, symbol_c *right_expr); |
210 |
218 |
211 |
219 |
212 /* a helper function... */ |
220 /* a helper function... */ |
213 symbol_c *base_type(symbol_c *symbol); |
221 symbol_c *base_type(symbol_c *symbol); |
214 |
222 |