1386 generate_cc_pous_c generate_cc_pous; |
1386 generate_cc_pous_c generate_cc_pous; |
1387 |
1387 |
1388 symbol_c *current_configuration; |
1388 symbol_c *current_configuration; |
1389 |
1389 |
1390 const char *current_name; |
1390 const char *current_name; |
|
1391 const char *current_builddir; |
1391 |
1392 |
1392 unsigned long common_ticktime; |
1393 unsigned long common_ticktime; |
1393 |
1394 |
1394 public: |
1395 public: |
1395 generate_cc_c(stage4out_c *s4o_ptr): |
1396 generate_cc_c(stage4out_c *s4o_ptr, const char *builddir): |
1396 s4o(*s4o_ptr), |
1397 s4o(*s4o_ptr), |
1397 pous_s4o("POUS", "c"), |
1398 pous_s4o(builddir, "POUS", "c"), |
1398 located_variables_s4o("LOCATED_VARIABLES","h"), |
1399 located_variables_s4o(builddir, "LOCATED_VARIABLES","h"), |
1399 generate_cc_pous(&pous_s4o) { |
1400 generate_cc_pous(&pous_s4o) { |
|
1401 current_builddir = builddir; |
1400 current_configuration = NULL; |
1402 current_configuration = NULL; |
1401 } |
1403 } |
1402 |
1404 |
1403 ~generate_cc_c(void) {} |
1405 ~generate_cc_c(void) {} |
1404 |
1406 |
1470 calculate_common_ticktime_c calculate_common_ticktime; |
1472 calculate_common_ticktime_c calculate_common_ticktime; |
1471 symbol->accept(calculate_common_ticktime); |
1473 symbol->accept(calculate_common_ticktime); |
1472 common_ticktime = calculate_common_ticktime.get_ticktime(); |
1474 common_ticktime = calculate_common_ticktime.get_ticktime(); |
1473 |
1475 |
1474 symbol->configuration_name->accept(*this); |
1476 symbol->configuration_name->accept(*this); |
1475 stage4out_c config_s4o(current_name, "c"); |
1477 stage4out_c config_s4o(current_builddir, current_name, "c"); |
1476 generate_cc_config_c generate_cc_config(&config_s4o); |
1478 generate_cc_config_c generate_cc_config(&config_s4o); |
1477 symbol->accept(generate_cc_config); |
1479 symbol->accept(generate_cc_config); |
1478 |
1480 |
1479 config_s4o.print("int common_ticktime__ = "); |
1481 config_s4o.print("int common_ticktime__ = "); |
1480 config_s4o.print_integer((int)(common_ticktime / 1000000)); |
1482 config_s4o.print_integer((int)(common_ticktime / 1000000)); |
1487 return NULL; |
1489 return NULL; |
1488 } |
1490 } |
1489 |
1491 |
1490 void *visit(resource_declaration_c *symbol) { |
1492 void *visit(resource_declaration_c *symbol) { |
1491 symbol->resource_name->accept(*this); |
1493 symbol->resource_name->accept(*this); |
1492 stage4out_c resources_s4o(current_name, "c"); |
1494 stage4out_c resources_s4o(current_builddir, current_name, "c"); |
1493 generate_cc_resources_c generate_cc_resources(&resources_s4o, current_configuration, symbol, common_ticktime); |
1495 generate_cc_resources_c generate_cc_resources(&resources_s4o, current_configuration, symbol, common_ticktime); |
1494 symbol->accept(generate_cc_resources); |
1496 symbol->accept(generate_cc_resources); |
1495 return NULL; |
1497 return NULL; |
1496 } |
1498 } |
1497 |
1499 |
1498 void *visit(single_resource_declaration_c *symbol) { |
1500 void *visit(single_resource_declaration_c *symbol) { |
1499 stage4out_c resources_s4o("RESOURCE", "c"); |
1501 stage4out_c resources_s4o(current_builddir, "RESOURCE", "c"); |
1500 generate_cc_resources_c generate_cc_resources(&resources_s4o, current_configuration, symbol, common_ticktime); |
1502 generate_cc_resources_c generate_cc_resources(&resources_s4o, current_configuration, symbol, common_ticktime); |
1501 symbol->accept(generate_cc_resources); |
1503 symbol->accept(generate_cc_resources); |
1502 return NULL; |
1504 return NULL; |
1503 } |
1505 } |
1504 |
1506 |