diff -r 4e7f95fab6d7 -r e2c4f6f4abe2 absyntax/absyntax.def --- a/absyntax/absyntax.def Sat Mar 15 08:31:35 2014 +0000 +++ b/absyntax/absyntax.def Sat Mar 15 20:10:20 2014 +0000 @@ -468,6 +468,30 @@ SYM_REF2(fb_spec_init_c, function_block_type_name, structure_initialization) +/* Taken fron IEC 61131-3 v3 + * // Table 14 - Reference operations + * Ref_Type_Decl : Ref_Type_Name ':' Ref_Spec_Init ; + * Ref_Spec_Init : Ref_Spec ( ':=' Ref_Value )? ; + * Ref_Spec : 'REF_TO' Non_Gen_Type_Name ; + * Ref_Type_Name : Identifier ; + * Ref_Name : Identifier ; + * Ref_Value : Ref_Addr | 'NULL' ; + * Ref_Addr : 'REF' '(' (Symbolic_Variable | FB_Name | Class_Instance_Name ) ')' ; + * Ref_Assign : Ref_Name ':=' (Ref_Name | Ref_Deref | Ref_Value ) ; + * Ref_Deref : 'DREF' '(' Ref_Name ')' ; + */ + +/* ref_spec: REF_TO (non_generic_type_name | function_block_type_name) */ +SYM_REF1(ref_spec_c, type_name) + +/* For the moment, we do not support initialising reference data types */ +/* ref_spec_init: ref_spec; */ +/* SYM_REF0(ref_spec_init_c) */ + +/* ref_type_decl: identifier ':' ref_spec_init */ +SYM_REF2(ref_type_decl_c, ref_type_name, ref_spec_init) + + /*********************/ /* B 1.4 - Variables */ /*********************/