stage4/generate_c/generate_c_vardecl.cc
changeset 587 1ecf916cc397
parent 582 8495119e7271
child 592 99a284cec1f2
equal deleted inserted replaced
586:b602f0459f17 587:1ecf916cc397
   209     }
   209     }
   210     
   210     
   211     /*  signed_integer DOTDOT signed_integer */
   211     /*  signed_integer DOTDOT signed_integer */
   212     //SYM_REF2(subrange_c, lower_limit, upper_limit)
   212     //SYM_REF2(subrange_c, lower_limit, upper_limit)
   213     void *visit(subrange_c *symbol) {
   213     void *visit(subrange_c *symbol) {
   214       int dimension = extract_integer_value(symbol->upper_limit) - extract_integer_value(symbol->lower_limit) + 1;
   214       int dimension = extract_int64_value(symbol->upper_limit) - extract_int64_value(symbol->lower_limit) + 1;
   215       switch (current_mode) {
   215       switch (current_mode) {
   216         case arraysize_am:
   216         case arraysize_am:
   217           array_size *= dimension;
   217           array_size *= dimension;
   218           break;
   218           break;
   219         case typedecl_am:
   219         case typedecl_am:
   262     void *visit(array_initial_elements_c *symbol) {
   262     void *visit(array_initial_elements_c *symbol) {
   263       int initial_element_number;
   263       int initial_element_number;
   264       
   264       
   265       switch (current_mode) {
   265       switch (current_mode) {
   266         case initializationvalue_am:
   266         case initializationvalue_am:
   267           initial_element_number = extract_integer_value(symbol->integer);
   267           initial_element_number = extract_int64_value(symbol->integer);
   268           if (current_initialization_count < defined_values_count) {
   268           if (current_initialization_count < defined_values_count) {
   269             int temp_element_number = 0;
   269             int temp_element_number = 0;
   270             int diff = defined_values_count - current_initialization_count;
   270             int diff = defined_values_count - current_initialization_count;
   271             if (diff <= initial_element_number)
   271             if (diff <= initial_element_number)
   272               temp_element_number = initial_element_number - diff;
   272               temp_element_number = initial_element_number - diff;
  1405 }
  1405 }
  1406 
  1406 
  1407 /*  signed_integer DOTDOT signed_integer */
  1407 /*  signed_integer DOTDOT signed_integer */
  1408 //SYM_REF2(subrange_c, lower_limit, upper_limit)
  1408 //SYM_REF2(subrange_c, lower_limit, upper_limit)
  1409 void *visit(subrange_c *symbol) {
  1409 void *visit(subrange_c *symbol) {
  1410   long long dimension = extract_integer_value(symbol->upper_limit) - extract_integer_value(symbol->lower_limit) + 1;
  1410   long long dimension = extract_int64_value(symbol->upper_limit) - extract_int64_value(symbol->lower_limit) + 1;
  1411   s4o.print("_");
  1411   s4o.print("_");
  1412   print_integer(dimension);
  1412   print_integer(dimension);
  1413   return NULL;
  1413   return NULL;
  1414 }
  1414 }
  1415 
  1415