stage1_2/iec_bison.yy
changeset 810 d9c48ad646f1
parent 805 b737cfc92614
child 811 970c582885bf
equal deleted inserted replaced
809:9204559768f1 810:d9c48ad646f1
  3596  *       the ':' was moved to var1_list and fb_name_list!
  3596  *       the ':' was moved to var1_list and fb_name_list!
  3597  */
  3597  */
  3598 fb_name_decl:
  3598 fb_name_decl:
  3599 /*  fb_name_list ':' function_block_type_name */
  3599 /*  fb_name_list ':' function_block_type_name */
  3600   fb_name_list_with_colon function_block_type_name
  3600   fb_name_list_with_colon function_block_type_name
  3601 	{$$ = new fb_name_decl_c($1, $2, NULL, locloc(@$));}
  3601 	{$$ = new fb_name_decl_c($1, new fb_spec_init_c($2, NULL,locloc(@2)), locloc(@$));}
  3602 /*| fb_name_list ':' function_block_type_name ASSIGN structure_initialization */
  3602 /*| fb_name_list ':' function_block_type_name ASSIGN structure_initialization */
  3603 | fb_name_list_with_colon function_block_type_name ASSIGN structure_initialization
  3603 | fb_name_list_with_colon function_block_type_name ASSIGN structure_initialization
  3604 	{$$ = new fb_name_decl_c($1, $2, $4, locloc(@$));}
  3604 	{$$ = new fb_name_decl_c($1, new fb_spec_init_c($2, $4, locf(@2), locl(@4)), locloc(@$));}
  3605 /* ERROR_CHECK_BEGIN */
  3605 /* ERROR_CHECK_BEGIN */
  3606 | fb_name_list_with_colon ASSIGN structure_initialization
  3606 | fb_name_list_with_colon ASSIGN structure_initialization
  3607 	{$$ = NULL; print_err_msg(locl(@1), locf(@2), "no function block type name defined in function block declaration with initialization."); yynerrs++;}
  3607 	{$$ = NULL; print_err_msg(locl(@1), locf(@2), "no function block type name defined in function block declaration with initialization."); yynerrs++;}
  3608 | fb_name_list_with_colon function_block_type_name structure_initialization
  3608 | fb_name_list_with_colon function_block_type_name structure_initialization
  3609 	{$$ = NULL; print_err_msg(locl(@2), locf(@3), "':=' missing in function block declaration with initialization."); yynerrs++;}
  3609 	{$$ = NULL; print_err_msg(locl(@2), locf(@3), "':=' missing in function block declaration with initialization."); yynerrs++;}
  4040 | global_var_name ':' prev_declared_structure_type_name
  4040 | global_var_name ':' prev_declared_structure_type_name
  4041 	{$$ = new external_declaration_c($1, $3, locloc(@$));
  4041 	{$$ = new external_declaration_c($1, $3, locloc(@$));
  4042 	 variable_name_symtable.insert($1, prev_declared_variable_name_token);
  4042 	 variable_name_symtable.insert($1, prev_declared_variable_name_token);
  4043 	}
  4043 	}
  4044 | global_var_name ':' function_block_type_name
  4044 | global_var_name ':' function_block_type_name
  4045 	{$$ = new external_declaration_c($1, $3, locloc(@$));
  4045 	{$$ = new external_declaration_c($1, new fb_spec_init_c($3, NULL, locloc(@3)), locloc(@$));
  4046 	 variable_name_symtable.insert($1, prev_declared_fb_name_token);
  4046 	 variable_name_symtable.insert($1, prev_declared_fb_name_token);
  4047 	}
  4047 	}
  4048 /* ERROR_CHECK_BEGIN */
  4048 /* ERROR_CHECK_BEGIN */
  4049 | global_var_name simple_specification
  4049 | global_var_name simple_specification
  4050 	{$$ = NULL; print_err_msg(locl(@1), locf(@2), "':' missing between external variable name and simple specification."); yynerrs++;}
  4050 	{$$ = NULL; print_err_msg(locl(@1), locf(@2), "':' missing between external variable name and simple specification."); yynerrs++;}
  4134 	{$$ = new global_var_decl_c($1, NULL, locloc(@$));}
  4134 	{$$ = new global_var_decl_c($1, NULL, locloc(@$));}
  4135 */
  4135 */
  4136   global_var_spec ':' located_var_spec_init
  4136   global_var_spec ':' located_var_spec_init
  4137 	{$$ = new global_var_decl_c($1, $3, locloc(@$));}
  4137 	{$$ = new global_var_decl_c($1, $3, locloc(@$));}
  4138 | global_var_spec ':' function_block_type_name
  4138 | global_var_spec ':' function_block_type_name
  4139 	{$$ = new global_var_decl_c($1, $3, locloc(@$));}
  4139 	{$$ = new global_var_decl_c($1, new fb_spec_init_c($3, NULL, locloc(@3)), locloc(@$));}
  4140 /* ERROR_CHECK_BEGIN */
  4140 /* ERROR_CHECK_BEGIN */
  4141 | global_var_list located_var_spec_init
  4141 | global_var_list located_var_spec_init
  4142 	{$$ = NULL; print_err_msg(locl(@1), locf(@2), "':' missing between global variable list and type specification."); yynerrs++;}
  4142 	{$$ = NULL; print_err_msg(locl(@1), locf(@2), "':' missing between global variable list and type specification."); yynerrs++;}
  4143 | global_var_name location located_var_spec_init
  4143 | global_var_name location located_var_spec_init
  4144 	{$$ = NULL; print_err_msg(locl(@1), locf(@2), "':' missing between global variable specification and type specification."); yynerrs++;}
  4144 	{$$ = NULL; print_err_msg(locl(@1), locf(@2), "':' missing between global variable specification and type specification."); yynerrs++;}