stage1_2/iec_bison.yy
changeset 813 0630cc31569f
parent 811 970c582885bf
child 822 a7d9e0b8636b
child 823 c95f42f28b69
--- 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;