diff -r 7898ba56c7cf -r 0630cc31569f stage1_2/iec_bison.yy --- a/stage1_2/iec_bison.yy Mon Mar 11 12:54:25 2013 +0100 +++ b/stage1_2/iec_bison.yy Thu Apr 04 09:45:11 2013 +0900 @@ -3458,9 +3458,9 @@ */ en_param_declaration: en_identifier ':' BOOL ASSIGN boolean_literal - {$$ = new en_param_declaration_c($1, new bool_type_name_c(locloc(@$)), $5, new explicit_definition_c(), locloc(@$));} + {$$ = new en_param_declaration_c($1, new simple_spec_init_c(new bool_type_name_c(locloc(@3)), $5, locf(@3), locl(@5)), new explicit_definition_c(), locloc(@$));} | en_identifier ':' BOOL ASSIGN integer - {$$ = new en_param_declaration_c($1, new bool_type_name_c(locloc(@$)), $5, new explicit_definition_c(), locloc(@$));} + {$$ = new en_param_declaration_c($1, new simple_spec_init_c(new bool_type_name_c(locloc(@3)), $5, locf(@3), locl(@5)), new explicit_definition_c(), locloc(@$));} /* ERROR_CHECK_BEGIN */ | en_identifier BOOL ASSIGN boolean_literal {$$ = NULL; print_err_msg(locl(@1), locf(@2), "':' missing between variable list and specification in EN declaration."); yynerrs++;} @@ -3598,10 +3598,10 @@ fb_name_decl: /* fb_name_list ':' function_block_type_name */ fb_name_list_with_colon function_block_type_name - {$$ = new fb_name_decl_c($1, $2, NULL, locloc(@$));} + {$$ = new fb_name_decl_c($1, new fb_spec_init_c($2, NULL,locloc(@2)), locloc(@$));} /*| fb_name_list ':' function_block_type_name ASSIGN structure_initialization */ | fb_name_list_with_colon function_block_type_name ASSIGN structure_initialization - {$$ = new fb_name_decl_c($1, $2, $4, locloc(@$));} + {$$ = new fb_name_decl_c($1, new fb_spec_init_c($2, $4, locf(@2), locl(@4)), locloc(@$));} /* ERROR_CHECK_BEGIN */ | fb_name_list_with_colon ASSIGN structure_initialization {$$ = NULL; print_err_msg(locl(@1), locf(@2), "no function block type name defined in function block declaration with initialization."); yynerrs++;} @@ -4042,7 +4042,7 @@ variable_name_symtable.insert($1, prev_declared_variable_name_token); } | global_var_name ':' function_block_type_name - {$$ = new external_declaration_c($1, $3, locloc(@$)); + {$$ = new external_declaration_c($1, new fb_spec_init_c($3, NULL, locloc(@3)), locloc(@$)); variable_name_symtable.insert($1, prev_declared_fb_name_token); } /* ERROR_CHECK_BEGIN */ @@ -4136,7 +4136,7 @@ global_var_spec ':' located_var_spec_init {$$ = new global_var_decl_c($1, $3, locloc(@$));} | global_var_spec ':' function_block_type_name - {$$ = new global_var_decl_c($1, $3, locloc(@$));} + {$$ = new global_var_decl_c($1, new fb_spec_init_c($3, NULL, locloc(@3)), locloc(@$));} /* ERROR_CHECK_BEGIN */ | global_var_list located_var_spec_init {$$ = NULL; print_err_msg(locl(@1), locf(@2), "':' missing between global variable list and type specification."); yynerrs++;} @@ -5692,11 +5692,11 @@ resource_declaration: - RESOURCE {variable_name_symtable.push();direct_variable_symtable.push();} resource_name ON resource_type_name + RESOURCE {variable_name_symtable.push();direct_variable_symtable.push();} resource_name {variable_name_symtable.insert($3, prev_declared_resource_name_token);} ON resource_type_name optional_global_var_declarations single_resource_declaration END_RESOURCE - {$$ = new resource_declaration_c($3, $5, $6, $7, locloc(@$)); + {$$ = new resource_declaration_c($3, $6, $7, $8, locloc(@$)); variable_name_symtable.pop(); direct_variable_symtable.pop(); variable_name_symtable.insert($3, prev_declared_resource_name_token); @@ -8246,7 +8246,6 @@ symbol_c **tree_root_ref, bool full_token_loc_ /* error messages specify full token location */ ) { - char *libfilename = NULL; if (includedir != NULL) { @@ -8296,7 +8295,6 @@ library_element_symtable.end_value()) library_element_symtable.insert(standard_function_block_names[i], standard_function_block_name_token); - /* now parse the input file... */ #if YYDEBUG yydebug = 1;