diff -r ff5c92df0c78 -r f9e001952488 tests/syntax/identifier/identifier_as_functionblock.test --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/syntax/identifier/identifier_as_functionblock.test Sat Feb 09 08:57:14 2008 +0100 @@ -0,0 +1,103 @@ +(* Test whether the keyword XXXX may be used as an identifier for: + * FUNCTION_BLOCK declaration + * + * The XXXX names in the following code are merely a placeholder. + * They will be replaced by several identifiers before actual testing + * of the compiler. + *) + +(* The identifiers that will replace the XXXX + * must be placed on a line starting with # + * All identifiers preceded by # are ignored! + * The identifier list must be placed inside an IEC 61131-3 comment. + *) +(* +#IL_operators ANDN CAL CALC CALCN CD CLK CU IN JMP JMPC JMPCN LD LDN ORN +#IL_operators PT PV R R1 RET RETC RETCN S S1 ST STN XORN + NOTE: R and S are identical to IL operators!! +#SFC_qualifiers D DS L N P #R #S SD SL +#Task_initialisers PRIORITY SINGLE INTERVAL +*) + + + + + +(* The FUNCTION BLOCK declaration *) +function_block XXXX + var_input + a_1, b_1: int; + end_var + var_output + c_1, d_1: int; + end_var + c_1 := 10 + b_1; +end_function_block + + +(* Calling of the function block from within ST code *) + +function_block foo + var + e_1, f_1 : int; + fb : XXXX; + end_var + fb(10, 20); + fb (10, 20, e_1, f_1); + fb (a_1 := 10, b_1:=20, c_1=>e_1, d_1=>f_1); + fb(a_1 := 10, b_1:=20, c_1=>e_1, d_1=>f_1); + fb (c_1=>e_1, a_1:=20, d_1=>f_1); + f_1 := fb.c_1; + fb.a_1 := e_1; +end_function_block + + + +(* Calling of the function block from within IL code *) +function_block bar + var + e_1, f_1 : int; + fb : XXXX; + end_var + CAL fb + LD fb.a_1 + ST fb.b_1 + CAL fb (10) + CAL fb(30, 20, e_1, f_1) + CAL fb ( + a_1 := 10, + c_1 => f_1 + ) + CAL fb( + a_1 := 10, + c_1 => f_1 + ) +end_function_block + + + +(* Checking whether the use of XXXX will confuse any other + * normal and correct IL or ST code. + *) +{#include "basic_code.test" } + + + + + + + + + +(* + +CONFIGURATION +...... +using these XXXX identifiers within a configuration + +especially a task initialisation, as Priority, single and interval may clash here. +(they shouldn't, but if the parser has an error, they will....) + +END_CONFIGURATION + +*)