ГОСТ Р МЭК 61131-3—2016
Array_Type_Access
Struct_Type_Access
Simple_Type_Name
Subrange_Type_Name
Enum_Type_Name
Array_Type_Name
Struct_Type_Name
Simple_SpecJnit
SimpieSpec
Subrange_Type_Decl
Subrange_Spec_lnit
Subrange_Spec
Subrange
Array_Spec
ArrayJnit
Array_Elem_lnit
Array_Elem_lnit_Value
Struct_Type_Ded
Struct_Spec
Struct_SpecJnit
Struct_Elem_Ded
Struct_Elem_Name
Structjnit
Struct_ElemJnit
:{ Namespace_Name 7 )*Array_Type_Name;
:{ Namespace_Name 7 )* Struct_Type_Name;
:Идентификатор:
:Идентификатор:
:Идентификатор:
:Идентификатор:
: Идентификатор:
Data_Type_Decl: TYPE’ (Type_Ded >* ’END_TYPE’;
Type_Decl: Simple_Type_Decl |Subrange_Type_Decl | Enum_Type_Decl
IArray_Type_Ded | Struct_Type_Ded
| Str_Type_Decl |Ref_Type_Ded;
Simp!e_Type_Decl: Simple_Type_Name Simple_Spec_lnit;
: Simple_Spec(’:=’ Constant_Expr)?;
: Elem_Type_Name |Simple_Type_Access;
:Subrange_Type_NameV Subrange_Spec_lnrt;
:Subrange_Spec’(’ ’:=’ SignedJnt)?;
: lnl_Type_Name ’(’ Subrange ’)’ | Subrange_Type_Access:
: Constant_ExprConstant_Expr.
Enum_Type_Decl; Enum_Type_Name (( Elem_Type_Name ? Named_Spec_lnit)
| Enum_Spec_lnit);
Named_Spec_lnit:■(’ Enum_Value_Spec( Enum_Value_Spec )* ■)’
(’:=’ Enum_Value)?;
Enum_Spec_lnit:{ ( ’(’ Identifier(*.* Identifier )*’)’) | Enum_Type_Access )
(•;=’ Enum_Value)?;
Enum_Value_Spec: Identifier ( ( lnt_Literal | Constant_Expr ))?;
EnumJ/alue:{ Enum_Type_Name)? Identifier;
Array_Type_Decl:Array_Type_NameArray SpecJmt:
Array_Spec_lnit:Array_Spec (ArrayJnit)?;
:Array_Type_Access | ARRAY’ f Subrange( 7 Subrange )*’]’ ’OF’ Data_Type.
Access;
:T Array_Elem_lnit (7 Array_Elem_lnit )•
’J‘;
:Array_Elem_lnit_Value j UnsignedJnt’(’Array_Elem_lnit_Value ?
: Constant_Expr |Enum_Value | Structjnit |Array_lnit:
: Struct_Type_Name 7 Struct_Spec:
:Struct_Decl | Struct_Spec_lnit;
:Stnjct_Type_Access (’:=*StrudJnit)?;
Struct_Decl: STRUCT OVERLAP’ ?( Strucl_Elem_Ded >+ END_STRUCT;
: StructJElemJtame ( Located_At Multibit_Part_Access ? )?*:’
( Simple_Spec_lnit |Subrange_Spec_lnit | Enum_Spec_lnit
|Array_Spec_lnit| Struct_SpecJnit);
: Identifier;
: •(* Struct_ElemJnit (’.’ Struct_ElemJnit )*
: Struct_Elem_Name ’:=’ ( Constant_Expr| Enum_Value |An-ay_lnit
| Structjnit | Ref_Value );
Str_Type_Decl: String_Type_Name Stnng_Type_Name (’:=’ Char_Str )?;
217