absyntax/absyntax.def
changeset 69 41cb5b80416e
parent 32 289256ec66f1
child 87 b97f9ad7b2c6
equal deleted inserted replaced
68:b0a43002dcac 69:41cb5b80416e
   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 */