113 SYM_TOKEN(fixed_point_c) |
113 SYM_TOKEN(fixed_point_c) |
114 SYM_REF2(days_c, days, hours) |
114 SYM_REF2(days_c, days, hours) |
115 SYM_REF2(hours_c, hours, minutes) |
115 SYM_REF2(hours_c, hours, minutes) |
116 SYM_REF2(minutes_c, minutes, seconds) |
116 SYM_REF2(minutes_c, minutes, seconds) |
117 SYM_REF2(seconds_c, seconds, milliseconds) |
117 SYM_REF2(seconds_c, seconds, milliseconds) |
118 SYM_REF2(milliseconds_c, milliseconds, unused) |
118 SYM_REF1(milliseconds_c, milliseconds) |
119 |
119 |
120 |
120 |
121 /************************************/ |
121 /************************************/ |
122 /* B 1.2.3.2 - Time of day and Date */ |
122 /* B 1.2.3.2 - Time of day and Date */ |
123 /************************************/ |
123 /************************************/ |
124 SYM_REF2(time_of_day_c, daytime, unused) |
124 SYM_REF1(time_of_day_c, daytime) |
125 SYM_REF4(daytime_c, day_hour, day_minute, day_second, unused) |
125 SYM_REF3(daytime_c, day_hour, day_minute, day_second) |
126 SYM_REF2(date_c, date_literal, unused) |
126 SYM_REF1(date_c, date_literal) |
127 SYM_REF4(date_literal_c, year, month, day, unused) |
127 SYM_REF3(date_literal_c, year, month, day) |
128 SYM_REF2(date_and_time_c, date_literal, daytime) |
128 SYM_REF2(date_and_time_c, date_literal, daytime) |
129 |
129 |
130 |
130 |
131 /**********************/ |
131 /**********************/ |
132 /* B.1.3 - Data types */ |
132 /* B.1.3 - Data types */ |
165 |
165 |
166 /********************************/ |
166 /********************************/ |
167 /* B 1.3.3 - Derived data types */ |
167 /* B 1.3.3 - Derived data types */ |
168 /********************************/ |
168 /********************************/ |
169 /* TYPE type_declaration_list END_TYPE */ |
169 /* TYPE type_declaration_list END_TYPE */ |
170 SYM_REF2(data_type_declaration_c, type_declaration_list, unused) |
170 SYM_REF1(data_type_declaration_c, type_declaration_list) |
171 |
171 |
172 /* helper symbol for data_type_declaration */ |
172 /* helper symbol for data_type_declaration */ |
173 SYM_LIST(type_declaration_list_c) |
173 SYM_LIST(type_declaration_list_c) |
174 |
174 |
175 /* simple_type_name ':' simple_spec_init */ |
175 /* simple_type_name ':' simple_spec_init */ |
318 |
318 |
319 |
319 |
320 /*********************/ |
320 /*********************/ |
321 /* B 1.4 - Variables */ |
321 /* B 1.4 - Variables */ |
322 /*********************/ |
322 /*********************/ |
323 SYM_REF2(symbolic_variable_c, var_name, unused) |
323 SYM_REF1(symbolic_variable_c, var_name) |
324 |
324 |
325 /********************************************/ |
325 /********************************************/ |
326 /* B.1.4.1 Directly Represented Variables */ |
326 /* B.1.4.1 Directly Represented Variables */ |
327 /********************************************/ |
327 /********************************************/ |
328 SYM_TOKEN(direct_variable_c) |
328 SYM_TOKEN(direct_variable_c) |
379 /* var1_list ':' initialized_structure */ |
379 /* var1_list ':' initialized_structure */ |
380 SYM_REF2(structured_var_init_decl_c, var1_list, initialized_structure) |
380 SYM_REF2(structured_var_init_decl_c, var1_list, initialized_structure) |
381 |
381 |
382 /* fb_name_list ':' function_block_type_name ASSIGN structure_initialization */ |
382 /* fb_name_list ':' function_block_type_name ASSIGN structure_initialization */ |
383 /* structure_initialization -> may be NULL ! */ |
383 /* structure_initialization -> may be NULL ! */ |
384 SYM_REF4(fb_name_decl_c, fb_name_list, function_block_type_name, structure_initialization, unused) |
384 SYM_REF3(fb_name_decl_c, fb_name_list, function_block_type_name, structure_initialization) |
385 |
385 |
386 /* fb_name_list ',' fb_name */ |
386 /* fb_name_list ',' fb_name */ |
387 SYM_LIST(fb_name_list_c) |
387 SYM_LIST(fb_name_list_c) |
388 |
388 |
389 /* VAR_OUTPUT [RETAIN | NON_RETAIN] var_init_decl_list END_VAR */ |
389 /* VAR_OUTPUT [RETAIN | NON_RETAIN] var_init_decl_list END_VAR */ |
390 /* option -> may be NULL ! */ |
390 /* option -> may be NULL ! */ |
391 SYM_REF2(output_declarations_c, option, var_init_decl_list) |
391 SYM_REF2(output_declarations_c, option, var_init_decl_list) |
392 |
392 |
393 /* VAR_IN_OUT var_declaration_list END_VAR */ |
393 /* VAR_IN_OUT var_declaration_list END_VAR */ |
394 SYM_REF2(input_output_declarations_c, var_declaration_list, unused) |
394 SYM_REF1(input_output_declarations_c, var_declaration_list) |
395 |
395 |
396 /* helper symbol for input_output_declarations */ |
396 /* helper symbol for input_output_declarations */ |
397 /* var_declaration_list var_declaration ';' */ |
397 /* var_declaration_list var_declaration ';' */ |
398 SYM_LIST(var_declaration_list_c) |
398 SYM_LIST(var_declaration_list_c) |
399 |
399 |
406 /* VAR [CONSTANT] var_init_decl_list END_VAR */ |
406 /* VAR [CONSTANT] var_init_decl_list END_VAR */ |
407 /* option -> may be NULL ! */ |
407 /* option -> may be NULL ! */ |
408 SYM_REF2(var_declarations_c, option, var_init_decl_list) |
408 SYM_REF2(var_declarations_c, option, var_init_decl_list) |
409 |
409 |
410 /* VAR RETAIN var_init_decl_list END_VAR */ |
410 /* VAR RETAIN var_init_decl_list END_VAR */ |
411 SYM_REF2(retentive_var_declarations_c, var_init_decl_list, unused) |
411 SYM_REF1(retentive_var_declarations_c, var_init_decl_list) |
412 |
412 |
413 /* VAR [CONSTANT|RETAIN|NON_RETAIN] located_var_decl_list END_VAR */ |
413 /* VAR [CONSTANT|RETAIN|NON_RETAIN] located_var_decl_list END_VAR */ |
414 /* option -> may be NULL ! */ |
414 /* option -> may be NULL ! */ |
415 SYM_REF2(located_var_declarations_c, option, located_var_decl_list) |
415 SYM_REF2(located_var_declarations_c, option, located_var_decl_list) |
416 |
416 |
418 /* located_var_decl_list located_var_decl ';' */ |
418 /* located_var_decl_list located_var_decl ';' */ |
419 SYM_LIST(located_var_decl_list_c) |
419 SYM_LIST(located_var_decl_list_c) |
420 |
420 |
421 /* [variable_name] location ':' located_var_spec_init */ |
421 /* [variable_name] location ':' located_var_spec_init */ |
422 /* variable_name -> may be NULL ! */ |
422 /* variable_name -> may be NULL ! */ |
423 SYM_REF4(located_var_decl_c, variable_name, location, located_var_spec_init, unused) |
423 SYM_REF3(located_var_decl_c, variable_name, location, located_var_spec_init) |
424 |
424 |
425 /*| VAR_EXTERNAL [CONSTANT] external_declaration_list END_VAR */ |
425 /*| VAR_EXTERNAL [CONSTANT] external_declaration_list END_VAR */ |
426 /* option -> may be NULL ! */ |
426 /* option -> may be NULL ! */ |
427 SYM_REF2(external_var_declarations_c, option, external_declaration_list) |
427 SYM_REF2(external_var_declarations_c, option, external_declaration_list) |
428 |
428 |
447 |
447 |
448 /*| global_var_name location */ |
448 /*| global_var_name location */ |
449 SYM_REF2(global_var_spec_c, global_var_name, location) |
449 SYM_REF2(global_var_spec_c, global_var_name, location) |
450 |
450 |
451 /* AT direct_variable */ |
451 /* AT direct_variable */ |
452 SYM_REF2(location_c, direct_variable, unused) |
452 SYM_REF1(location_c, direct_variable) |
453 |
453 |
454 /*| global_var_list ',' global_var_name */ |
454 /*| global_var_list ',' global_var_name */ |
455 SYM_LIST(global_var_list_c) |
455 SYM_LIST(global_var_list_c) |
456 |
456 |
457 /* var1_list ':' single_byte_string_spec */ |
457 /* var1_list ':' single_byte_string_spec */ |
477 /* helper symbol for incompl_located_var_declarations */ |
477 /* helper symbol for incompl_located_var_declarations */ |
478 /*| incompl_located_var_decl_list incompl_located_var_decl ';' */ |
478 /*| incompl_located_var_decl_list incompl_located_var_decl ';' */ |
479 SYM_LIST(incompl_located_var_decl_list_c) |
479 SYM_LIST(incompl_located_var_decl_list_c) |
480 |
480 |
481 /* variable_name incompl_location ':' var_spec */ |
481 /* variable_name incompl_location ':' var_spec */ |
482 SYM_REF4(incompl_located_var_decl_c, variable_name, incompl_location, var_spec, unused) |
482 SYM_REF3(incompl_located_var_decl_c, variable_name, incompl_location, var_spec) |
483 |
483 |
484 /* AT incompl_location_token */ |
484 /* AT incompl_location_token */ |
485 SYM_TOKEN(incompl_location_c) |
485 SYM_TOKEN(incompl_location_c) |
486 |
486 |
487 /* intermediate helper symbol for: |
487 /* intermediate helper symbol for: |
517 |
517 |
518 /*****************************/ |
518 /*****************************/ |
519 /* B 1.5.2 - Function Blocks */ |
519 /* B 1.5.2 - Function Blocks */ |
520 /*****************************/ |
520 /*****************************/ |
521 /* FUNCTION_BLOCK derived_function_block_name io_OR_other_var_declarations function_block_body END_FUNCTION_BLOCK */ |
521 /* FUNCTION_BLOCK derived_function_block_name io_OR_other_var_declarations function_block_body END_FUNCTION_BLOCK */ |
522 SYM_REF4(function_block_declaration_c, fblock_name, var_declarations, fblock_body, unused) |
522 SYM_REF3(function_block_declaration_c, fblock_name, var_declarations, fblock_body) |
523 |
523 |
524 /* intermediate helper symbol for function_declaration */ |
524 /* intermediate helper symbol for function_declaration */ |
525 /* { io_var_declarations | other_var_declarations } */ |
525 /* { io_var_declarations | other_var_declarations } */ |
526 /* |
526 /* |
527 * NOTE: we re-use the var_declarations_list_c |
527 * NOTE: we re-use the var_declarations_list_c |
528 */ |
528 */ |
529 |
529 |
530 /* VAR_TEMP temp_var_decl_list END_VAR */ |
530 /* VAR_TEMP temp_var_decl_list END_VAR */ |
531 SYM_REF2(temp_var_decls_c, var_decl_list, unused) |
531 SYM_REF1(temp_var_decls_c, var_decl_list) |
532 |
532 |
533 /* intermediate helper symbol for temp_var_decls */ |
533 /* intermediate helper symbol for temp_var_decls */ |
534 SYM_LIST(temp_var_decls_list_c) |
534 SYM_LIST(temp_var_decls_list_c) |
535 |
535 |
536 /* VAR NON_RETAIN var_init_decl_list END_VAR */ |
536 /* VAR NON_RETAIN var_init_decl_list END_VAR */ |
537 SYM_REF2(non_retentive_var_decls_c, var_decl_list, unused) |
537 SYM_REF1(non_retentive_var_decls_c, var_decl_list) |
538 |
538 |
539 |
539 |
540 /**********************/ |
540 /**********************/ |
541 /* B 1.5.3 - Programs */ |
541 /* B 1.5.3 - Programs */ |
542 /**********************/ |
542 /**********************/ |
543 /* PROGRAM program_type_name program_var_declarations_list function_block_body END_PROGRAM */ |
543 /* PROGRAM program_type_name program_var_declarations_list function_block_body END_PROGRAM */ |
544 SYM_REF4(program_declaration_c, program_type_name, var_declarations, function_block_body, unused) |
544 SYM_REF3(program_declaration_c, program_type_name, var_declarations, function_block_body) |
545 |
545 |
546 /* intermediate helper symbol for program_declaration_c */ |
546 /* intermediate helper symbol for program_declaration_c */ |
547 /* { io_var_declarations | other_var_declarations } */ |
547 /* { io_var_declarations | other_var_declarations } */ |
548 /* |
548 /* |
549 * NOTE: we re-use the var_declarations_list_c |
549 * NOTE: we re-use the var_declarations_list_c |
561 |
561 |
562 SYM_REF2(initial_step_c, step_name, action_association_list) |
562 SYM_REF2(initial_step_c, step_name, action_association_list) |
563 |
563 |
564 SYM_LIST(action_association_list_c) |
564 SYM_LIST(action_association_list_c) |
565 SYM_REF2(step_c, step_name, action_association_list) |
565 SYM_REF2(step_c, step_name, action_association_list) |
566 SYM_REF4(action_association_c, action_name, action_qualifier, indicator_name_list, unused) |
566 SYM_REF3(action_association_c, action_name, action_qualifier, indicator_name_list) |
567 |
567 |
568 SYM_TOKEN(qualifier_c) |
568 SYM_TOKEN(qualifier_c) |
569 SYM_TOKEN(timed_qualifier_c) |
569 SYM_TOKEN(timed_qualifier_c) |
570 |
570 |
571 SYM_LIST(indicator_name_list_c) |
571 SYM_LIST(indicator_name_list_c) |
590 (resource_declaration_list | single_resource_declaration) |
590 (resource_declaration_list | single_resource_declaration) |
591 optional_access_declarations |
591 optional_access_declarations |
592 optional_instance_specific_initializations |
592 optional_instance_specific_initializations |
593 END_CONFIGURATION |
593 END_CONFIGURATION |
594 */ |
594 */ |
595 SYM_REF6(configuration_declaration_c, configuration_name, global_var_declarations, resource_declarations, access_declarations, instance_specific_initializations, unused) |
595 SYM_REF5(configuration_declaration_c, configuration_name, global_var_declarations, resource_declarations, access_declarations, instance_specific_initializations) |
596 |
596 |
597 /* helper symbol for configuration_declaration */ |
597 /* helper symbol for configuration_declaration */ |
598 SYM_LIST(resource_declaration_list_c) |
598 SYM_LIST(resource_declaration_list_c) |
599 |
599 |
600 /* |
600 /* |
619 * - instance_specific_init |
619 * - instance_specific_init |
620 */ |
620 */ |
621 SYM_LIST(any_fb_name_list_c) |
621 SYM_LIST(any_fb_name_list_c) |
622 |
622 |
623 /* [resource_name '.'] global_var_name ['.' structure_element_name] */ |
623 /* [resource_name '.'] global_var_name ['.' structure_element_name] */ |
624 SYM_REF4(global_var_reference_c, resource_name, global_var_name, structure_element_name, unused) |
624 SYM_REF3(global_var_reference_c, resource_name, global_var_name, structure_element_name) |
625 |
625 |
626 /* prev_declared_program_name '.' symbolic_variable */ |
626 /* prev_declared_program_name '.' symbolic_variable */ |
627 SYM_REF2(program_output_reference_c, program_name, symbolic_variable) |
627 SYM_REF2(program_output_reference_c, program_name, symbolic_variable) |
628 |
628 |
629 /* TASK task_name task_initialization */ |
629 /* TASK task_name task_initialization */ |
630 SYM_REF2(task_configuration_c, task_name, task_initialization) |
630 SYM_REF2(task_configuration_c, task_name, task_initialization) |
631 |
631 |
632 /* '(' [SINGLE ASSIGN data_source ','] [INTERVAL ASSIGN data_source ','] PRIORITY ASSIGN integer ')' */ |
632 /* '(' [SINGLE ASSIGN data_source ','] [INTERVAL ASSIGN data_source ','] PRIORITY ASSIGN integer ')' */ |
633 SYM_REF4(task_initialization_c, single_data_source, interval_data_source, priority_data_source, unused) |
633 SYM_REF3(task_initialization_c, single_data_source, interval_data_source, priority_data_source) |
634 |
634 |
635 /* PROGRAM [RETAIN | NON_RETAIN] program_name [WITH task_name] ':' program_type_name ['(' prog_conf_elements ')'] */ |
635 /* PROGRAM [RETAIN | NON_RETAIN] program_name [WITH task_name] ':' program_type_name ['(' prog_conf_elements ')'] */ |
636 SYM_REF6(program_configuration_c, retain_option, program_name, task_name, program_type_name, prog_conf_elements, unused) |
636 SYM_REF5(program_configuration_c, retain_option, program_name, task_name, program_type_name, prog_conf_elements) |
637 |
637 |
638 /* prog_conf_elements ',' prog_conf_element */ |
638 /* prog_conf_elements ',' prog_conf_element */ |
639 SYM_LIST(prog_conf_elements_c) |
639 SYM_LIST(prog_conf_elements_c) |
640 |
640 |
641 /* fb_name WITH task_name */ |
641 /* fb_name WITH task_name */ |
646 |
646 |
647 /* any_symbolic_variable SENDTO data_sink */ |
647 /* any_symbolic_variable SENDTO data_sink */ |
648 SYM_REF2(prog_cnxn_sendto_c, symbolic_variable, data_sink) |
648 SYM_REF2(prog_cnxn_sendto_c, symbolic_variable, data_sink) |
649 |
649 |
650 /* VAR_CONFIG instance_specific_init_list END_VAR */ |
650 /* VAR_CONFIG instance_specific_init_list END_VAR */ |
651 SYM_REF2(instance_specific_initializations_c, instance_specific_init_list, unused) |
651 SYM_REF1(instance_specific_initializations_c, instance_specific_init_list) |
652 |
652 |
653 /* helper symbol for instance_specific_initializations */ |
653 /* helper symbol for instance_specific_initializations */ |
654 SYM_LIST(instance_specific_init_list_c) |
654 SYM_LIST(instance_specific_init_list_c) |
655 |
655 |
656 /* resource_name '.' program_name '.' {fb_name '.'} |
656 /* resource_name '.' program_name '.' {fb_name '.'} |
683 /* | function_name [il_operand_list] */ |
683 /* | function_name [il_operand_list] */ |
684 SYM_REF2(il_function_call_c, function_name, il_operand_list) |
684 SYM_REF2(il_function_call_c, function_name, il_operand_list) |
685 |
685 |
686 |
686 |
687 /* | il_expr_operator '(' [il_operand] eol_list [simple_instr_list] ')' */ |
687 /* | il_expr_operator '(' [il_operand] eol_list [simple_instr_list] ')' */ |
688 SYM_REF4(il_expression_c, il_expr_operator, il_operand, simple_instr_list, unused) |
688 SYM_REF3(il_expression_c, il_expr_operator, il_operand, simple_instr_list) |
689 |
689 |
690 /* il_jump_operator label */ |
690 /* il_jump_operator label */ |
691 SYM_REF2(il_jump_operation_c, il_jump_operator, label) |
691 SYM_REF2(il_jump_operation_c, il_jump_operator, label) |
692 |
692 |
693 /* il_call_operator prev_declared_fb_name |
693 /* il_call_operator prev_declared_fb_name |
712 SYM_LIST(il_param_list_c) |
712 SYM_LIST(il_param_list_c) |
713 |
713 |
714 /* il_assign_operator il_operand |
714 /* il_assign_operator il_operand |
715 * | il_assign_operator '(' eol_list simple_instr_list ')' |
715 * | il_assign_operator '(' eol_list simple_instr_list ')' |
716 */ |
716 */ |
717 SYM_REF4(il_param_assignment_c, il_assign_operator, il_operand, simple_instr_list, unused) |
717 SYM_REF3(il_param_assignment_c, il_assign_operator, il_operand, simple_instr_list) |
718 |
718 |
719 /* il_assign_out_operator variable */ |
719 /* il_assign_out_operator variable */ |
720 SYM_REF2(il_param_out_assignment_c, il_assign_out_operator, variable) |
720 SYM_REF2(il_param_out_assignment_c, il_assign_out_operator, variable) |
721 |
721 |
722 |
722 |
790 SYM_REF2(sub_expression_c, l_exp, r_exp) |
790 SYM_REF2(sub_expression_c, l_exp, r_exp) |
791 SYM_REF2(mul_expression_c, l_exp, r_exp) |
791 SYM_REF2(mul_expression_c, l_exp, r_exp) |
792 SYM_REF2(div_expression_c, l_exp, r_exp) |
792 SYM_REF2(div_expression_c, l_exp, r_exp) |
793 SYM_REF2(mod_expression_c, l_exp, r_exp) |
793 SYM_REF2(mod_expression_c, l_exp, r_exp) |
794 SYM_REF2(power_expression_c, l_exp, r_exp) |
794 SYM_REF2(power_expression_c, l_exp, r_exp) |
795 SYM_REF2(neg_expression_c, exp, unused) |
795 SYM_REF1(neg_expression_c, exp) |
796 SYM_REF2(not_expression_c, exp, unused) |
796 SYM_REF1(not_expression_c, exp) |
797 |
797 |
798 SYM_REF2(function_invocation_c, function_name, parameter_assignment_list) |
798 SYM_REF2(function_invocation_c, function_name, parameter_assignment_list) |
799 |
799 |
800 |
800 |
801 /********************/ |
801 /********************/ |
826 |
826 |
827 /* variable_name ASSIGN expression */ |
827 /* variable_name ASSIGN expression */ |
828 SYM_REF2(input_variable_param_assignment_c, variable_name, expression) |
828 SYM_REF2(input_variable_param_assignment_c, variable_name, expression) |
829 |
829 |
830 /* [NOT] variable_name '=>' variable */ |
830 /* [NOT] variable_name '=>' variable */ |
831 SYM_REF4(output_variable_param_assignment_c, not_param, variable_name, variable, unused) |
831 SYM_REF3(output_variable_param_assignment_c, not_param, variable_name, variable) |
832 |
832 |
833 /* helper CLASS for output_variable_param_assignment */ |
833 /* helper CLASS for output_variable_param_assignment */ |
834 SYM_REF0(not_paramassign_c) |
834 SYM_REF0(not_paramassign_c) |
835 |
835 |
836 |
836 |
846 /* helper symbol for elseif_statement_list */ |
846 /* helper symbol for elseif_statement_list */ |
847 /* ELSIF expression THEN statement_list */ |
847 /* ELSIF expression THEN statement_list */ |
848 SYM_REF2(elseif_statement_c, expression, statement_list) |
848 SYM_REF2(elseif_statement_c, expression, statement_list) |
849 |
849 |
850 /* CASE expression OF case_element_list ELSE statement_list END_CASE */ |
850 /* CASE expression OF case_element_list ELSE statement_list END_CASE */ |
851 SYM_REF4(case_statement_c, expression, case_element_list, statement_list, unused) |
851 SYM_REF3(case_statement_c, expression, case_element_list, statement_list) |
852 |
852 |
853 /* helper symbol for case_statement */ |
853 /* helper symbol for case_statement */ |
854 SYM_LIST(case_element_list_c) |
854 SYM_LIST(case_element_list_c) |
855 |
855 |
856 /* case_list ':' statement_list */ |
856 /* case_list ':' statement_list */ |
861 |
861 |
862 /********************************/ |
862 /********************************/ |
863 /* B 3.2.4 Iteration Statements */ |
863 /* B 3.2.4 Iteration Statements */ |
864 /********************************/ |
864 /********************************/ |
865 /* FOR control_variable ASSIGN expression TO expression [BY expression] DO statement_list END_FOR */ |
865 /* FOR control_variable ASSIGN expression TO expression [BY expression] DO statement_list END_FOR */ |
866 SYM_REF6(for_statement_c, control_variable, beg_expression, end_expression, by_expression, statement_list, unused) |
866 SYM_REF5(for_statement_c, control_variable, beg_expression, end_expression, by_expression, statement_list) |
867 |
867 |
868 /* WHILE expression DO statement_list END_WHILE */ |
868 /* WHILE expression DO statement_list END_WHILE */ |
869 SYM_REF2(while_statement_c, expression, statement_list) |
869 SYM_REF2(while_statement_c, expression, statement_list) |
870 |
870 |
871 /* REPEAT statement_list UNTIL expression END_REPEAT */ |
871 /* REPEAT statement_list UNTIL expression END_REPEAT */ |