/******************************************************************************
 * Copyright (c) 2000-2021 Ericsson Telecom AB
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
 *
 * Contributors:
 *   Balasko, Jeno
 *
 ******************************************************************************/
module lazy_defs {

import from LazyASNTypes all;

type port My_PT message { 
  inout charstring;
} with { extension "internal"}

type component MyComp {
  port My_PT PCO;
  timer T1:=1.0;
  var integer v_i:=0 
  var integer v_numberOfCalls:=0;
  var charstring v_c:="";
  var MyRec v_rec:= c_myRec;
  var float v_f:=0.0;
  
}

type record of integer ROI;
type record of charstring ROC;

type record MyRec {
  integer i,
  ROI roi,
  boolean b
}
//array
type boolean g[3];
type integer I3[3];
type float   F3[3];
type charstring CS3[3];

//set
type set SET {
  integer i,
  ROI roi,
  boolean b
}

type set of charstring SOCS
type enumerated EN { first, second ('111'B), third }
type union UNION {
  integer i,
  ROI roi,
  boolean b,
  charstring cs
}

const charstring c_hi:= "Hi";
const boolean c_b := true;
const integer c_i := 1;
const float c_f := 1.0;
const bitstring c_bs := '1'B;
const octetstring c_os:= '55'O
const hexstring c_hs:='F'H
const charstring c_cs := "a"

const MyRec c_myRec := { 10, {11,12},true };
const ROC c_rocs := {"a"};
const CS3 c_cs3 := {"a","b","c"};
const SET c_set := { i := 10, roi := {11,12}, b:=true };
const SOCS c_socs :=  {"a","b","c","d"};
const EN c_enum := first
const UNION c_union := { cs := "myunion" }
const MyASNRecord c_asn1rec := { b:=true,i:=1,r:=1.0,bs:='1'B, os:='FF'O, cs:="a"}

template charstring t_hi:= "Hi";
template boolean t_b := true;
template integer t_i := 1;
template float t_f := 1.0;
template bitstring t_bs := '1'B;
template octetstring t_os:= '55'O
template hexstring t_hs:='F'H
template charstring t_cs := "a"

template MyRec t_myRec := { 10, {11,12},true };
template ROC t_rocs := {"a"};
template CS3 t_cs3 := {"a","b","c"};
template SET t_set := { i := 10, roi := {11,12}, b:=true };
template SOCS t_socs :=  {"a","b","c","d"};
template EN t_enum := first;
template UNION t_union := { cs := "myunion" }

}//module
